mirror of
https://github.com/kharonsec/br-acc
synced 2026-04-26 01:25:06 +02:00
sync: upstream convergence 2026-03-02
Co-authored-by: bruno cesar <brunoclz@brunos-MacBook-Pro.local>
This commit is contained in:
@@ -68,6 +68,28 @@ class TestIsPepRecord:
|
||||
def test_cargo_field(self) -> None:
|
||||
assert _is_pep_record({"name": "X", "cpf": "11111111111", "cargo": "Deputado"})
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"role",
|
||||
[
|
||||
"Deputado Federal",
|
||||
"deputado federal",
|
||||
"DEPUTADO FEDERAL",
|
||||
"Senador da Republica",
|
||||
"senadora da republica",
|
||||
"Vereador Suplente",
|
||||
"Ministro de Estado",
|
||||
"Governadora do Estado de Sao Paulo",
|
||||
"Presidente da Republica",
|
||||
],
|
||||
)
|
||||
def test_compound_role_detected_as_pep(self, role: str) -> None:
|
||||
"""Compound PEP roles like 'deputado federal' must be detected via substring match."""
|
||||
assert _is_pep_record({"name": "X", "cpf": "11111111111", "role": role})
|
||||
|
||||
def test_compound_cargo_detected_as_pep(self) -> None:
|
||||
"""Compound PEP cargo like 'Deputado Federal' must be detected via substring match."""
|
||||
assert _is_pep_record({"name": "X", "cpf": "11111111111", "cargo": "Deputado Federal"})
|
||||
|
||||
def test_non_pep_role(self) -> None:
|
||||
assert not _is_pep_record({"name": "X", "cpf": "11111111111", "role": "assessor"})
|
||||
|
||||
@@ -99,6 +121,18 @@ class TestCollectPepCpfs:
|
||||
data = {"a": {"b": {"c": [{"cpf": "33333333333", "is_pep": True}]}}}
|
||||
assert "33333333333" in _collect_pep_cpfs(data)
|
||||
|
||||
def test_compound_role_collected(self) -> None:
|
||||
"""Compound roles like 'Deputado Federal' must be recognized in the walk."""
|
||||
data = {
|
||||
"results": [
|
||||
{"cpf": "11111111111", "role": "Deputado Federal"},
|
||||
{"cpf": "22222222222", "role": "assessor parlamentar"},
|
||||
]
|
||||
}
|
||||
peps = _collect_pep_cpfs(data)
|
||||
assert "11111111111" in peps
|
||||
assert "22222222222" not in peps
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Unit tests for mask_cpfs_in_json
|
||||
@@ -205,4 +239,4 @@ async def test_health_not_masked(client: AsyncClient) -> None:
|
||||
"""Non-CPF JSON responses pass through unchanged."""
|
||||
resp = await client.get("/health")
|
||||
assert resp.status_code == 200
|
||||
assert resp.json()["status"] == "ok" and "version" in resp.json()
|
||||
assert resp.json() == {"status": "ok"}
|
||||
|
||||
Reference in New Issue
Block a user