test_django_models_can_be_created()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 5
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 5
nop 1
dl 0
loc 5
rs 10
c 0
b 0
f 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