2025-08-18 10:55:24 +00:00
|
|
|
from datetime import date
|
|
|
|
|
|
2025-08-21 08:08:24 +00:00
|
|
|
from django.test import TestCase
|
2020-09-21 12:27:16 +00:00
|
|
|
|
2025-08-18 10:55:24 +00:00
|
|
|
from input.models import HonoraryCertificate, Project, Account, Literature
|
2020-11-23 13:08:01 +00:00
|
|
|
|
2025-08-18 14:42:09 +00:00
|
|
|
|
2025-08-21 08:08:24 +00:00
|
|
|
class ModelTestCase(TestCase):
|
2020-11-23 13:38:47 +00:00
|
|
|
|
2025-10-16 13:38:41 +00:00
|
|
|
@classmethod
|
|
|
|
|
def setUpTestData(cls):
|
|
|
|
|
cls.account = Account.objects.create(code='1234', description='blabla')
|
|
|
|
|
|
2020-11-23 13:08:01 +00:00
|
|
|
def test_set_granted(self):
|
2025-10-16 13:38:41 +00:00
|
|
|
""" test if the model function set_granted() works as intended """
|
|
|
|
|
obj = HonoraryCertificate.objects.create(realname='hurzel', email='hurzel@web.de')
|
|
|
|
|
self.assertEqual(obj.granted, None)
|
2020-11-23 13:08:01 +00:00
|
|
|
HonoraryCertificate.set_granted(obj.pk, True)
|
|
|
|
|
obj2 = HonoraryCertificate.objects.get(pk=obj.pk)
|
2025-10-16 13:38:41 +00:00
|
|
|
self.assertEqual(obj2.granted, True)
|
2020-11-23 13:38:47 +00:00
|
|
|
|
2021-10-04 10:39:09 +00:00
|
|
|
def test_project_of_year(self):
|
2025-10-16 13:38:41 +00:00
|
|
|
""" test if the finance id is resettet ad start of year """
|
|
|
|
|
acc = self.account
|
|
|
|
|
startdate = date(2022, 1, 1)
|
|
|
|
|
obj = Project.objects.create(account=acc, name='testproject', start=startdate)
|
|
|
|
|
self.assertEqual(obj.project_of_year, 1)
|
2021-10-04 10:57:13 +00:00
|
|
|
|
2025-10-16 13:38:41 +00:00
|
|
|
obj2 = Project.objects.create(account=acc, name='testproject2', start=startdate)
|
|
|
|
|
self.assertEqual(obj2.project_of_year, 2)
|
2021-10-04 12:14:01 +00:00
|
|
|
|
2025-10-16 13:38:41 +00:00
|
|
|
olddate = date(2021, 12, 31)
|
|
|
|
|
obj4 = Project.objects.create(account=acc, name='testproject2', start=olddate)
|
2021-10-04 12:32:09 +00:00
|
|
|
|
2025-10-16 13:38:41 +00:00
|
|
|
obj3 = Project.objects.create(account=acc, name='testproject2', start=startdate)
|
|
|
|
|
self.assertEqual(obj3.project_of_year, 3)
|
2021-10-04 12:35:03 +00:00
|
|
|
|
|
|
|
|
def test_finance_id(self):
|
2025-10-16 13:38:41 +00:00
|
|
|
""" test if the finance counting is correct """
|
|
|
|
|
acc = self.account
|
|
|
|
|
startdate = date(2022, 1, 1)
|
|
|
|
|
obj = Project.objects.create(account=acc, name='testproject', start=startdate)
|
|
|
|
|
self.assertEqual(obj.finance_id, "1234")
|
|
|
|
|
|
|
|
|
|
obj2 = Project.objects.create(account=acc, name='testproject2', start=startdate)
|
|
|
|
|
self.assertEqual(obj2.finance_id, "1234")
|
|
|
|
|
|
|
|
|
|
olddate = date(2021, 12, 31)
|
|
|
|
|
obj4 = Project.objects.create(account=acc, name='testproject2', start=olddate)
|
|
|
|
|
|
|
|
|
|
obj3 = Project.objects.create(account=acc, name='testproject2', start=startdate)
|
|
|
|
|
self.assertEqual(obj3.finance_id, "1234")
|
|
|
|
|
|
|
|
|
|
def test_financed_id_for_subaccounts(self):
|
|
|
|
|
account = Account.objects.create(code='21111', description='has subaccounts')
|
|
|
|
|
obj = Project.objects.create(account=account, name='test', start=date(2025, 1, 1))
|
|
|
|
|
|
|
|
|
|
self.assertEqual(obj.finance_id, f'{account.code}-001')
|
|
|
|
|
|
|
|
|
|
def test_finance_id_later(self):
|
|
|
|
|
obj = Project.objects.create(name='test', start=date(2025, 1, 1))
|
|
|
|
|
|
|
|
|
|
self.assertFalse(obj.finance_id)
|
|
|
|
|
|
|
|
|
|
obj.account = self.account
|
|
|
|
|
obj.save()
|
|
|
|
|
|
|
|
|
|
self.assertTrue(obj.finance_id)
|
|
|
|
|
|
|
|
|
|
def test_pid(self):
|
|
|
|
|
""" test if the pid counting is correct """
|
|
|
|
|
acc = self.account
|
|
|
|
|
startdate = date(2022, 1, 1)
|
|
|
|
|
obj = Project.objects.create(account=acc, name='testproject', start=startdate)
|
|
|
|
|
self.assertEqual(obj.pid, "1234-00000001")
|
|
|
|
|
self.assertEqual(obj.account.code, "1234")
|
|
|
|
|
|
|
|
|
|
obj2 = Project.objects.create(account=acc, name='testproject2', start=startdate)
|
|
|
|
|
self.assertEqual(obj2.pid, "1234-00000002")
|
|
|
|
|
|
|
|
|
|
olddate = date(2021, 12, 31)
|
|
|
|
|
obj4 = Project.objects.create(account=acc, name='testproject2', start=olddate)
|
|
|
|
|
|
|
|
|
|
obj3 = Project.objects.create(account=acc, name='testproject2', start=startdate)
|
|
|
|
|
self.assertEqual(obj3.pid, "1234-00000004")
|
2021-10-06 14:15:58 +00:00
|
|
|
|
|
|
|
|
def test_literature(self):
|
2025-08-18 10:54:14 +00:00
|
|
|
obj = Literature.objects.create(cost='100', notes='jolo', selfbuy_give_data=False)
|
2025-08-21 08:47:17 +00:00
|
|
|
self.assertEqual(obj.service_id, f'Literature{obj.id}')
|