feat: add hub runtime and extension contract
This commit is contained in:
parent
fce19f193f
commit
7e1ec03f0c
44 changed files with 3875 additions and 84 deletions
68
tests/test_conformance.py
Normal file
68
tests/test_conformance.py
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
from hub_core.conformance import ConformanceHarness, find_secret_violations
|
||||
from hub_core.runtime.app import create_app
|
||||
from hub_core.runtime.cli import build_parser
|
||||
from hub_core.runtime.config import RuntimeSettings
|
||||
from hub_core.runtime.store import InMemoryPortStore
|
||||
|
||||
|
||||
def isolated_target() -> TestClient:
|
||||
settings = RuntimeSettings(environment="test", backend="memory", allow_ephemeral=True)
|
||||
return TestClient(create_app(settings=settings, port_store=InMemoryPortStore()))
|
||||
|
||||
|
||||
def test_implemented_tier_2_and_3_profile_passes_reference_runtime() -> None:
|
||||
report = ConformanceHarness(isolated_target()).run()
|
||||
|
||||
assert report.passed
|
||||
assert report.passed_count == 8
|
||||
assert {check.check_id for check in report.checks} == {
|
||||
"C1",
|
||||
"C3",
|
||||
"C4",
|
||||
"C5",
|
||||
"C6",
|
||||
"C8",
|
||||
"F2",
|
||||
"F3",
|
||||
}
|
||||
assert all(check.status == "pass" for check in report.checks)
|
||||
assert report.to_dict()["summary"] == {"passed": 8, "total": 8}
|
||||
|
||||
|
||||
def test_projection_rebuild_scenario_leaves_separate_provenance_bearing_views() -> None:
|
||||
target = isolated_target()
|
||||
assert ConformanceHarness(target).run().passed
|
||||
|
||||
progress = target.get("/ports/projections/progress_events").json()
|
||||
interaction = target.get("/ports/projections/interaction_events").json()
|
||||
|
||||
assert progress["data"]["rebuild_from"] == ["progress_events"]
|
||||
assert interaction["data"]["rebuild_from"] == ["interaction_events"]
|
||||
assert {item["family"] for item in progress["data"]["items"]} == {"progress"}
|
||||
assert {item["family"] for item in interaction["data"]["items"]} == {"interaction"}
|
||||
assert progress["provenance"]["content_hash"]
|
||||
assert interaction["provenance"]["content_hash"]
|
||||
|
||||
|
||||
def test_secret_heuristic_reports_paths_without_echoing_values() -> None:
|
||||
value = {
|
||||
"nested": {"api_token": "do-not-echo"},
|
||||
"database": "postgresql://runtime:do-not-echo@example.invalid/hub",
|
||||
"safe": "https://ops-hub.example.invalid/docs",
|
||||
}
|
||||
|
||||
assert find_secret_violations(value) == ["$.nested.api_token", "$.database"]
|
||||
|
||||
|
||||
def test_cli_exposes_remote_conformance_runner() -> None:
|
||||
args = build_parser(RuntimeSettings()).parse_args(
|
||||
["conformance", "--base-url", "http://runtime.invalid", "--json"]
|
||||
)
|
||||
|
||||
assert args.command == "conformance"
|
||||
assert args.base_url == "http://runtime.invalid"
|
||||
assert args.as_json is True
|
||||
Loading…
Add table
Add a link
Reference in a new issue