Download tests/unit/test_mcp_cache.py from Tatopenn/dense-Evolution: direct link, hf CLI and curl.
- Browser
- Download file 1.79 kB
-
https://huggingface.co/Tatopenn/dense-Evolution/resolve/main/tests/unit/test_mcp_cache.py
- Command line
-
hf download hf://Tatopenn/dense-Evolution/tests/unit/test_mcp_cache.py
-
curl -L -o test_mcp_cache.py https://huggingface.co/Tatopenn/dense-Evolution/resolve/main/tests/unit/test_mcp_cache.py
1.79 kB
| """ | |
| Unit tests for tools/mcp_server/utils/cache.py's TTLCache -- pure logic, | |
| no kernel dependency, unlike tests/integration/test_mcp_server.py. | |
| """ | |
| import time | |
| import pytest | |
| from mcp_server.utils.cache import TTLCache | |
| def test_miss_returns_none(): | |
| cache = TTLCache(ttl_seconds=60.0) | |
| assert cache.get("missing") is None | |
| def test_set_then_get_round_trips(): | |
| cache = TTLCache(ttl_seconds=60.0) | |
| cache.set("h2", {"n_qubits": 2}) | |
| assert cache.get("h2") == {"n_qubits": 2} | |
| def test_entry_expires_after_ttl(): | |
| cache = TTLCache(ttl_seconds=0.05) | |
| cache.set("h2", "value") | |
| assert cache.get("h2") == "value" | |
| time.sleep(0.08) | |
| assert cache.get("h2") is None | |
| def test_failure_is_cached_and_reraised(): | |
| cache = TTLCache(ttl_seconds=60.0, failure_ttl_seconds=60.0) | |
| exc = RuntimeError("kernel unreachable") | |
| cache.set_failure("h2", exc) | |
| with pytest.raises(RuntimeError, match="kernel unreachable"): | |
| cache.get("h2") | |
| def test_cached_failure_expires_independently_of_ttl(): | |
| cache = TTLCache(ttl_seconds=60.0, failure_ttl_seconds=0.05) | |
| cache.set_failure("h2", RuntimeError("down")) | |
| with pytest.raises(RuntimeError): | |
| cache.get("h2") | |
| time.sleep(0.08) | |
| assert cache.get("h2") is None # expired, not raised | |
| def test_invalidate_one_key(): | |
| cache = TTLCache(ttl_seconds=60.0) | |
| cache.set("h2", "a") | |
| cache.set("lih", "b") | |
| cache.invalidate("h2") | |
| assert cache.get("h2") is None | |
| assert cache.get("lih") == "b" | |
| def test_invalidate_all_keys(): | |
| cache = TTLCache(ttl_seconds=60.0) | |
| cache.set("h2", "a") | |
| cache.set("lih", "b") | |
| cache.invalidate() | |
| assert cache.get("h2") is None | |
| assert cache.get("lih") is None | |