|
| 1 | +from django.db.models import QuerySet |
| 2 | +from django_extensions.db.models import TimeStampedModel |
| 3 | + |
| 4 | +from app.tests import APITestCase |
| 5 | +from app.web.publishable import PublishableModel |
| 6 | +from app.web.publishable import PublishableQuerySet |
| 7 | +from django_features.custom_fields import models |
| 8 | +from django_features.custom_fields.factories import CustomFieldFactory |
| 9 | +from django_features.custom_fields.models.field import CustomFieldQuerySet |
| 10 | + |
| 11 | + |
| 12 | +class CustomFieldBaseClassTestCase(APITestCase): |
| 13 | + def test_custom_field_base_model_class(self) -> None: |
| 14 | + self.assertTrue(issubclass(models.CustomField, TimeStampedModel)) |
| 15 | + self.assertTrue(issubclass(models.CustomField, PublishableModel)) |
| 16 | + |
| 17 | + def test_edit_custom_field_base_model_class_field(self) -> None: |
| 18 | + custom_field: models.CustomField = CustomFieldFactory() # type: ignore |
| 19 | + self.assertFalse(custom_field.is_public) |
| 20 | + custom_field.is_public = True |
| 21 | + self.assertTrue(custom_field.is_public) |
| 22 | + |
| 23 | + def test_custom_field_base_queryset_class(self) -> None: |
| 24 | + self.assertTrue(issubclass(CustomFieldQuerySet, QuerySet)) |
| 25 | + self.assertTrue(issubclass(CustomFieldQuerySet, PublishableQuerySet)) |
| 26 | + |
| 27 | + def test_publishable_custom_field_base_queryset_class(self) -> None: |
| 28 | + CustomFieldFactory(identifier="field_1") |
| 29 | + CustomFieldFactory(identifier="field_2", is_public=True) |
| 30 | + CustomFieldFactory(identifier="field_3", is_public=True) |
| 31 | + self.assertEqual(3, models.CustomField.objects.all().count()) |
| 32 | + self.assertEqual(2, models.CustomField.objects.publishable().count()) |
| 33 | + self.assertEqual(1, models.CustomField.objects.filter(is_public=False).count()) |
0 commit comments