auto-sync: tudo-para-ia-mais-humana 2026-05-02 06:24:21

This commit is contained in:
2026-05-02 06:24:22 -03:00
parent 0de33e11e2
commit 819e98c978
47 changed files with 71953 additions and 1371 deletions

View File

@@ -0,0 +1,94 @@
from __future__ import annotations
import json
import unittest
from mais_humana.canonical_identity import (
CANONICAL_PROJECT_ID,
CURRENT_PROJECT_ID,
LEGACY_PLATAFORM_ALIAS,
IdentityIssueSeverity,
build_identity_graph,
identity_acceptance_rows,
identity_graph_markdown,
identity_graph_payload,
validate_identity_payload,
)
from mais_humana.cli import main
from tests.helpers import make_tmp
class CanonicalIdentityTests(unittest.TestCase):
def test_graph_accepts_canonical_current_and_plataform_alias(self) -> None:
graph = build_identity_graph(use_generated=False)
self.assertEqual(graph.canonicalize(CURRENT_PROJECT_ID), CANONICAL_PROJECT_ID)
self.assertEqual(graph.canonicalize(LEGACY_PLATAFORM_ALIAS), CANONICAL_PROJECT_ID)
self.assertEqual(graph.canonicalize(CANONICAL_PROJECT_ID), CANONICAL_PROJECT_ID)
record = graph.record_for(CURRENT_PROJECT_ID)
self.assertIsNotNone(record)
self.assertEqual(record.canonical_project_id if record else "", CANONICAL_PROJECT_ID)
self.assertIn("Canonical Identity Graph", identity_graph_markdown(graph))
def test_payload_validation_warns_for_alias_in_canonical_field(self) -> None:
graph = build_identity_graph(use_generated=False)
result = validate_identity_payload(
{
"ownerPlatformId": CURRENT_PROJECT_ID,
"projectId": LEGACY_PLATAFORM_ALIAS,
"canonicalProjectId": CANONICAL_PROJECT_ID,
},
graph=graph,
)
self.assertTrue(result.ok)
self.assertIn(CANONICAL_PROJECT_ID, result.canonical_project_ids)
self.assertIn(CURRENT_PROJECT_ID, result.accepted_aliases)
self.assertTrue(any(issue.severity == IdentityIssueSeverity.WARNING for issue in result.issues))
def test_payload_validation_blocks_unknown_identifier(self) -> None:
result = validate_identity_payload({"ownerPlatformId": "repo-inexistente"}, graph=build_identity_graph(use_generated=False))
self.assertFalse(result.ok)
self.assertEqual(result.blockers[0].severity, IdentityIssueSeverity.BLOCKER)
def test_generated_registry_has_mcp_acceptance_cases(self) -> None:
graph = build_identity_graph(use_generated=True)
rows = identity_acceptance_rows(graph)
payload = identity_graph_payload(graph, limit_cases=3)
self.assertGreaterEqual(graph.records_count, 15)
self.assertGreaterEqual(len(graph.acceptance_cases), 4000)
self.assertEqual(payload["maisHumanaCanonicalProjectId"], CANONICAL_PROJECT_ID)
self.assertIn("ownerPlatformId", {row[4] for row in rows[1:100]})
def test_cli_writes_identity_graph_artifacts(self) -> None:
root = make_tmp()
project = root / "tudo-para-ia-mais-humana"
central = root / "central" / "15_repo_tudo-para-ia-mais-humana-platform"
code = main(
[
"canonical-identity",
"--project-root",
str(project),
"--central-platform-folder",
str(central),
"--no-generated",
]
)
self.assertEqual(code, 0)
graph_json = project / "dados" / "canonical-identity-graph.json"
self.assertTrue(graph_json.exists())
self.assertTrue((project / "matrizes" / "canonical-identity-graph.csv").exists())
self.assertTrue((project / "matrizes" / "canonical-identity-acceptance-cases.csv").exists())
self.assertTrue((project / "ecossistema" / "CANONICAL-IDENTITY-GRAPH.md").exists())
self.assertTrue((central / "reports" / "EXECUTADO__canonical-identity-graph.md").exists())
payload = json.loads(graph_json.read_text(encoding="utf-8"))
self.assertEqual(payload["maisHumanaCanonicalProjectId"], CANONICAL_PROJECT_ID)
if __name__ == "__main__":
unittest.main()