11import pytest
2+ from unittest import mock
23from django .db import models
3-
4+ from django . db . models . options import Options
45from app import routers
56
67
@@ -16,14 +17,13 @@ def test_analytics_router_db_for_read__given_app_label__returns_expected_db(
1617 expected_db : str | None ,
1718) -> None :
1819 # Given
19- class AnalyticsModel (models .Model ):
20- class Meta :
21- app_label = given_app_label
22-
20+ mock_model = mock .MagicMock (spec = models .Model )
21+ mock_model ._meta = mock .MagicMock (spec = Options )
22+ mock_model ._meta .app_label = given_app_label
2323 router = routers .AnalyticsRouter ()
2424
2525 # When
26- db = router .db_for_read (AnalyticsModel )
26+ db = router .db_for_read (mock_model )
2727
2828 # Then
2929 assert db == expected_db
@@ -41,14 +41,13 @@ def test_analytics_router_db_for_write__given_app_label__returns_expected_db(
4141 expected_db : str | None ,
4242) -> None :
4343 # Given
44- class MyModel (models .Model ):
45- class Meta :
46- app_label = model_app_label
47-
44+ mock_model = mock .MagicMock (spec = models .Model )
45+ mock_model ._meta = mock .MagicMock (spec = Options )
46+ mock_model ._meta .app_label = model_app_label
4847 router = routers .AnalyticsRouter ()
4948
5049 # When
51- db = router .db_for_write (MyModel )
50+ db = router .db_for_write (mock_model )
5251
5352 # Then
5453 assert db == expected_db
@@ -67,18 +66,16 @@ def test_analytics_router_allow_relation__given_app_labels__returns_expected(
6766 expected : bool | None ,
6867) -> None :
6968 # Given
70- class MyModel1 (models .Model ):
71- class Meta :
72- app_label = model1_app_label
73-
74- class MyModel2 (models .Model ):
75- class Meta :
76- app_label = model2_app_label
77-
69+ mock_instance1 = mock .MagicMock (spec = models .Model )
70+ mock_instance1 ._meta = mock .MagicMock (spec = Options )
71+ mock_instance1 ._meta .app_label = model1_app_label
72+ mock_instance2 = mock .MagicMock (spec = models .Model )
73+ mock_instance2 ._meta = mock .MagicMock (spec = Options )
74+ mock_instance2 ._meta .app_label = model2_app_label
7875 router = routers .AnalyticsRouter ()
7976
8077 # When
81- result = router .allow_relation (MyModel1 (), MyModel2 () )
78+ result = router .allow_relation (mock_instance1 , mock_instance2 )
8279
8380 # Then
8481 assert result == expected
0 commit comments