| Total Complexity | 5 |
| Total Lines | 33 |
| Duplicated Lines | 0 % |
| Changes | 0 | ||
| 1 | import pytest |
||
| 2 | |||
| 3 | from lagom import Container |
||
| 4 | from lagom.experimental.integrations.django import DjangoModel, DjangoIntegration |
||
| 5 | from tests.experimental.integrations.conftest import FakeDjangoModel, FakeDjangoManager |
||
| 6 | |||
| 7 | |||
| 8 | def test_django_models_can_be_created(django_integration: DjangoIntegration): |
||
| 9 | models = django_integration._container.resolve(DjangoModel[FakeDjangoModel]) |
||
| 10 | new_model_instance = models.new(first=1, second=2) |
||
| 11 | assert isinstance(new_model_instance, FakeDjangoModel) |
||
| 12 | assert new_model_instance.data == {"first": 1, "second": 2} |
||
| 13 | |||
| 14 | |||
| 15 | def test_django_models_can_be_managed(django_integration: DjangoIntegration): |
||
| 16 | models = django_integration._container.resolve(DjangoModel[FakeDjangoModel]) |
||
| 17 | assert isinstance(models.objects, FakeDjangoManager) |
||
| 18 | |||
| 19 | |||
| 20 | def test_django_models_can_be_managed_via_a_custom_manager( |
||
| 21 | django_integration: DjangoIntegration, |
||
| 22 | ): |
||
| 23 | models = django_integration._container.resolve(DjangoModel[FakeDjangoModel]) |
||
| 24 | assert isinstance(models.managers.custom_manager, FakeDjangoManager) |
||
| 25 | |||
| 26 | |||
| 27 | def test_trying_to_load_a_non_existent_manager_throws_a_sensible_error( |
||
| 28 | django_integration: DjangoIntegration, |
||
| 29 | ): |
||
| 30 | models = django_integration._container.resolve(DjangoModel[FakeDjangoModel]) |
||
| 31 | with pytest.raises(KeyError): |
||
| 32 | models.managers.lol.all() |
||
| 33 |