"""Unit tests for file_store module.""" import pytest @pytest.fixture def tmp_data_root(tmp_path, monkeypatch): """Redirect data root to tmp for isolation.""" from libs.common import config config.get_settings.cache_clear() monkeypatch.setenv("DATA_ROOT", str(tmp_path)) yield tmp_path config.get_settings.cache_clear() def test_write_and_read_exhibit(tmp_data_root): from libs.common.file_store import read_exhibit, write_exhibit content = "This is exhibit content." checksum = write_exhibit("ACC123", "EX-99.1", content) assert len(checksum) == 64 result = read_exhibit("ACC123", "EX-99.1") assert result == content def test_exists_exhibit(tmp_data_root): from libs.common.file_store import exists_exhibit, write_exhibit assert not exists_exhibit("ACC999", "EX-99.1") write_exhibit("ACC999", "EX-99.1", "content") assert exists_exhibit("ACC999", "EX-99.1") def test_checksum_deterministic(tmp_data_root): from libs.common.file_store import get_checksum, write_exhibit write_exhibit("ACC456", "EX-99.1", "hello world") c = get_checksum("ACC456", "EX-99.1") assert c is not None # Second call returns same assert get_checksum("ACC456", "EX-99.1") == c def test_exhibit_path_safe_chars(tmp_data_root): from libs.common.file_store import exhibit_path p = exhibit_path("ACC789", "EX-99.1") assert "EX-99.1.txt" in str(p)