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
« prev ^ index » next coverage.py v7.9.0, created at 2026-02-04 09:42 +0000
1# from django.test import TestCase
3import pytest
5from ...models.base_models import BaseChangeTrackingModel
6from ...models.factories import UserFactory
7from ...models.journal_models import JournalSection
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
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()
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
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()
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
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()
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