From f0c8ca71bb30f29840f1d2b855ddb70a1b977879 Mon Sep 17 00:00:00 2001 From: Oliver Zander Date: Tue, 19 Aug 2025 16:00:57 +0200 Subject: [PATCH] added tests for sendmails command --- input/management/__init__.py | 0 input/management/commands/__init__.py | 0 input/management/tests.py | 57 +++++++++++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 input/management/__init__.py create mode 100644 input/management/commands/__init__.py create mode 100644 input/management/tests.py diff --git a/input/management/__init__.py b/input/management/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/input/management/commands/__init__.py b/input/management/commands/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/input/management/tests.py b/input/management/tests.py new file mode 100644 index 0000000..7a5f274 --- /dev/null +++ b/input/management/tests.py @@ -0,0 +1,57 @@ +import datetime + +from django.core.management import call_command +from django.test import TestCase +from django.utils.timezone import localdate + +from input.models import Project, Account, Email, Library, HonoraryCertificate + + +class ManagementCommandTestCase(TestCase): + + @classmethod + def setUpTestData(cls): + cls.account = Account.objects.create(code='test') + + def test_sendmails(self): + today = localdate(None) + start = today - datetime.timedelta(days=2) + end = today - datetime.timedelta(days=1) + granted = today - datetime.timedelta(days=15) + + def create_project(name, **kwargs): + kwargs.setdefault('account', self.account) + kwargs.setdefault('start', start) + kwargs.setdefault('end', end) + + return Project.objects.create(name=name, **kwargs) + + create_project('Test end_of_projects_reached') + create_project('Test end_of_projects_approved', status='END', mail_state='INF') + create_project('Test notHappened_of_projects_approved', status='NOT', mail_state='INF') + + Email.objects.create( + domain='SOURCE', + address='cosmocode', + adult='TRUE', + granted=True, + granted_date=granted, + ) + + Library.objects.create( + type='BIB', + library='Test', + duration='1 Jahr', + cost=100, + granted=True, + granted_date=granted, + ) + + HonoraryCertificate.objects.create( + request_url='https://example.com', + granted=True, + granted_date=granted, + project=create_project('Test surveymails_to_hon'), + ) + + call_command('sendmails')