generated from coulomb/repo-seed
Implement SAND-WP-0003: validation meta-framework extraction
Port e2e-framework schema, runner, and reporter into wise-validator with sand-boxer CLI integration, validate run CLI, unit tests, registry capability, and operator docs.
This commit is contained in:
37
tests/test_reporter.py
Normal file
37
tests/test_reporter.py
Normal file
@@ -0,0 +1,37 @@
|
||||
"""State Hub reporter tests."""
|
||||
|
||||
import json
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from wisevalidator.models import RunResult
|
||||
from wisevalidator.reporter import report
|
||||
|
||||
|
||||
def test_report_posts_e2e_result() -> None:
|
||||
result = RunResult(
|
||||
sandbox_id="abc12345",
|
||||
repo="fixture-repo",
|
||||
passed=True,
|
||||
exit_code=0,
|
||||
duration_s=12.3,
|
||||
output="ok",
|
||||
)
|
||||
captured: dict = {}
|
||||
|
||||
def fake_urlopen(req, timeout=10):
|
||||
captured["url"] = req.full_url
|
||||
captured["body"] = json.loads(req.data.decode())
|
||||
resp = MagicMock()
|
||||
resp.status = 201
|
||||
resp.__enter__ = MagicMock(return_value=resp)
|
||||
resp.__exit__ = MagicMock(return_value=False)
|
||||
return resp
|
||||
|
||||
with patch("wisevalidator.reporter.urllib.request.urlopen", fake_urlopen):
|
||||
ok = report(result, workstream_id="ws-uuid")
|
||||
|
||||
assert ok is True
|
||||
assert captured["url"].endswith("/progress/")
|
||||
assert captured["body"]["event_type"] == "e2e_result"
|
||||
assert "PASSED" in captured["body"]["summary"]
|
||||
assert captured["body"]["workstream_id"] == "ws-uuid"
|
||||
Reference in New Issue
Block a user