From bc24439da89f7e985eb5997bea6394ea8f3df063 Mon Sep 17 00:00:00 2001 From: Kharec Date: Tue, 17 Feb 2026 14:26:02 +0100 Subject: [PATCH] test: replace cached search dummy setup with dataclass fixture object --- tests/test_app_filter.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/tests/test_app_filter.py b/tests/test_app_filter.py index 6fcb16b..ff53abc 100644 --- a/tests/test_app_filter.py +++ b/tests/test_app_filter.py @@ -1,5 +1,8 @@ from __future__ import annotations +from dataclasses import dataclass, field +from typing import Any, cast + from auditui.app import Auditui from auditui.search_utils import build_search_text, filter_items @@ -12,16 +15,17 @@ class StubLibrary: return item.get("authors", "") -def test_get_search_text_is_cached() -> None: - class Dummy: - def __init__(self) -> None: - self._search_text_cache: dict[int, str] = {} - self.library_client = StubLibrary() +@dataclass(slots=True) +class Dummy: + _search_text_cache: dict[int, str] = field(default_factory=dict) + library_client: StubLibrary = field(default_factory=StubLibrary) + +def test_get_search_text_is_cached() -> None: item = {"title": "Title", "authors": "Author"} dummy = Dummy() - first = Auditui._get_search_text(dummy, item) - second = Auditui._get_search_text(dummy, item) + first = Auditui._get_search_text(cast(Auditui, dummy), item) + second = Auditui._get_search_text(cast(Auditui, dummy), item) assert first == "title author" assert first == second assert len(dummy._search_text_cache) == 1 @@ -38,7 +42,7 @@ def test_filter_items_uses_cache() -> None: def cached(item: dict) -> str: cache_key = id(item) if cache_key not in cache: - cache[cache_key] = build_search_text(item, library) + cache[cache_key] = build_search_text(item, cast(Any, library)) return cache[cache_key] result = filter_items(items, "beta", cached)