irongit

A parser inspired by the django orm.

gparser/tests/test_exceptions.py
58 lines1.3 KBPython
1import parsers
2import unittest
3
4
5class Test(parsers.Parser):
6 a = parsers.Field()
7 b = parsers.Field()
8 c = parsers.Field()
9 d = parsers.Field(unique=True)
10
11 class Meta:
12 unique_together = ['a', 'b', 'c']
13
14
15def raise_unique_error():
16 t1 = Test(a='a1', b='b1', c='c1', d='d')
17 t1.save()
18 t2 = Test(a='a2', b='b2', c='c2', d='d')
19 t2.save()
20
21
22def raise_unique_together():
23 t1 = Test(a='a', b='b', c='c', d='d1')
24 t1.save()
25 t2 = Test(a='a', b='b', c='c', d='d2')
26 t2.save()
27
28
29def raise_missing_keys():
30 Test(a='sdf')
31
32
33def raise_extra_fields():
34 Test(a='asdf', b='b', c='c', d='d', e='e')
35
36
37def raise_with_id():
38 Test(id='1', a='a', b='b', c='c', d='d')
39
40
41class TestExceptions(unittest.TestCase):
42
43 def test_unique(self):
44 self.assertRaises(
45 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)