mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-19 19:54:07 +00:00
Use a json encoder for IfcTester JSON reports to ensure everything is stringable
This commit is contained in:
@@ -374,8 +374,8 @@ class Json(Reporter):
|
|||||||
ResultsFailedEntity(
|
ResultsFailedEntity(
|
||||||
{
|
{
|
||||||
"reason": f["reason"],
|
"reason": f["reason"],
|
||||||
"element": str(f["element"]),
|
"element": f["element"],
|
||||||
"element_type": str(ifcopenshell.util.element.get_type(f["element"])),
|
"element_type": ifcopenshell.util.element.get_type(f["element"]),
|
||||||
"class": f["element"].is_a(),
|
"class": f["element"].is_a(),
|
||||||
"predefined_type": ifcopenshell.util.element.get_predefined_type(f["element"]),
|
"predefined_type": ifcopenshell.util.element.get_predefined_type(f["element"]),
|
||||||
"name": getattr(f["element"], "Name", None),
|
"name": getattr(f["element"], "Name", None),
|
||||||
@@ -391,13 +391,16 @@ class Json(Reporter):
|
|||||||
def to_string(self) -> str:
|
def to_string(self) -> str:
|
||||||
import json
|
import json
|
||||||
|
|
||||||
return json.dumps(self.results)
|
return json.dumps(self.results, default=self.encode)
|
||||||
|
|
||||||
def to_file(self, filepath: str) -> None:
|
def to_file(self, filepath: str) -> None:
|
||||||
import json
|
import json
|
||||||
|
|
||||||
with open(filepath, "w", encoding="utf-8") as outfile:
|
with open(filepath, "w", encoding="utf-8") as outfile:
|
||||||
return json.dump(self.results, outfile, ensure_ascii=False)
|
return json.dump(self.results, outfile, ensure_ascii=False, default=self.encode)
|
||||||
|
|
||||||
|
def encode(self, obj):
|
||||||
|
return str(obj)
|
||||||
|
|
||||||
|
|
||||||
class Html(Json):
|
class Html(Json):
|
||||||
|
|||||||
Reference in New Issue
Block a user