summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/test_core.py7
-rw-r--r--warlock/core.py3
2 files changed, 10 insertions, 0 deletions
diff --git a/test/test_core.py b/test/test_core.py
index 3610619..c7f0636 100644
--- a/test/test_core.py
+++ b/test/test_core.py
@@ -54,3 +54,10 @@ class TestCore(unittest.TestCase):
sweden.abbreviation = 'SE'
exc = warlock.InvalidOperation
self.assertRaises(exc, setattr, sweden, 'abbreviation', 0)
+
+ def test_iteritems(self):
+ Country = warlock.model_factory(fixture)
+ sweden = Country(name='Sweden', population=9379116)
+ print sweden.iteritems()
+ self.assertEqual(set(list(sweden.iteritems())),
+ set([('name', 'Sweden'), ('population', 9379116)]))
diff --git a/warlock/core.py b/warlock/core.py
index 205c221..ee1d622 100644
--- a/warlock/core.py
+++ b/warlock/core.py
@@ -53,5 +53,8 @@ def model_factory(schema):
raise InvalidOperation()
self.__dict__['raw'] = mutation
+ def iteritems(self):
+ return copy.deepcopy(self.__dict__['raw']).iteritems()
+
Model.__name__ = str(schema['name'])
return Model