When resuming and loading the partial JSON file from disk, the 'status' property is replaced by status.Status objects. When serializing back those objects, JSONEncoder is unhappy because it doesn't know how to serialize status.Status objects and gives up with exceptions like:
TypeError: skip is not JSON serializable We can write a small subclass of JSONEncoder that knows about Status objects and use it to do the initial write back of the partial JSON file. Signed-off-by: Damien Lespiau <[email protected]> --- framework/core.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/framework/core.py b/framework/core.py index 2d5d0dc..9f153a3 100644 --- a/framework/core.py +++ b/framework/core.py @@ -58,6 +58,11 @@ __all__ = ['Environment', 'Test', 'testBinDir'] +class PiglitJSONEncoder(json.JSONEncoder): + def default(self, o): + if isinstance(o, status.Status): + return str(o) + return json.JSONEncoder.default(self, o) class JSONWriter: ''' @@ -108,7 +113,7 @@ class JSONWriter: self.file = file self.__indent_level = 0 self.__inhibit_next_indent = False - self.__encoder = json.JSONEncoder(indent=self.INDENT) + self.__encoder = PiglitJSONEncoder(indent=self.INDENT) # self.__is_collection_empty # -- 1.8.3.1 _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
