forked from beba/foerderbarometer
made tests robust against changing order
This commit is contained in:
parent
b963db5731
commit
ad3ab2e993
|
|
@ -11,6 +11,15 @@ class ModelTestCase(TestCase):
|
|||
def setUpTestData(cls):
|
||||
cls.account = Account.objects.create(code='1234', description='blabla')
|
||||
|
||||
def assertLen(self, value, length, msg=None):
|
||||
self.assertEqual(len(value), length, msg)
|
||||
|
||||
def assertStartsWith(self, value, start, msg=None):
|
||||
self.assertTrue(f'{value}'.startswith(f'{start}'), msg)
|
||||
|
||||
def assertEndsWith(self, value, end, msg=None):
|
||||
self.assertTrue(f'{value}'.endswith(f'{end}'), msg)
|
||||
|
||||
def test_set_granted(self):
|
||||
""" test if the model function set_granted() works as intended """
|
||||
obj = HonoraryCertificate.objects.create(realname='hurzel', email='hurzel@web.de')
|
||||
|
|
@ -72,17 +81,18 @@ class ModelTestCase(TestCase):
|
|||
acc = self.account
|
||||
startdate = date(2022, 1, 1)
|
||||
obj = Project.objects.create(account=acc, name='testproject', start=startdate)
|
||||
self.assertEqual(obj.pid, "123400000001")
|
||||
self.assertEqual(obj.account.code, "1234")
|
||||
self.assertLen(obj.pid, len(acc.code) + 8)
|
||||
self.assertStartsWith(obj.pid, acc.code)
|
||||
self.assertEndsWith(obj.pid, obj.id)
|
||||
|
||||
obj2 = Project.objects.create(account=acc, name='testproject2', start=startdate)
|
||||
self.assertEqual(obj2.pid, "123400000002")
|
||||
self.assertEndsWith(obj2.pid, obj.id + 1)
|
||||
|
||||
olddate = date(2021, 12, 31)
|
||||
obj4 = Project.objects.create(account=acc, name='testproject2', start=olddate)
|
||||
Project.objects.create(account=acc, name='testproject2', start=olddate)
|
||||
|
||||
obj3 = Project.objects.create(account=acc, name='testproject2', start=startdate)
|
||||
self.assertEqual(obj3.pid, "123400000004")
|
||||
obj4 = Project.objects.create(account=acc, name='testproject2', start=startdate)
|
||||
self.assertEndsWith(obj4.pid, obj.id + 3)
|
||||
|
||||
def test_literature(self):
|
||||
obj = Literature.objects.create(cost='100', notes='jolo', selfbuy_give_data=False)
|
||||
|
|
|
|||
Loading…
Reference in New Issue