"""Module-level mocking for app.py import-time side effects.""" import tempfile from unittest.mock import patch import pytest # --------------------------------------------------------------------------- # Module-level patches — applied BEFORE any test file can `import app`. # # app_config.py executes on import: # 1. snapshot_download(...) → needs HF_TOKEN + network # 2. os.environ.setdefault(...) → safe, no mock needed # app.py executes on import: # 1. base64-encode caliby_transparent.png → file exists in repo, no mock # 2. @spaces.GPU decorator → no-op when SPACES_ZERO_GPU unset # --------------------------------------------------------------------------- _FAKE_WEIGHTS_DIR = tempfile.mkdtemp(prefix="caliby_test_weights_") patch("huggingface_hub.snapshot_download", return_value=_FAKE_WEIGHTS_DIR).start() # --------------------------------------------------------------------------- # Shared fixtures # --------------------------------------------------------------------------- @pytest.fixture def sample_outputs(): """Mock outputs dict matching caliby's CalibyModel.sample() return format.""" return { "example_id": ["1YCR", "1YCR"], "out_pdb": ["/tmp/out/1YCR_sample0.cif", "/tmp/out/1YCR_sample1.cif"], "U": [-142.38, -139.92], "input_seq": ["NATIVE_SEQ", "NATIVE_SEQ"], "seq": ["MTEEQWAQ", "VSEQQWAQ"], } @pytest.fixture def sample_outputs_with_out_pdbs(sample_outputs): """Outputs dict with the 'out_pdbs' key that app.py's _format_outputs actually reads.""" return {**sample_outputs, "out_pdbs": sample_outputs["out_pdb"]}