"""Tests for performer schemas.""" import pytest from backend.schemas.performer import PerformerBaseSchema from backend.schemas.performer import TrackPeformersUpdateSchema @pytest.fixture def test_performer(): """Test performer fixture.""" return { 'type': 'primary', 'birth_name': 'Snowball', 'performer_role_id': 1} def test_performer_base_schema(test_performer): """Test performer base schema.""" result = PerformerBaseSchema().load(test_performer.copy()) assert result.data == test_performer assert result.errors == {} def test_performer_base_schema_required(test_performer): """Test performer base schema.""" del test_performer['type'] result = PerformerBaseSchema().load(test_performer.copy()) assert result.errors == { 'type': ['Missing data for required field.']} def test_performer_base_schema_bad_type(test_performer): """Test performer base schema.""" test_performer['type'] = 'invalid_type' result = PerformerBaseSchema().load(test_performer.copy()) assert result.errors == {'type': ['Not a valid choice.']} def test_track_performers_update_schema(test_performer): """Test update track performers schema.""" test_data = { 'performers': [ test_performer.copy(), test_performer.copy() ] } test_data['performers'][1]['birth_name'] = 'Pumpkin' result = TrackPeformersUpdateSchema().load(test_data.copy()) assert result.data == test_data assert result.errors == {}