auto-sync: tudo-para-ia-mais-humana 2026-05-02 07:24:14

This commit is contained in:
2026-05-02 07:24:14 -03:00
parent 0951751ebe
commit 89e69ff7bd
22 changed files with 156891 additions and 5347 deletions

View File

@@ -0,0 +1,87 @@
from __future__ import annotations
import json
import unittest
from mais_humana.canonical_migration import (
AcceptanceStatus,
CANONICAL_PROJECT_ID,
CURRENT_PROJECT_ID,
build_canonical_migration_plan,
build_migration_acceptance_cases,
migration_plan_markdown,
migration_plan_payload,
)
from mais_humana.cli import main
from mais_humana.storage import table_counts
from tests.helpers import make_tmp
class CanonicalMigrationTests(unittest.TestCase):
def test_runtime_plan_models_canonical_aliases_and_controls(self) -> None:
plan = build_canonical_migration_plan(use_generated=False)
self.assertEqual(plan.canonical_project_id, CANONICAL_PROJECT_ID)
self.assertEqual(plan.current_project_id, CURRENT_PROJECT_ID)
self.assertGreaterEqual(plan.controls_count, 8)
self.assertGreaterEqual(len(plan.acceptance_cases), 2000)
self.assertIn("SEC_E_NO_CREDENTIALS", plan.blockers)
self.assertIn("Plano de migracao canonica", migration_plan_markdown(plan, limit_cases=3))
def test_owner_platform_alias_requires_canonical_rewrite(self) -> None:
cases = build_migration_acceptance_cases()
matching = [
case
for case in cases
if case.target_name == CANONICAL_PROJECT_ID
and case.field_name == "ownerPlatformId"
and case.candidate_value == CURRENT_PROJECT_ID
]
self.assertTrue(matching)
self.assertTrue(all(case.accepted for case in matching))
self.assertTrue(any(case.status == AcceptanceStatus.CANONICAL_FIELD_REWRITE_REQUIRED for case in matching))
def test_payload_is_compact_but_preserves_totals(self) -> None:
plan = build_canonical_migration_plan(use_generated=False)
payload = migration_plan_payload(plan, limit_cases=5)
self.assertEqual(payload["canonical_project_id"], CANONICAL_PROJECT_ID)
self.assertEqual(len(payload["acceptance_cases"]), 5)
self.assertEqual(payload["acceptance_cases_total"], len(plan.acceptance_cases))
self.assertIn(CURRENT_PROJECT_ID, payload["accepted_project_ids"])
def test_cli_writes_project_central_and_sql_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-migration-plan",
"--project-root",
str(project),
"--central-platform-folder",
str(central),
"--no-generated",
"--limit",
"3",
]
)
self.assertEqual(code, 0)
self.assertTrue((project / "dados" / "canonical-migration-plan.json").exists())
self.assertTrue((project / "matrizes" / "canonical-migration-acceptance-cases.csv").exists())
self.assertTrue((project / "matrizes" / "canonical-migration-controls.csv").exists())
self.assertTrue((project / "ecossistema" / "CANONICAL-MIGRATION-PLAN.md").exists())
self.assertTrue((central / "reports" / "EXECUTADO__canonical-migration-plan.md").exists())
payload = json.loads((project / "dados" / "canonical-migration-plan.json").read_text(encoding="utf-8"))
self.assertEqual(payload["canonical_project_id"], CANONICAL_PROJECT_ID)
self.assertGreaterEqual(payload["acceptance_cases_total"], 2000)
self.assertGreaterEqual(table_counts(project / "controle-semantico.sqlite").get("files", 0), 4)
self.assertGreaterEqual(table_counts(central / "controle-semantico.sqlite").get("files", 0), 1)
if __name__ == "__main__":
unittest.main()