add final acceptance verification
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
import json
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[3]
|
||||
import sys
|
||||
sys.path.insert(0, str(ROOT / "scripts"))
|
||||
|
||||
from final_acceptance import build_capacity_smoke, validate_report
|
||||
|
||||
|
||||
class Phase17AcceptanceTests(unittest.TestCase):
|
||||
def test_capacity_smoke_is_bounded_and_deterministic(self):
|
||||
first = build_capacity_smoke()
|
||||
second = build_capacity_smoke()
|
||||
self.assertEqual(first, second)
|
||||
self.assertEqual(first["pagination"]["requested_page_size"], 100)
|
||||
self.assertEqual(first["pagination"]["returned_items"], 100)
|
||||
self.assertEqual(first["pagination"]["synthetic_total"], 1000)
|
||||
self.assertEqual(first["large_batch"]["input_items"], 5000)
|
||||
self.assertLessEqual(first["large_batch"]["retained_items"], 100)
|
||||
self.assertTrue(first["bounded"])
|
||||
|
||||
def test_report_schema_rejects_missing_or_wrong_fields(self):
|
||||
report = {
|
||||
"report": "phase17-final-acceptance",
|
||||
"version": 1,
|
||||
"scope": "local-repository-acceptance",
|
||||
"passed": True,
|
||||
"checks": {},
|
||||
"capacity_smoke": build_capacity_smoke(),
|
||||
"blockers": [],
|
||||
"limitations": [],
|
||||
}
|
||||
self.assertEqual(validate_report(report), [])
|
||||
missing = dict(report)
|
||||
del missing["checks"]
|
||||
self.assertTrue(validate_report(missing))
|
||||
wrong = dict(report)
|
||||
wrong["passed"] = "yes"
|
||||
self.assertTrue(validate_report(wrong))
|
||||
|
||||
def test_report_serialization_is_stable(self):
|
||||
from final_acceptance import deterministic_json
|
||||
|
||||
report = {
|
||||
"z": 1,
|
||||
"a": {"items": [{"b": 2, "a": 1}]},
|
||||
}
|
||||
self.assertEqual(deterministic_json(report), deterministic_json(json.loads(deterministic_json(report))))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user