"""Test lookup schemas.""" from typing import Any, Dict import pytest from participant.schemas.input.lookup_label_participants import LookupByUuids @pytest.mark.parametrize( 'description, payload, expected_errors', [ ( 'Valid model without a fetch flag with V4 UUIDs', { 'uuids': [ 'bb1df2de-1791-4a42-a536-e62da0d7c50a', '7f6bf9fb-dd76-4e91-8cf9-cfdb239b2017', ] }, {}, ), ( 'Valid model with V1 UUIDs', { 'uuids': [ '5afc3342-0263-11ef-a52a-4a2888760684', '65471cfe-0263-11ef-bfc9-4a2888760684', ] }, {}, ), ( 'Fails due to invalid UUID', { 'uuids': [ 'bb1df2de-1791-4a42-a536-e62da0d7c50a', '7f6bf9fb-dd76-4e91-8cf9-cfdb239b2017', 'no.such.uuid', ], }, { 'uuids': { 2: [ 'Not a valid UUID.', ] } }, ), ( 'Fails because of unsupported keys', { 'uuids': [ 'bb1df2de-1791-4a42-a536-e62da0d7c50a', '7f6bf9fb-dd76-4e91-8cf9-cfdb239b2017', ], 'fetch_flags': ['TENANT_HIERARCHY'], }, {'fetch_flags': ['Unknown field.']}, ), ], ) def test_lookup_by_uuids( description: str, payload: Dict[str, Any], expected_errors: Dict[str, Any] ) -> None: """Test LookupByUuids.""" schema_instance = LookupByUuids() errors = schema_instance.validate(payload) assert errors == expected_errors, description