from __future__ import annotations import datetime as dt import importlib.util import unittest from pathlib import Path SCRIPT = Path(__file__).parents[1] / "scripts" / "resolve_user_unit_cost_grouping.py" SPEC = importlib.util.spec_from_file_location("resolve_user_unit_cost_grouping", SCRIPT) assert SPEC and SPEC.loader MODULE = importlib.util.module_from_spec(SPEC) SPEC.loader.exec_module(MODULE) class UserUnitCostGroupingResolverTest(unittest.TestCase): @classmethod def setUpClass(cls): cls.policy, cls.policy_sha256 = MODULE.load_policy(MODULE.DEFAULT_POLICY_PATH) def resolve(self, tenant_id: str, period_start: str): return MODULE.resolve_grouping( tenant_id, dt.date.fromisoformat(period_start), self.policy, self.policy_sha256, ) def test_unlisted_tenant_uses_standard(self): decision = self.resolve("not-listed", "2026-08-01") self.assertEqual(decision["grouping_mode"], "standard") self.assertEqual(decision["reason"], "tenant_is_not_configured") def test_listed_tenant_after_cutoff_ignores_labels(self): decision = self.resolve("1372813089209301246", "2026-08-01") self.assertEqual(decision["grouping_mode"], "ignore_labels") self.assertTrue(decision["policy"]["tenant_is_configured"]) def test_listed_tenant_before_cutoff_uses_standard(self): decision = self.resolve("1372813089209301246", "2026-01-01") self.assertEqual(decision["grouping_mode"], "standard") self.assertEqual(decision["reason"], "period_is_before_cutoff") def test_policy_contains_reviewed_tenants(self): self.assertEqual( set(self.policy["disable_cluster_display_tenants"]), { "1372813089209260919", "1372813089209245725", "1372813089209301246", "1372813089209300444", }, ) if __name__ == "__main__": unittest.main()