| from pathlib import Path |
|
|
| from src.bucket import summarize_run_bundle |
| from src.view_models import build_run_view_model |
|
|
|
|
| def test_summary_reconstructs_job_url_from_summary_job_id_and_bucket_owner(): |
| bundle = { |
| "summary_file": {"job_id": "abc123", "status": "running", "target_space": "fffiloni/demo"}, |
| "launch": {}, |
| "state": {}, |
| "inference_gate": {}, |
| "generation_smoke": {}, |
| "hardware_strategy": {}, |
| } |
| summary = summarize_run_bundle("run-1", bundle, bucket_source="fffiloni/space-factory-runs") |
| assert summary["job_url"] == "https://huggingface.co/jobs/fffiloni/abc123" |
|
|
|
|
| def test_view_model_reconstructs_job_url_from_job_id_and_bucket_owner(): |
| bundle = { |
| "summary": { |
| "run_id": "run-1", |
| "job_id": "job789", |
| "status": "running", |
| "target_space": "fffiloni/demo", |
| "target_space_url": "https://huggingface.co/spaces/fffiloni/demo", |
| "artifacts_url": "https://huggingface.co/buckets/fffiloni/space-factory-runs/tree/runs/run-1", |
| }, |
| "state": {}, |
| "launch": {}, |
| "events": [], |
| "generation_smoke": {}, |
| "inference_gate": {}, |
| "hardware_strategy": {}, |
| "technical_blockers": {}, |
| } |
| view = build_run_view_model("run-1", bundle, bucket_source="fffiloni/space-factory-runs") |
| assert view["links"]["job_url"] == "https://huggingface.co/jobs/fffiloni/job789" |
| assert view["status_model"]["has_job_url"] is True |
|
|
|
|
| def test_frontend_job_fallback_uses_bucket_owner_and_created_by(): |
| app_js = Path("web/static/app.js").read_text(encoding="utf-8") |
| runs_js = Path("web/static/runs.js").read_text(encoding="utf-8") |
| assert "ownerFromBucketSource" in app_js |
| assert "out.created_by" in app_js |
| assert "inferredOwnerFromBucket" in runs_js |
| assert "summary.created_by" in runs_js |
| assert "detail.bucket_source" in runs_js |
|
|
|
|
| def test_responsive_breakpoints_are_less_aggressive(): |
| css = Path("web/static/app.css").read_text(encoding="utf-8") |
| assert "@media (max-width: 1180px)" in css |
| assert "@media (max-width: 720px)" in css |
| assert "@media (max-width: 1260px)" not in css |
| assert "@media (max-width: 860px)" not in css |
|
|