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