Files
leaudit-platform-backend/tests/test_rule_group_binding_scope.py
T

66 lines
2.4 KiB
Python

from fastapi_common.fastapi_common_web.domain.responses import StatusCodeEnum
from fastapi_common.fastapi_common_web.exception.LeauditException import LeauditException
from fastapi_modules.fastapi_leaudit.services.impl.evaluationPointGroupServiceImpl import (
EvaluationPointGroupServiceImpl,
)
def test_binding_scope_payload_for_tenant_user_uses_exact_tenant():
service = EvaluationPointGroupServiceImpl()
payload = service._build_binding_scope_payload(
current_user={"tenant_code": "MZ", "tenant_name": "梅州", "is_global": False},
rule_set_meta={"effective_tenant_code": "PROVINCIAL", "effective_scope_type": "PROVINCIAL"},
)
assert payload == {
"tenant_code": "MZ",
"scope_type": "TENANT",
"tenant_name_snapshot": "梅州",
}
def test_binding_scope_payload_for_global_user_inherits_rule_set_scope():
service = EvaluationPointGroupServiceImpl()
payload = service._build_binding_scope_payload(
current_user={"tenant_code": None, "tenant_name": None, "is_global": True},
rule_set_meta={"effective_tenant_code": "PUBLIC", "effective_scope_type": "PUBLIC"},
)
assert payload == {
"tenant_code": "PUBLIC",
"scope_type": "PUBLIC",
"tenant_name_snapshot": None,
}
def test_binding_scope_payload_rejects_tenant_user_binding_public_asset():
service = EvaluationPointGroupServiceImpl()
try:
service._build_binding_scope_payload(
current_user={"tenant_code": "MZ", "tenant_name": "梅州", "is_global": False},
rule_set_meta={"effective_tenant_code": "PUBLIC", "effective_scope_type": "PUBLIC"},
)
assert False, "expected LeauditException"
except LeauditException as exc:
assert exc.status == StatusCodeEnum.HTTP_403_FORBIDDEN
def test_binding_inheritance_state_marks_tenant_user_using_provincial_binding_as_inherited():
service = EvaluationPointGroupServiceImpl()
state = service._build_binding_scope_state(
binding_row={"tenant_code": "PROVINCIAL", "scope_type": "PROVINCIAL"},
current_user={"tenant_code": "MZ", "is_global": False},
rule_set_meta={"source_rule_set_id": 88},
)
assert state["effective_tenant_code"] == "PROVINCIAL"
assert state["effective_scope_type"] == "PROVINCIAL"
assert state["is_inherited"] is True
assert state["source_rule_set_id"] == 88