import importlib.util from pathlib import Path SCRIPT = Path(__file__).parents[1] / "scripts" / "run_firebird_discovery.py" def load_script(): spec = importlib.util.spec_from_file_location("run_firebird_discovery_dependency", SCRIPT) module = importlib.util.module_from_spec(spec) spec.loader.exec_module(module) return module def valid_fdb(): return type( "Fdb", (), { "__version__": "2.0.4", "ISOLATION_LEVEL_READ_COMMITED_RO": b"\x03\x08\x06\x0f\x11", }, )() def patch_valid_environment(monkeypatch, module, tmp_path): client = tmp_path / "fbclient.dll" client.write_bytes(b"client") monkeypatch.setattr(module, "CLIENT_LIBRARY", client) monkeypatch.setattr(module, "validate_fdb_provenance", lambda: { "status": "VALID", "distribution_name": "fdb", "distribution_version": "2.0.4", }) monkeypatch.setattr(module.importlib.metadata, "version", lambda name: "2.0.4") monkeypatch.setattr(module, "_client_metadata", lambda path: { "path": str(path), "exists": True, "version": "2.5.9.27139", "architecture": "x64", }) return client def test_validate_firebird_runtime_returns_complete_compatibility_evidence(monkeypatch, tmp_path): module = load_script() patch_valid_environment(monkeypatch, module, tmp_path) evidence = module.validate_firebird_runtime(fdb_module=valid_fdb()) assert evidence["status"] == "VALID" assert evidence["python_runtime"]["architecture"] == "x64" assert evidence["fdb"]["version"] == "2.0.4" assert evidence["client"]["version"] == "2.5.9.27139" assert evidence["client"]["architecture"] == "x64" assert evidence["compatibility"] == { "status": "VALID", "python_client_architecture_match": True, "fdb_client_version_match": True, "read_only_api": True, } def test_validate_firebird_runtime_without_module_is_unknown(monkeypatch, tmp_path): module = load_script() patch_valid_environment(monkeypatch, module, tmp_path) evidence = module.validate_firebird_runtime() assert evidence["status"] == "UNKNOWN" assert evidence["compatibility"]["read_only_api"] is False assert evidence["blocker"] == "compatibility_unproven" def test_preimport_gate_requires_client_architecture(monkeypatch, tmp_path): module = load_script() client = tmp_path / "fbclient.dll" client.write_bytes(b"client") monkeypatch.setattr(module, "CLIENT_LIBRARY", client) monkeypatch.setattr(module, "validate_fdb_provenance", lambda: {"status": "VALID"}) monkeypatch.setattr(module, "_client_metadata", lambda path: { "path": str(path), "exists": True, "version": "2.5.9.27139" }) monkeypatch.setattr(module, "_read_client_architecture", lambda path: "UNKNOWN") monkeypatch.setattr(module.importlib.metadata, "version", lambda name: "2.0.4") try: module._validate_preimport_compatibility() except RuntimeError as error: assert "compatibility" in str(error) else: raise AssertionError("unknown client architecture must block before import") def test_preimport_gate_requires_exact_read_only_api(monkeypatch, tmp_path): module = load_script() patch_valid_environment(monkeypatch, module, tmp_path) monkeypatch.setattr(module, "_preimport_read_only_api_proven", lambda: False) try: module._validate_preimport_compatibility() except RuntimeError as error: assert "compatibility" in str(error) else: raise AssertionError("unproven read-only API must block before import") def test_unknown_client_architecture_blocks(monkeypatch, tmp_path): module = load_script() patch_valid_environment(monkeypatch, module, tmp_path) monkeypatch.setattr(module, "_client_metadata", lambda path: { "path": str(path), "exists": True, "version": "2.5.9.27139", "architecture": "UNKNOWN" }) evidence = module.validate_firebird_runtime(fdb_module=valid_fdb()) assert evidence["status"] == "UNKNOWN" assert evidence["blocker"] == "compatibility_unproven" def test_unknown_client_version_blocks(monkeypatch, tmp_path): module = load_script() patch_valid_environment(monkeypatch, module, tmp_path) monkeypatch.setattr(module, "_client_metadata", lambda path: { "path": str(path), "exists": True, "version": None, "architecture": "x64" }) evidence = module.validate_firebird_runtime(fdb_module=valid_fdb()) assert evidence["status"] == "UNKNOWN" assert evidence["blocker"] == "compatibility_unproven" def test_unsupported_read_only_api_is_unknown(monkeypatch, tmp_path): module = load_script() patch_valid_environment(monkeypatch, module, tmp_path) fdb = type("Fdb", (), {"__version__": "2.0.4"})() evidence = module.validate_firebird_runtime(fdb_module=fdb) assert evidence["status"] == "UNKNOWN" assert evidence["blocker"] == "compatibility_unproven"