feat: prepare ARR for controlled public deployment
This commit is contained in:
60
tests/test_arr_direct_contract_schema.py
Normal file
60
tests/test_arr_direct_contract_schema.py
Normal file
@@ -0,0 +1,60 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
REQUEST_SCHEMA = (
|
||||
ROOT / "database" / "contracts" / "arr-submit-processing-result-v1.schema.json"
|
||||
)
|
||||
RECEIPT_SCHEMA = (
|
||||
ROOT
|
||||
/ "database"
|
||||
/ "contracts"
|
||||
/ "arr-submit-processing-result-receipt-v1.schema.json"
|
||||
)
|
||||
|
||||
|
||||
class DirectContractSchemaTests(unittest.TestCase):
|
||||
def test_request_has_exact_four_fields_and_authoritative_payload_ref(self) -> None:
|
||||
schema = json.loads(REQUEST_SCHEMA.read_text(encoding="utf-8"))
|
||||
expected = {
|
||||
"submission_grant",
|
||||
"job_id",
|
||||
"attempt_no",
|
||||
"payload",
|
||||
}
|
||||
self.assertFalse(schema["additionalProperties"])
|
||||
self.assertEqual(set(schema["required"]), expected)
|
||||
self.assertEqual(set(schema["properties"]), expected)
|
||||
self.assertNotIn("payload_sha256", schema["properties"])
|
||||
reference = schema["properties"]["payload"]["allOf"][0]["$ref"]
|
||||
target = (REQUEST_SCHEMA.parent / reference).resolve()
|
||||
self.assertEqual(
|
||||
target,
|
||||
(
|
||||
ROOT
|
||||
/ "arr-opera-daily-ingest"
|
||||
/ "references"
|
||||
/ "structured-result.schema.json"
|
||||
).resolve(),
|
||||
)
|
||||
self.assertTrue(target.is_file())
|
||||
|
||||
def test_receipt_is_minimal_terminal_contract(self) -> None:
|
||||
schema = json.loads(RECEIPT_SCHEMA.read_text(encoding="utf-8"))
|
||||
self.assertFalse(schema["additionalProperties"])
|
||||
self.assertEqual(
|
||||
set(schema["properties"]),
|
||||
set(schema["required"]),
|
||||
)
|
||||
self.assertEqual(
|
||||
schema["properties"]["status"]["enum"],
|
||||
["committed", "already_committed"],
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main(verbosity=2)
|
||||
Reference in New Issue
Block a user