"""Test attributes dataclasses.""" from dataclasses import asdict import pytest from account.constants.tenants import TenantType from account.logic.resource_getters.attributes import Tenant @pytest.mark.parametrize( 'tenant_type', [ ('account'), ('subaccount'), ('label_participant'), ('collaborator'), ('company_brand'), (TenantType.ACCOUNT), (TenantType.SUBACCOUNT), (TenantType.LABEL_PARTICIPANT), (TenantType.COLLABORATOR), (TenantType.COMPANY_BRAND), ], ) def test_tenant(tenant_type: str | TenantType) -> None: """Test Tenant dataclass.""" tenant = Tenant( tenant_uuid='c4a243b4-e5b8-47eb-a8fb-8f7d550c9dcc', tenant_type=tenant_type, ) assert asdict(tenant) == { 'tenant_hierarchy': [], 'tenant_type': tenant_type, 'tenant_uuid': 'c4a243b4-e5b8-47eb-a8fb-8f7d550c9dcc', } tenant.tenant_hierarchy = [ '6fdee9c5-4f67-4624-870e-3ff8e8b12948', '4aca21de-765d-43fa-a162-0c682c83ceb4', ] assert asdict(tenant) == { 'tenant_hierarchy': [ '6fdee9c5-4f67-4624-870e-3ff8e8b12948', '4aca21de-765d-43fa-a162-0c682c83ceb4', ], 'tenant_type': tenant_type, 'tenant_uuid': 'c4a243b4-e5b8-47eb-a8fb-8f7d550c9dcc', } def test_tenant_tenant_uuid() -> None: """Test Tenant dataclass validates tenant_uuid.""" with pytest.raises(ValueError): Tenant( tenant_uuid='made up uuid', tenant_type='company_brand', ) def test_tenant_tenant_type() -> None: """Test Tenant dataclass validates TenantType enum.""" with pytest.raises(ValueError): Tenant( tenant_uuid='c4a243b4-e5b8-47eb-a8fb-8f7d550c9dcc', tenant_type='madeup', )