semester.tests 源代码
from datetime import date
from django.test import TestCase
from semester.models import Semester, SemesterType
from semester.api import semester_of
[文档]
class SemesterTestCase(TestCase):
[文档]
@classmethod
def setUpTestData(cls):
type1 = SemesterType.objects.create(name='test1')
s1 = Semester.objects.create(
year=2020, type=type1, start_date=date(2020, 2, 1), end_date=date(2020, 6, 30))
type2 = SemesterType.objects.create(name='test2')
s2 = Semester.objects.create(
year=2020, type=type2, start_date=date(2020, 9, 1), end_date=date(2021, 1, 1))
cls.semesters = [s1, s2]
[文档]
def test_semester_api(self):
# Test Exception
try:
_ = semester_of(date(2020, 1, 1))
_ = semester_of(date(2020, 7, 1), allow_fallback=False)
raise Exception('Should raise DoesNotExist')
except Semester.DoesNotExist:
pass
s1, s2 = self.semesters
# Test hit
self.assertEqual(s1, semester_of(date(2020, 3, 1)))
# Test fallback
self.assertEqual(s1, semester_of(date(2020, 8, 20)))
self.assertEqual(s2, semester_of(date(2021, 1, 15)))