Provide Entity.as_dict()
Signed-off-by: martin f. krafft <madduck@madduck.net>
diff --git a/reclass/datatypes/entity.py b/reclass/datatypes/entity.py
index ed10e0d..727b828 100644
--- a/reclass/datatypes/entity.py
+++ b/reclass/datatypes/entity.py
@@ -72,3 +72,9 @@
return "%s(%r, %r, %r, %r)" % (self.__class__.__name__,
self.classes, self.applications,
self.parameters, self.name)
+
+ def as_dict(self):
+ return {'classes': self._classes.as_list(),
+ 'applications': self._applications.as_list(),
+ 'parameters': self._parameters.as_dict()
+ }
diff --git a/reclass/datatypes/tests/test_entity.py b/reclass/datatypes/tests/test_entity.py
index fdfb8f4..50e5669 100644
--- a/reclass/datatypes/tests/test_entity.py
+++ b/reclass/datatypes/tests/test_entity.py
@@ -104,5 +104,16 @@
e1.merge(e2)
self.assertEqual(e1.name, newname)
+ def test_as_dict(self, **types):
+ instances = self._make_instances(**types)
+ entity = Entity(*instances, name='test')
+ comp = {}
+ comp['classes'] = instances[0].as_list()
+ comp['applications'] = instances[1].as_list()
+ comp['parameters'] = instances[2].as_dict()
+ d = entity.as_dict()
+ self.assertDictEqual(d, comp)
+
+
if __name__ == '__main__':
unittest.main()