backblaze-proofframe / tests /test_live_proof.py
ADJCJH's picture
Sync post-live local Genblaze proof evidence
74ee21a verified
Raw
History Blame Contribute Delete
4.17 kB
import importlib.util
from pathlib import Path
from proofframe.config import Settings
SCRIPT_PATH = Path(__file__).resolve().parents[1] / "scripts" / "live_proof.py"
SPEC = importlib.util.spec_from_file_location("live_proof", SCRIPT_PATH)
live_proof = importlib.util.module_from_spec(SPEC)
assert SPEC.loader is not None
SPEC.loader.exec_module(live_proof)
def test_preflight_report_lists_missing_b2_and_genblaze_config():
settings = Settings()
report = live_proof.build_preflight_report(
settings,
require_storage_backend="b2",
require_generation_backend="genblaze",
available=lambda module: False,
)
missing_names = {item["name"] for item in report["missing"]}
assert report["ok"] is False
assert "storage backend mode" in missing_names
assert "generation backend mode" in missing_names
assert "B2 endpoint" in missing_names
assert "B2 application key" in missing_names
assert "B2 region for Genblaze sink" in missing_names
assert "Genblaze provider API key" in missing_names
assert "genblaze_core package" in missing_names
assert "genblaze_s3 package" in missing_names
assert "secret_policy" in report
def test_preflight_report_passes_with_complete_config():
settings = Settings(
storage_backend="b2",
generation_backend="genblaze",
b2_endpoint_url="https://s3.us-west-004.backblazeb2.com",
b2_bucket="proof-bucket",
b2_key_id="key-id",
b2_application_key="application-key",
genblaze_api_key="provider-key",
genblaze_image_model="seedream-test",
)
report = live_proof.build_preflight_report(
settings,
require_storage_backend="b2",
require_generation_backend="genblaze",
available=lambda module: module
in {"boto3", "genblaze_core", "genblaze_gmicloud", "genblaze_s3"},
)
assert report["ok"] is True
assert report["missing"] == []
def test_preflight_report_accepts_openai_provider_package():
settings = Settings(
storage_backend="b2",
generation_backend="genblaze",
b2_endpoint_url="https://s3.us-west-004.backblazeb2.com",
b2_bucket="proof-bucket",
b2_key_id="key-id",
b2_application_key="application-key",
genblaze_provider="openai",
openai_api_key="provider-key",
genblaze_image_model="gpt-image-1",
)
report = live_proof.build_preflight_report(
settings,
require_storage_backend="b2",
require_generation_backend="genblaze",
available=lambda module: module in {"boto3", "genblaze_core", "genblaze_openai", "genblaze_s3"},
)
assert report["ok"] is True
assert report["genblaze_provider"] == "openai"
assert report["missing"] == []
def test_preflight_report_accepts_local_provider_without_key():
settings = Settings(
storage_backend="b2",
generation_backend="genblaze",
b2_endpoint_url="https://s3.us-west-004.backblazeb2.com",
b2_bucket="proof-bucket",
b2_key_id="key-id",
b2_application_key="application-key",
genblaze_provider="local",
genblaze_image_model="local-svg-v1",
)
report = live_proof.build_preflight_report(
settings,
require_storage_backend="b2",
require_generation_backend="genblaze",
available=lambda module: module in {"boto3", "genblaze_core", "genblaze_s3"},
)
assert report["ok"] is True
assert report["genblaze_provider"] == "local"
assert report["missing"] == []
def test_build_api_smoke_command_targets_final_backends(tmp_path):
evidence_path = tmp_path / "final-evidence.json"
command = live_proof.build_api_smoke_command(
base_url="http://127.0.0.1:8088",
evidence_out=evidence_path,
require_storage_backend="b2",
require_generation_backend="genblaze",
)
assert "--require-storage-backend" in command
assert "b2" in command
assert "--require-generation-backend" in command
assert "genblaze" in command
assert "--evidence-out" in command
assert str(evidence_path) in command