"""Przegląd baz na udziale i ich globalne wyłączanie (DAN-15 / PRE-09).""" import pytest from app import bases @pytest.fixture(autouse=True) def _clean_env(monkeypatch): monkeypatch.delenv("DISABLED_BASES", raising=False) ROOT = "/dane" PATHS = [f"{ROOT}/main_base.xlsx", f"{ROOT}/archiwum/stara.xlsx"] def test_everything_enabled_by_default(): for b in bases.list_bases(ROOT, PATHS): assert b["enabled"] is True def test_disable_by_file_name(monkeypatch): monkeypatch.setenv("DISABLED_BASES", "stara.xlsx") state = {b["name"]: b["enabled"] for b in bases.list_bases(ROOT, PATHS)} assert state == {"main_base.xlsx": True, "stara.xlsx": False} def test_disable_by_relative_path(monkeypatch): """Wpis może wskazywać ścieżkę względną, nie tylko samą nazwę.""" monkeypatch.setenv("DISABLED_BASES", "archiwum/stara.xlsx") assert bases.is_enabled(f"{ROOT}/archiwum/stara.xlsx", ROOT) is False assert bases.is_enabled(f"{ROOT}/main_base.xlsx", ROOT) is True def test_entries_are_trimmed_and_multiple(monkeypatch): monkeypatch.setenv("DISABLED_BASES", " stara.xlsx , main_base.xlsx ") assert [b["enabled"] for b in bases.list_bases(ROOT, PATHS)] == [False, False] def test_listing_carries_metadata_not_content(tmp_path): """Metaopis: nazwa, ścieżka, rozmiar, data — ŻADNEJ treści bazy.""" f = tmp_path / "baza.xlsx" f.write_bytes(b"x" * 2048) item = bases.list_bases(tmp_path, [str(f)])[0] assert set(item) == {"name", "path", "size_mb", "modified", "enabled"} assert item["name"] == "baza.xlsx" and item["size_mb"] is not None and item["modified"] def test_missing_file_does_not_crash_the_listing(): item = bases.list_bases(ROOT, [f"{ROOT}/nie-ma.xlsx"])[0] assert item["size_mb"] is None and item["modified"] is None