51 lines
1.4 KiB
Python
51 lines
1.4 KiB
Python
from fastapi_modules.fastapi_leaudit.services.impl.ruleTenantScope import (
|
|
candidate_scope_tenant_codes,
|
|
normalize_scoped_tenant_code,
|
|
pick_effective_scoped_row,
|
|
)
|
|
|
|
|
|
def test_candidate_scope_tenant_codes_prefers_exact_then_public_then_legacy_provincial():
|
|
assert candidate_scope_tenant_codes("MZ") == ["MZ", "PUBLIC", "PROVINCIAL"]
|
|
|
|
|
|
def test_normalize_scoped_tenant_code_treats_empty_as_provincial_by_default():
|
|
assert normalize_scoped_tenant_code("") == "PROVINCIAL"
|
|
assert normalize_scoped_tenant_code(None) == "PROVINCIAL"
|
|
|
|
|
|
def test_pick_effective_scoped_row_prefers_exact_tenant():
|
|
rows = [
|
|
{"tenant_code": "PROVINCIAL", "id": 2},
|
|
{"tenant_code": "MZ", "id": 1},
|
|
{"tenant_code": "PUBLIC", "id": 3},
|
|
]
|
|
|
|
result = pick_effective_scoped_row(rows, "MZ")
|
|
|
|
assert result is not None
|
|
assert result["id"] == 1
|
|
|
|
|
|
def test_pick_effective_scoped_row_prefers_public_over_legacy_empty_provincial_fallback():
|
|
rows = [
|
|
{"tenant_code": "", "id": 9},
|
|
{"tenant_code": "PUBLIC", "id": 3},
|
|
]
|
|
|
|
result = pick_effective_scoped_row(rows, "MZ")
|
|
|
|
assert result is not None
|
|
assert result["id"] == 3
|
|
|
|
|
|
def test_pick_effective_scoped_row_falls_back_to_public():
|
|
rows = [
|
|
{"tenant_code": "PUBLIC", "id": 3},
|
|
]
|
|
|
|
result = pick_effective_scoped_row(rows, "MZ")
|
|
|
|
assert result is not None
|
|
assert result["id"] == 3
|