tests.experimental.integrations.test_django_integration   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 33
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 22
dl 0
loc 33
rs 10
c 0
b 0
f 0
wmc 5

4 Functions

Rating   Name   Duplication   Size   Complexity  
A test_django_models_can_be_managed() 0 3 1
A test_django_models_can_be_created() 0 5 1
A test_django_models_can_be_managed_via_a_custom_manager() 0 5 1
A test_trying_to_load_a_non_existent_manager_throws_a_sensible_error() 0 6 2
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