Skip to content

Commit 579f6ce

Browse files
author
Andrei Neagu
committed
added test to ensure it never changes
1 parent 0d23b86 commit 579f6ce

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

packages/service-library/src/servicelib/long_running_tasks/_redis_store.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
_STORE_TYPE_TASK_DATA: Final[str] = "TD"
1414
_LIST_CONCURRENCY: Final[int] = 3
15+
_MARKED_FOR_REMOVAL_FIELD: Final[str] = "marked_for_removal"
1516

1617

1718
def _to_redis_hash_mapping(data: dict[str, Any]) -> dict[str, str]:
@@ -115,14 +116,14 @@ async def mark_task_for_removal(self, task_id: TaskId) -> None:
115116
await handle_redis_returns_union_types(
116117
self._redis.hset(
117118
self._get_redis_task_data_key(task_id),
118-
mapping=_to_redis_hash_mapping({"marked_for_removal": True}),
119+
mapping=_to_redis_hash_mapping({_MARKED_FOR_REMOVAL_FIELD: True}),
119120
)
120121
)
121122

122123
async def is_marked_for_removal(self, task_id: TaskId) -> bool:
123124
result = await handle_redis_returns_union_types(
124125
self._redis.hget(
125-
self._get_redis_task_data_key(task_id), "marked_for_removal"
126+
self._get_redis_task_data_key(task_id), _MARKED_FOR_REMOVAL_FIELD
126127
)
127128
)
128129
return False if result is None else json_loads(result)

packages/service-library/tests/long_running_tasks/test_long_running_tasks__store.py renamed to packages/service-library/tests/long_running_tasks/test_long_running_tasks__redis_store.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,21 @@
66

77
import pytest
88
from pydantic import TypeAdapter
9-
from servicelib.long_running_tasks._redis_store import RedisStore
9+
from servicelib.long_running_tasks._redis_store import (
10+
_MARKED_FOR_REMOVAL_FIELD,
11+
RedisStore,
12+
)
1013
from servicelib.long_running_tasks.models import TaskData
1114
from servicelib.redis._client import RedisClientSDK
1215
from settings_library.redis import RedisDatabase, RedisSettings
1316

1417

18+
def test_ensure_task_data_field_name_and_type():
19+
# ensure this does not change since it's queied for the remal as a single entity
20+
field = TaskData.model_fields[_MARKED_FOR_REMOVAL_FIELD]
21+
assert field.annotation is bool
22+
23+
1524
@pytest.fixture
1625
def task_data() -> TaskData:
1726
return TypeAdapter(TaskData).validate_python(

0 commit comments

Comments
 (0)