"""Unit tests for dataloader schema validation.""" import pytest from users.validation.schemas.dataloader import OrchAdminUsersDataloader @pytest.mark.parametrize( ('payload', 'expected_errors'), [ pytest.param( {'user_ids': ['1', '2']}, {}, id='valid payload', ), pytest.param( {'user_ids': []}, {}, id='empty list valid', ), pytest.param( {}, {'user_ids': ['Missing data for required field.']}, id='missing user ids', ), pytest.param( {'user_ids': ['invalid-uuid']}, {'user_ids': {0: ['String does not match expected pattern.']}}, id='invalid uuid', ), pytest.param( {'user_ids': None}, {'user_ids': ['Field may not be null.']}, id='null user ids', ), ], ) def test_vendors_dataloader_schema(payload, expected_errors): """Test OrchAdminUsersDataloader base schema validation.""" schema = OrchAdminUsersDataloader() if expected_errors: errors = schema.validate(payload) assert errors == expected_errors else: result = schema.load(payload) assert 'user_ids' in result