Python · 1569 bytes Raw Blame History
1 from __future__ import annotations
2
3 import logging
4 import os
5
6 from dlm.train.cache import DISABLE_ENV_VAR, disabled_cache, is_cache_disabled, set_disable_flag
7
8
9 class TestCacheDisableFlag:
10 def test_disabled_false_by_default(self, monkeypatch) -> None:
11 monkeypatch.delenv(DISABLE_ENV_VAR, raising=False)
12 assert is_cache_disabled() is False
13
14 def test_set_disable_flag_sets_env_and_logs(self, monkeypatch, caplog) -> None:
15 monkeypatch.delenv(DISABLE_ENV_VAR, raising=False)
16 with caplog.at_level(logging.INFO):
17 set_disable_flag("cli flag")
18 assert is_cache_disabled() is True
19 assert "tokenized cache disabled (cli flag)" in caplog.text
20
21 def test_disabled_cache_restores_missing_prior_value(self, monkeypatch) -> None:
22 monkeypatch.delenv(DISABLE_ENV_VAR, raising=False)
23 with disabled_cache("scoped test"):
24 assert is_cache_disabled() is True
25 assert DISABLE_ENV_VAR not in os.environ
26 assert is_cache_disabled() is False
27
28 def test_disabled_cache_restores_prior_value(self, monkeypatch) -> None:
29 monkeypatch.setenv(DISABLE_ENV_VAR, "0")
30 with disabled_cache("scoped test"):
31 assert is_cache_disabled() is True
32 assert is_cache_disabled() is False
33
34 def test_disabled_cache_preserves_existing_disabled_state(self, monkeypatch) -> None:
35 monkeypatch.setenv(DISABLE_ENV_VAR, "1")
36 with disabled_cache("already disabled"):
37 assert is_cache_disabled() is True
38 assert is_cache_disabled() is True