irongit

A parser inspired by the django orm.

all tests work

huncholanehuncholaneauthored
parent 53d949ecommit 3ebb5c3b9bfde7d6d47f46b72fa664da9aab2f65Browse files

3 files changed, +36 -1

+1-1parsers/manager.py
@@ -50,6 +50,6 @@ class Manager:
5050 unique_together_violation = False
5151 break
5252 else:
53- vals.append(o[key])
53+ vals.append(o.__dict__[key])
5454 if unique_together_violation:
5555 raise UniqueTogetherParseError(self.cls, unique_together, vals)
+8-0tests/test_create.py
@@ -0,0 +1,8 @@
1+import parsers
2+import unittest
3+
4+
5+class TestCreate(unittest.TestCase):
6+
7+ def test_nullable(self):
8+ pass
+27-0tests/test_exceptions.py
@@ -21,7 +21,21 @@ def raise_unique_error():
2121
2222 def raise_unique_together():
2323 t1 = Test(a='a', b='b', c='c', d='d1')
24+ t1.save()
2425 t2 = Test(a='a', b='b', c='c', d='d2')
26+ t2.save()
27+
28+
29+def raise_missing_keys():
30+ Test(a='sdf')
31+
32+
33+def raise_extra_fields():
34+ Test(a='asdf', b='b', c='c', d='d', e='e')
35+
36+
37+def raise_with_id():
38+ Test(id='1', a='a', b='b', c='c', d='d')
2539
2640
2741 class TestExceptions(unittest.TestCase):
@@ -29,3 +43,16 @@ class TestExceptions(unittest.TestCase):
2943 def test_unique(self):
3044 self.assertRaises(
3145 parsers.exceptions.UniqueFieldParseError, raise_unique_error)
46+
47+ def test_unique_together(self):
48+ self.assertRaises(parsers.UniqueTogetherParseError,
49+ raise_unique_together)
50+
51+ def test_missing_keys(self):
52+ self.assertRaises(parsers.MissingFieldsParseError, raise_missing_keys)
53+
54+ def test_extra_fields(self):
55+ self.assertRaises(parsers.ExtraFieldsParseError, raise_extra_fields)
56+
57+ def test_with_id(self):
58+ self.assertRaises(parsers.CreateWithIdParseError, raise_with_id)