added tests for sendmails command

This commit is contained in:
Oliver Zander 2025-08-19 16:00:57 +02:00 committed by Tobias Herre
parent b5a0fbde98
commit f0c8ca71bb
3 changed files with 57 additions and 0 deletions

View File

View File

57
input/management/tests.py Normal file
View File

@ -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')