from __future__ import annotations import unittest from pathlib import Path import yaml import reconcile_railiance_allocation as rec OWNERS = yaml.safe_load((Path(__file__).resolve().parents[1] / "docs" / "evidence" / "namespace-ownership.yaml").read_text()) class ReconcileTests(unittest.TestCase): def test_unknown_and_pending_are_explicit(self) -> None: observation = { "schema_version": "railiance.cluster-resource-observation.v1", "captured_at": "2026-09-14T00:00:00Z", "capacity": {"totals": {"cpu_millicores": 4000}}, "utilization": {"workloads": [ {"namespace": "state-hub", "workload": "state-hub", "pods": 2, "requests": {"cpu_millicores": 110, "memory_bytes": 1}}, {"namespace": "brand-new", "workload": "x", "pods": 1, "requests": {"cpu_millicores": 0, "memory_bytes": 0}}, ]}, "allocation": { "denominators": {"cpu_requested_millicores": 110}, "residual_capacity": {"cpu_millicores": 3890}, "pending_unscheduled": {"cpu_millicores": 25, "pods": [{"namespace": "other", "name": "p"}]}, }, "measurement_gaps": ["pod metrics unavailable"], } report = rec.join(observation, OWNERS) self.assertEqual(["brand-new"], report["unknown_namespaces"]) self.assertIn("brand-new/x", report["zero_request_workloads"]) self.assertEqual(25, report["pending_unscheduled_cpu_m"]) self.assertEqual("state-hub", report["workloads"][0]["owner"]) self.assertTrue(report["count_host_and_cluster_cpus_once"]) if __name__ == "__main__": unittest.main()