Skip to content

Commit d94ef9a

Browse files
committed
Move database router to flagsmith-common
1 parent ec6c2e5 commit d94ef9a

File tree

1 file changed

+55
-1
lines changed

1 file changed

+55
-1
lines changed
Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,55 @@
1-
# TODO
1+
@pytest.mark.parametrize(
2+
"given_settings, expected",
3+
[
4+
({"TASK_PROCESSOR_DATABASE_URL": "postgres://localhost:5432/db"}, True),
5+
({"TASK_PROCESSOR_DATABASE_URL": None}, False),
6+
({"TASK_PROCESSOR_DATABASE_NAME": "db"}, True),
7+
({"TASK_PROCESSOR_DATABASE_NAME": None}, False),
8+
],
9+
)
10+
def test_TaskProcessorRouter__checks_whether_is_enabled(
11+
settings: SettingsWrapper,
12+
given_settings: dict[str, None | str],
13+
expected: bool,
14+
) -> None:
15+
# Given
16+
for key, value in given_settings.items():
17+
setattr(settings, key, value)
18+
19+
# When
20+
router = TaskProcessorRouter()
21+
22+
# Then
23+
assert router.is_enabled is expected
24+
25+
26+
@pytest.mark.parametrize("model", apps.get_app_config("task_processor").get_models())
27+
def test_TaskProcessorRouter__enabled__routes_queries_to_task_processor_database(
28+
mocker: MockerFixture,
29+
model: type[Model],
30+
) -> None:
31+
# Given
32+
mocker.patch.object(TaskProcessorRouter, "is_enabled", new=True)
33+
34+
# When
35+
router = TaskProcessorRouter()
36+
result = router.db_for_read(model)
37+
38+
# Then
39+
assert result == "task_processor"
40+
41+
42+
@pytest.mark.parametrize("model", apps.get_app_config("task_processor").get_models())
43+
def test_TaskProcessorRouter__disabled__routes_queries_to_default_database(
44+
mocker: MockerFixture,
45+
model: type[Model],
46+
) -> None:
47+
# Given
48+
mocker.patch.object(TaskProcessorRouter, "is_enabled", new=False)
49+
50+
# When
51+
router = TaskProcessorRouter()
52+
result = router.db_for_read(model)
53+
54+
# Then
55+
assert result is None

0 commit comments

Comments
 (0)