import datetime from django.test import TestCase from django.utils import timezone from vbv_lernwelt.duedate.factories import DueDateFactory from vbv_lernwelt.duedate.models import DueDate class TesDueDatetModel(TestCase): def test_duedate_model_factory(self): DueDateFactory() assert DueDate.objects.count() == 1 def test_get_next_duedate_qs_is_really_next(self): start = timezone.now() - datetime.timedelta(days=18) generate_duedates(start=start) self.assertEqual(DueDate.objects.count(), 20) self.assertEqual(DueDate.get_next_duedates_qs().count(), 2) # def test_event_model_factory_validation(self): # e = DueDateFactory() # e.start = get_date("Jan 01 2021") # e.end = get_date("Jan 02 2021") # e.validate() # self.assertTrue(True) # # def test_event_model_factory_validation_invalid(self): # e = DueDateFactory() # e.start = get_date("Jan 04 2021") # e.end = get_date("Jan 02 2021") # self.assertRaises(ValueError, e.validate) def generate_duedates(start=timezone.now()): for i in range(20): DueDateFactory(title=f"{i}", start=start + datetime.timedelta(days=i), end=start + datetime.timedelta(days=i, hours=1))