Commit b072121e authored by J. Fernando Sánchez's avatar J. Fernando Sánchez
Browse files

Added Model string representation

This should help with performance issues with models that have large
private variables.
parent ceed9b97
......@@ -147,6 +147,9 @@ class SenpyMixin(object):
obj = obj.jsonld()
jsonschema.validate(obj, self.schema)
def __str__(self):
return str(self.to_JSON())
class SenpyModel(SenpyMixin, dict):
......@@ -198,7 +201,8 @@ class SenpyModel(SenpyMixin, dict):
def _plain_dict(self):
d = {k: v for (k, v) in self.items() if k[0] != "_"}
d["@id"] = d.pop('id')
if 'id' in d:
d["@id"] = d.pop('id')
return d
......
......@@ -100,5 +100,16 @@ class ModelsTest(TestCase):
logging.debug(c)
p.validate()
def test_str(self):
"""The string representation shouldn't include private variables"""
r = Results()
p = SenpyPlugin({"name": "STR test", "version": 0})
p._testing = 0
s = str(p)
assert "_testing" not in s
r.analysis.append(p)
s = str(r)
assert "_testing" not in s
def test_frame_response(self):
pass
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment