auto-sync: tudo-para-ia-mais-humana 2026-05-02 04:45:08
This commit is contained in:
@@ -17,14 +17,14 @@ from enum import Enum
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Any, Mapping, Sequence
|
from typing import Any, Mapping, Sequence
|
||||||
|
|
||||||
|
from .identity_policy import CANONICAL_COMPATIBILITY_RULE, CANONICAL_PROJECT_ID, CENTRAL_FOLDER_NAME, CURRENT_PROJECT_ID
|
||||||
from .models import GeneratedFile, OrderStatus, OrderType, ServiceOrder, as_plain_data, merge_unique, utc_now
|
from .models import GeneratedFile, OrderStatus, OrderType, ServiceOrder, as_plain_data, merge_unique, utc_now
|
||||||
from .orders import order_markdown
|
from .orders import order_markdown
|
||||||
from .storage import connect, upsert_files, upsert_orders
|
from .storage import connect, upsert_files, upsert_orders
|
||||||
|
|
||||||
|
|
||||||
PROJECT_ID = "tudo-para-ia-mais-humana"
|
PROJECT_ID = CANONICAL_PROJECT_ID
|
||||||
REAL_REPO = "tudo-para-ia-mais-humana"
|
REAL_REPO = CURRENT_PROJECT_ID
|
||||||
CENTRAL_FOLDER_NAME = "15_repo_tudo-para-ia-mais-humana-platform"
|
|
||||||
|
|
||||||
|
|
||||||
class MaterializationStatus(str, Enum):
|
class MaterializationStatus(str, Enum):
|
||||||
@@ -336,14 +336,14 @@ def active_managerial_order_specs() -> tuple[MaterializedOrderSpec, ...]:
|
|||||||
_mgr(
|
_mgr(
|
||||||
"0052_GERENCIAL__formalizar-nome-canonico-mais-humana-platform-e-aliases",
|
"0052_GERENCIAL__formalizar-nome-canonico-mais-humana-platform-e-aliases",
|
||||||
"Formalizar nome canonico Mais Humana platform e aliases",
|
"Formalizar nome canonico Mais Humana platform e aliases",
|
||||||
"Decidir a relacao entre repo real sem sufixo, alias administrativo -platform e alias historico -plataform.",
|
"Registrar a relacao entre canonico -platform, repo local sem sufixo e alias historico -plataform.",
|
||||||
"O projeto real local e remoto encontrado e tudo-para-ia-mais-humana, enquanto a pasta central usa -platform.",
|
"A decisao institucional registrada no roteador aprovou tudo-para-ia-mais-humana-platform como nome canonico.",
|
||||||
"Nome canonico, aliases, politica de migracao e janela segura documentados sem duplicar repositorio.",
|
"Nome canonico aprovado, aliases preservados e migracao futura limitada a janela coordenada sem duplicar repositorio.",
|
||||||
("README.md", "dados/mcp-publication-gate-mais-humana.json"),
|
("README.md", "dados/mcp-publication-gate-mais-humana.json"),
|
||||||
("verificar remote", "verificar ownerPlatformId", "verificar referencias centrais"),
|
("verificar remote", "verificar ownerPlatformId", "verificar referencias centrais"),
|
||||||
("decisao institucional registrada", "aliases preservados ou migrados", "sem repositorio duplicado"),
|
("decisao institucional registrada", "aliases preservados", "sem repositorio duplicado"),
|
||||||
role=OrderLifecycleRole.ACTIVE_INPUT,
|
role=OrderLifecycleRole.ACTIVE_INPUT,
|
||||||
status=OrderStatus.BLOCKED,
|
status=OrderStatus.COMPLETED,
|
||||||
),
|
),
|
||||||
_mgr(
|
_mgr(
|
||||||
"0053_GERENCIAL__pactuar-docs-catalogonly-ou-response-ready-como-excecao-global",
|
"0053_GERENCIAL__pactuar-docs-catalogonly-ou-response-ready-como-excecao-global",
|
||||||
@@ -644,7 +644,7 @@ def _active_queue_markdown(report: CentralMaterializationReport) -> str:
|
|||||||
|
|
||||||
def _state_markdown(report: CentralMaterializationReport) -> str:
|
def _state_markdown(report: CentralMaterializationReport) -> str:
|
||||||
lines = [
|
lines = [
|
||||||
"# Estado atual reconciliado - tudo-para-ia-mais-humana",
|
"# Estado atual reconciliado - tudo-para-ia-mais-humana-platform",
|
||||||
"",
|
"",
|
||||||
"## Atualizacao central materialization - 2026-05-02",
|
"## Atualizacao central materialization - 2026-05-02",
|
||||||
"",
|
"",
|
||||||
@@ -655,7 +655,9 @@ def _state_markdown(report: CentralMaterializationReport) -> str:
|
|||||||
f"- project_root: `{report.project_root}`",
|
f"- project_root: `{report.project_root}`",
|
||||||
f"- central_platform_folder: `{report.central_platform_folder}`",
|
f"- central_platform_folder: `{report.central_platform_folder}`",
|
||||||
"",
|
"",
|
||||||
"A rodada materializou ordens citadas pela fila, gerou o catalogo de aceitacao das rotas administrativas MCP-only e preservou como pendencias apenas credencial Git, runner/deploy, ACL local, decisao canonica e Docs.",
|
"A rodada materializou ordens citadas pela fila, gerou o catalogo de aceitacao das rotas administrativas MCP-only, registrou a decisao canonica e preservou como pendencias apenas credencial Git, runner/deploy, ACL local e Docs.",
|
||||||
|
"",
|
||||||
|
f"Politica canonica: {CANONICAL_COMPATIBILITY_RULE}",
|
||||||
"",
|
"",
|
||||||
"## Saida ativa efetiva",
|
"## Saida ativa efetiva",
|
||||||
"",
|
"",
|
||||||
@@ -672,7 +674,7 @@ def _state_markdown(report: CentralMaterializationReport) -> str:
|
|||||||
|
|
||||||
def _orders_index_markdown(report: CentralMaterializationReport) -> str:
|
def _orders_index_markdown(report: CentralMaterializationReport) -> str:
|
||||||
lines = [
|
lines = [
|
||||||
"# Indice de ordens - tudo-para-ia-mais-humana",
|
"# Indice de ordens - tudo-para-ia-mais-humana-platform",
|
||||||
"",
|
"",
|
||||||
"## Rodada 015 - materializacao central",
|
"## Rodada 015 - materializacao central",
|
||||||
"",
|
"",
|
||||||
|
|||||||
@@ -22,6 +22,14 @@ from enum import Enum
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Any, Iterable, Mapping, Sequence
|
from typing import Any, Iterable, Mapping, Sequence
|
||||||
|
|
||||||
|
from .identity_policy import (
|
||||||
|
CANONICAL_PROJECT_ID,
|
||||||
|
CURRENT_PROJECT_ID,
|
||||||
|
LEGACY_PROJECT_IDS,
|
||||||
|
MCP_CONTROL_PLANE_ID,
|
||||||
|
MCP_EXECUTE_ENDPOINT,
|
||||||
|
UI_SUPPORT_PLATFORM_ID,
|
||||||
|
)
|
||||||
from .models import PlatformHumanReport, as_plain_data, merge_unique, slugify, utc_now
|
from .models import PlatformHumanReport, as_plain_data, merge_unique, slugify, utc_now
|
||||||
|
|
||||||
|
|
||||||
@@ -98,15 +106,6 @@ MCP_TRANSIT_FIELDS: tuple[str, ...] = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
CANONICAL_PROJECT_ID = "tudo-para-ia-mais-humana-platform"
|
|
||||||
CURRENT_PROJECT_ID = "tudo-para-ia-mais-humana"
|
|
||||||
LEGACY_PROJECT_IDS: tuple[str, ...] = (
|
|
||||||
"tudo-para-ia-mais-humana",
|
|
||||||
"tudo-para-ia-mais-humana-plataform",
|
|
||||||
)
|
|
||||||
MCP_CONTROL_PLANE_ID = "tudo-para-ia-mcps-internos-plataform"
|
|
||||||
UI_SUPPORT_PLATFORM_ID = "tudo-para-ia-ui-platform"
|
|
||||||
MCP_EXECUTE_ENDPOINT = "https://mcps-gateway.ami-app.workers.dev/v1/execute"
|
|
||||||
RULEBOOK_SOURCE_TOOL_ID = "mais_humana.rulebook.compact"
|
RULEBOOK_SOURCE_TOOL_ID = "mais_humana.rulebook.compact"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
81
src/mais_humana/identity_policy.py
Normal file
81
src/mais_humana/identity_policy.py
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
"""Canonical identity policy for the Mais Humana platform.
|
||||||
|
|
||||||
|
The institutional decision is explicit: the platform's canonical name is
|
||||||
|
``tudo-para-ia-mais-humana-platform``. The physical repository may still be
|
||||||
|
materialized as the historical no-suffix folder while synchronization and Gitea
|
||||||
|
renames are coordinated, so the policy keeps compatibility aliases visible
|
||||||
|
instead of treating them as competing sources of truth.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from dataclasses import dataclass
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
from .models import as_plain_data, merge_unique
|
||||||
|
|
||||||
|
|
||||||
|
CANONICAL_PROJECT_ID = "tudo-para-ia-mais-humana-platform"
|
||||||
|
CURRENT_PROJECT_ID = "tudo-para-ia-mais-humana"
|
||||||
|
LEGACY_PLATAFORM_ALIAS = "tudo-para-ia-mais-humana-plataform"
|
||||||
|
CENTRAL_FOLDER_NAME = "15_repo_tudo-para-ia-mais-humana-platform"
|
||||||
|
CANONICAL_DECISION_STATUS = "approved"
|
||||||
|
CANONICAL_DECISION_SOURCE = "015-ROTEADOR-PERMANENTE-DE-ORDEM_DE_SERVICO.MD"
|
||||||
|
MCP_CONTROL_PLANE_ID = "tudo-para-ia-mcps-internos-plataform"
|
||||||
|
UI_SUPPORT_PLATFORM_ID = "tudo-para-ia-ui-platform"
|
||||||
|
MCP_EXECUTE_ENDPOINT = "https://mcps-gateway.ami-app.workers.dev/v1/execute"
|
||||||
|
|
||||||
|
LEGACY_PROJECT_IDS: tuple[str, ...] = (
|
||||||
|
CURRENT_PROJECT_ID,
|
||||||
|
LEGACY_PLATAFORM_ALIAS,
|
||||||
|
)
|
||||||
|
|
||||||
|
ACCEPTED_PROJECT_IDS: tuple[str, ...] = merge_unique(
|
||||||
|
(CANONICAL_PROJECT_ID, *LEGACY_PROJECT_IDS)
|
||||||
|
)
|
||||||
|
|
||||||
|
CANONICAL_COMPATIBILITY_RULE = (
|
||||||
|
"Nome canonico institucional aprovado como tudo-para-ia-mais-humana-platform; "
|
||||||
|
"o repositorio local historico tudo-para-ia-mais-humana e o alias "
|
||||||
|
"tudo-para-ia-mais-humana-plataform permanecem aliases de compatibilidade "
|
||||||
|
"ate migracao Git/MCP sincronizada, sem duplicar repositorio nem sobrescrever historico."
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass(frozen=True, slots=True)
|
||||||
|
class CanonicalIdentityPolicy:
|
||||||
|
"""Serializable policy consumed by MCP contracts, reports, and gates."""
|
||||||
|
|
||||||
|
canonical_project_id: str = CANONICAL_PROJECT_ID
|
||||||
|
current_project_id: str = CURRENT_PROJECT_ID
|
||||||
|
legacy_project_ids: tuple[str, ...] = LEGACY_PROJECT_IDS
|
||||||
|
accepted_project_ids: tuple[str, ...] = ACCEPTED_PROJECT_IDS
|
||||||
|
decision_status: str = CANONICAL_DECISION_STATUS
|
||||||
|
decision_source: str = CANONICAL_DECISION_SOURCE
|
||||||
|
central_folder_name: str = CENTRAL_FOLDER_NAME
|
||||||
|
control_plane_id: str = MCP_CONTROL_PLANE_ID
|
||||||
|
compatibility_rule: str = CANONICAL_COMPATIBILITY_RULE
|
||||||
|
|
||||||
|
def to_dict(self) -> dict[str, Any]:
|
||||||
|
return as_plain_data(self)
|
||||||
|
|
||||||
|
|
||||||
|
def canonical_identity_policy() -> CanonicalIdentityPolicy:
|
||||||
|
"""Return the immutable identity policy for this round."""
|
||||||
|
|
||||||
|
return CanonicalIdentityPolicy()
|
||||||
|
|
||||||
|
|
||||||
|
def canonicalize_project_id(project_id: str) -> str:
|
||||||
|
"""Map known historical ids to the approved canonical project id."""
|
||||||
|
|
||||||
|
normalized = str(project_id).strip()
|
||||||
|
if normalized in ACCEPTED_PROJECT_IDS:
|
||||||
|
return CANONICAL_PROJECT_ID
|
||||||
|
return normalized
|
||||||
|
|
||||||
|
|
||||||
|
def is_accepted_project_id(project_id: str) -> bool:
|
||||||
|
"""Return whether an id is canonical or an approved compatibility alias."""
|
||||||
|
|
||||||
|
return canonicalize_project_id(project_id) == CANONICAL_PROJECT_ID
|
||||||
@@ -34,6 +34,11 @@ from .mcp_contract import (
|
|||||||
PROVIDER_TOOL_ID,
|
PROVIDER_TOOL_ID,
|
||||||
stable_hash,
|
stable_hash,
|
||||||
)
|
)
|
||||||
|
from .identity_policy import (
|
||||||
|
CANONICAL_COMPATIBILITY_RULE,
|
||||||
|
CANONICAL_DECISION_STATUS,
|
||||||
|
LEGACY_PROJECT_IDS,
|
||||||
|
)
|
||||||
from .models import GeneratedFile, as_plain_data, merge_unique, slugify, utc_now
|
from .models import GeneratedFile, as_plain_data, merge_unique, slugify, utc_now
|
||||||
from .redaction import redact_sensitive_text
|
from .redaction import redact_sensitive_text
|
||||||
|
|
||||||
@@ -504,7 +509,7 @@ def build_alias_policy(
|
|||||||
*,
|
*,
|
||||||
central_platform_folder: Path | None = None,
|
central_platform_folder: Path | None = None,
|
||||||
repo_remote: str = "",
|
repo_remote: str = "",
|
||||||
decision_status: str = "pending_institutional_decision",
|
decision_status: str = CANONICAL_DECISION_STATUS,
|
||||||
) -> AliasPolicyEvidence:
|
) -> AliasPolicyEvidence:
|
||||||
"""Build the canonical-name policy without renaming files or remotes."""
|
"""Build the canonical-name policy without renaming files or remotes."""
|
||||||
|
|
||||||
@@ -519,15 +524,12 @@ def build_alias_policy(
|
|||||||
current_project_id=CURRENT_PROJECT_ID,
|
current_project_id=CURRENT_PROJECT_ID,
|
||||||
canonical_project_id=CANONICAL_PROJECT_ID,
|
canonical_project_id=CANONICAL_PROJECT_ID,
|
||||||
owner_platform_id=DEFAULT_OWNER_PLATFORM_ID,
|
owner_platform_id=DEFAULT_OWNER_PLATFORM_ID,
|
||||||
legacy_aliases=(DEFAULT_OWNER_PLATFORM_ID, LEGACY_ALIAS_PLATFORM_ID),
|
legacy_aliases=tuple(LEGACY_PROJECT_IDS),
|
||||||
central_folder=central_folder,
|
central_folder=central_folder,
|
||||||
repo_remote=repo_remote,
|
repo_remote=repo_remote,
|
||||||
decision_status=decision_status,
|
decision_status=decision_status,
|
||||||
migration_safe_now=migration_safe_now,
|
migration_safe_now=migration_safe_now,
|
||||||
compatibility_rule=(
|
compatibility_rule=CANONICAL_COMPATIBILITY_RULE,
|
||||||
"Preserve current project id and central -platform alias until an explicit "
|
|
||||||
"institutional decision authorizes a synchronized Git/MCP/documentation rename."
|
|
||||||
),
|
|
||||||
blockers=tuple(blockers),
|
blockers=tuple(blockers),
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -596,7 +598,7 @@ def decide_publication_orders(
|
|||||||
alias.status,
|
alias.status,
|
||||||
"politica de alias foi materializada sem renome destrutivo",
|
"politica de alias foi materializada sem renome destrutivo",
|
||||||
("alias_policy",),
|
("alias_policy",),
|
||||||
"aguardar decisao institucional antes de renomear remote, pasta central, ownerPlatformId ou referencias historicas",
|
"executar migracao Git/MCP/documentacao somente por janela coordenada, preservando aliases e hashes",
|
||||||
),
|
),
|
||||||
_decision(
|
_decision(
|
||||||
"0043_GERENCIAL__aprovar-janela-publicacao-provider-mais-humana-com-rollback",
|
"0043_GERENCIAL__aprovar-janela-publicacao-provider-mais-humana-com-rollback",
|
||||||
@@ -629,9 +631,9 @@ def decide_publication_orders(
|
|||||||
_decision(
|
_decision(
|
||||||
"0047_GERENCIAL__decidir-nome-canonico-e-politica-alias-mais-humana",
|
"0047_GERENCIAL__decidir-nome-canonico-e-politica-alias-mais-humana",
|
||||||
alias.status,
|
alias.status,
|
||||||
"nome atual, nome canonico recomendado e aliases estao documentados",
|
"decisao institucional aprovada: canonico -platform com aliases historicos preservados",
|
||||||
("alias_policy",),
|
("alias_policy",),
|
||||||
"registrar decisao formal: preservar alias ou executar migracao coordenada",
|
"manter politica de compatibilidade e abrir apenas execucao tecnica de migracao coordenada",
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -687,7 +689,7 @@ def build_publication_gate_report(
|
|||||||
f"Wrangler autenticado: {wrangler.authenticated}; deploy dry-run OK: {wrangler.deploy_dry_run_ok}.",
|
f"Wrangler autenticado: {wrangler.authenticated}; deploy dry-run OK: {wrangler.deploy_dry_run_ok}.",
|
||||||
f"Tools live prontas: {sum(1 for item in probes if item.live_ready)}/{len(probes)}.",
|
f"Tools live prontas: {sum(1 for item in probes if item.live_ready)}/{len(probes)}.",
|
||||||
f"Probes live com envelope MCP completo: {sum(1 for item in probes if not item.missing_transit_fields)}/{len(probes)}.",
|
f"Probes live com envelope MCP completo: {sum(1 for item in probes if not item.missing_transit_fields)}/{len(probes)}.",
|
||||||
f"Nome atual: {CURRENT_PROJECT_ID}; canonico recomendado: {CANONICAL_PROJECT_ID}; ownerPlatformId MCP: {DEFAULT_OWNER_PLATFORM_ID}.",
|
f"Nome atual materializado: {CURRENT_PROJECT_ID}; canonico aprovado: {CANONICAL_PROJECT_ID}; ownerPlatformId MCP: {DEFAULT_OWNER_PLATFORM_ID}.",
|
||||||
f"Decisoes de OS avaliadas: {len(decisions)}.",
|
f"Decisoes de OS avaliadas: {len(decisions)}.",
|
||||||
)
|
)
|
||||||
return McpPublicationGateReport(
|
return McpPublicationGateReport(
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ from enum import Enum
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Any, Callable, Iterable, Mapping, MutableMapping, Sequence
|
from typing import Any, Callable, Iterable, Mapping, MutableMapping, Sequence
|
||||||
|
|
||||||
|
from .identity_policy import CANONICAL_PROJECT_ID, CURRENT_PROJECT_ID, LEGACY_PLATAFORM_ALIAS
|
||||||
from .models import GeneratedFile, as_plain_data, merge_unique, slugify, utc_now
|
from .models import GeneratedFile, as_plain_data, merge_unique, slugify, utc_now
|
||||||
|
|
||||||
|
|
||||||
@@ -565,14 +566,16 @@ def default_repository_targets() -> tuple[RepositoryTarget, ...]:
|
|||||||
central_folder="09_repo_tudo-para-ia-intelligence-platform",
|
central_folder="09_repo_tudo-para-ia-intelligence-platform",
|
||||||
),
|
),
|
||||||
RepositoryTarget(
|
RepositoryTarget(
|
||||||
declared_name="tudo-para-ia-mais-humana-platform",
|
declared_name=CANONICAL_PROJECT_ID,
|
||||||
expected_local_name="tudo-para-ia-mais-humana",
|
expected_local_name=CANONICAL_PROJECT_ID,
|
||||||
gitea_repo="admin/tudo-para-ia-mais-humana",
|
gitea_repo=f"admin/{CANONICAL_PROJECT_ID}",
|
||||||
central_folder="15_repo_tudo-para-ia-mais-humana-platform",
|
central_folder="15_repo_tudo-para-ia-mais-humana-platform",
|
||||||
aliases=("tudo-para-ia-mais-humana-plataform",),
|
aliases=(CURRENT_PROJECT_ID, LEGACY_PLATAFORM_ALIAS),
|
||||||
canonical_name="tudo-para-ia-mais-humana-platform",
|
canonical_name=CANONICAL_PROJECT_ID,
|
||||||
requires_nominal_reconciliation=True,
|
requires_nominal_reconciliation=True,
|
||||||
notes=("nome canonico administrativo declarado como -platform; repo local/remoto materializado segue sem sufixo ate decisao Gitea",),
|
notes=(
|
||||||
|
"decisao institucional aprovou -platform como canonico; repo local/remoto historico sem sufixo permanece alias ate migracao coordenada",
|
||||||
|
),
|
||||||
),
|
),
|
||||||
RepositoryTarget(
|
RepositoryTarget(
|
||||||
declared_name="tudo-para-ia-mcps-internos-plataform",
|
declared_name="tudo-para-ia-mcps-internos-plataform",
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ class CentralMaterializationTests(unittest.TestCase):
|
|||||||
code = main(["central-materialization", "--project-root", str(project), "--central-platform-folder", str(central)])
|
code = main(["central-materialization", "--project-root", str(project), "--central-platform-folder", str(central)])
|
||||||
self.assertEqual(code, 0)
|
self.assertEqual(code, 0)
|
||||||
payload = json.loads((central / "dados" / "central-materialization-report.json").read_text(encoding="utf-8"))
|
payload = json.loads((central / "dados" / "central-materialization-report.json").read_text(encoding="utf-8"))
|
||||||
self.assertEqual(payload["project_id"], "tudo-para-ia-mais-humana")
|
self.assertEqual(payload["project_id"], "tudo-para-ia-mais-humana-platform")
|
||||||
self.assertEqual(len(payload["active_input_orders"]), 10)
|
self.assertEqual(len(payload["active_input_orders"]), 10)
|
||||||
self.assertEqual(len(payload["next_output_orders"]), 10)
|
self.assertEqual(len(payload["next_output_orders"]), 10)
|
||||||
|
|
||||||
|
|||||||
@@ -142,7 +142,7 @@ class McpPublicationGateTests(unittest.TestCase):
|
|||||||
)
|
)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
by_id["0047_GERENCIAL__decidir-nome-canonico-e-politica-alias-mais-humana"].status,
|
by_id["0047_GERENCIAL__decidir-nome-canonico-e-politica-alias-mais-humana"].status,
|
||||||
GateStatus.BLOCKED,
|
GateStatus.PASSED,
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_publication_gate_report_serializes_markdown_and_csv(self) -> None:
|
def test_publication_gate_report_serializes_markdown_and_csv(self) -> None:
|
||||||
|
|||||||
@@ -111,7 +111,8 @@ class RepositoryMeshTests(unittest.TestCase):
|
|||||||
targets = default_repository_targets()
|
targets = default_repository_targets()
|
||||||
names = {item.declared_name: item for item in targets}
|
names = {item.declared_name: item for item in targets}
|
||||||
self.assertIn("tudo-para-ia-mais-humana-platform", names)
|
self.assertIn("tudo-para-ia-mais-humana-platform", names)
|
||||||
self.assertEqual(names["tudo-para-ia-mais-humana-platform"].expected_local_name, "tudo-para-ia-mais-humana")
|
self.assertEqual(names["tudo-para-ia-mais-humana-platform"].expected_local_name, "tudo-para-ia-mais-humana-platform")
|
||||||
|
self.assertIn("tudo-para-ia-mais-humana", names["tudo-para-ia-mais-humana-platform"].aliases)
|
||||||
self.assertIn("tudo-para-ia-mais-humana-plataform", names["tudo-para-ia-mais-humana-platform"].aliases)
|
self.assertIn("tudo-para-ia-mais-humana-plataform", names["tudo-para-ia-mais-humana-platform"].aliases)
|
||||||
self.assertTrue(names["tudo-para-ia-mais-humana-platform"].requires_nominal_reconciliation)
|
self.assertTrue(names["tudo-para-ia-mais-humana-platform"].requires_nominal_reconciliation)
|
||||||
self.assertIn("tudo-para-ia-integracoes-platform", names)
|
self.assertIn("tudo-para-ia-integracoes-platform", names)
|
||||||
|
|||||||
Reference in New Issue
Block a user