from fastapi_modules.fastapi_leaudit.services.impl.ruleServiceImpl import RuleServiceImpl def test_build_version_snapshot_uses_explicit_source_version(): service = RuleServiceImpl() snapshot = service._build_version_scope_snapshot( writable_tenant_code="MZ", writable_scope_type="TENANT", rule_set_row={"tenant_code": "MZ"}, source_version_id=321, ) assert snapshot == { "tenant_code_snapshot": "MZ", "scope_type_snapshot": "TENANT", "source_version_id": 321, } def test_build_version_snapshot_defaults_to_rule_set_scope_when_tenant_missing(): service = RuleServiceImpl() snapshot = service._build_version_scope_snapshot( writable_tenant_code=None, writable_scope_type="PROVINCIAL", rule_set_row={"tenant_code": "PUBLIC"}, source_version_id=None, ) assert snapshot == { "tenant_code_snapshot": "PUBLIC", "scope_type_snapshot": "PROVINCIAL", "source_version_id": None, }