66 lines
2.4 KiB
Python
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
|
|
|