Coverage for src/mesh/tests/models/test_base_models.py: 100%

39 statements  

« prev     ^ index     » next       coverage.py v7.9.0, created at 2026-02-04 09:42 +0000

1# from django.test import TestCase 

2 

3import pytest 

4 

5from ...models.base_models import BaseChangeTrackingModel 

6from ...models.factories import UserFactory 

7from ...models.journal_models import JournalSection 

8 

9 

10@pytest.mark.django_db 

11def test_base_change_tracking_model(): 

12 # Test object creation without user attached 

13 base_model: BaseChangeTrackingModel = JournalSection.objects.create(name="my journal_section") 

14 assert base_model.created_by is None 

15 assert base_model.date_created is not None 

16 assert base_model.last_modified_by is None 

17 assert base_model.date_last_modified is not None 

18 

19 # Test update with user attached 

20 date_created = base_model.date_created 

21 date_last_modified_1 = base_model.date_last_modified 

22 user_1 = UserFactory.create() 

23 base_model._user = user_1 

24 base_model.save() 

25 

26 base_model = JournalSection.objects.get(pk=base_model.pk) 

27 assert base_model.created_by is None 

28 assert base_model.date_created == date_created 

29 assert base_model.last_modified_by.pk == user_1.pk # type:ignore 

30 assert base_model.date_last_modified > date_last_modified_1 # type:ignore 

31 

32 # Test update with user attached but do_not_update = True 

33 date_last_modified_2 = base_model.date_last_modified 

34 user_2 = UserFactory.create() 

35 base_model._user = user_2 

36 base_model.do_not_update = True 

37 base_model.save() 

38 

39 base_model = JournalSection.objects.get(pk=base_model.pk) 

40 assert base_model.created_by is None 

41 assert base_model.date_created == date_created 

42 assert base_model.last_modified_by.pk == user_1.pk # type:ignore 

43 assert base_model.date_last_modified == date_last_modified_2 

44 

45 # Test creation of object with user attached 

46 base_model = JournalSection(name="my other journal_section") 

47 base_model._user = user_1 

48 base_model.save() 

49 

50 base_model = JournalSection.objects.get(pk=base_model.pk) 

51 assert base_model.created_by.pk == user_1.pk # type:ignore 

52 assert base_model.date_created is not None 

53 assert base_model.last_modified_by.pk == user_1.pk # type:ignore 

54 assert base_model.date_last_modified is not None