"""Tests for performer validators.""" import pytest from backend.validation import performer_validators @pytest.fixture def valid_performers(performer_factory): """Valid performers fixture.""" return [ performer_factory(tuid=1, performer_type='primary').to_dict(), performer_factory(tuid=1, performer_type='primary').to_dict(), performer_factory(tuid=1, performer_type='featured').to_dict(), performer_factory(tuid=1, performer_type='featured').to_dict(), performer_factory(tuid=1, performer_type='non-featured').to_dict()] def test_validate_primary_performers(valid_performers): """Test a single primary performer validates.""" result = performer_validators.validate_primary_performers(valid_performers) assert not result def test_validate_no_primary_performers_invalid(performer_factory): """Test not including a primary performer is invalid.""" performers = [ performer_factory(tuid=1, performer_type='featured').to_dict()] result = performer_validators.validate_primary_performers(performers) assert result assert result['performers']['validator'] == 'required' def test_validate_performers_type(valid_performers): """Test performer types validate.""" result = performer_validators.validate_performers_type(valid_performers) assert not result @pytest.mark.parametrize('invalid_type', ['invalid', None, '', ' ']) def test_validate_performers_type_invalid(valid_performers, invalid_type): """Test invalid performer type causes invalid error.""" performers = valid_performers performers[2]['type'] = invalid_type result = performer_validators.validate_performers_type(performers) assert result assert result['performers']['validator'] == 'invalid' def test_validate_performers_birth_name(valid_performers): """Test performer birth names validate.""" result = performer_validators.validate_performers_birth_name( valid_performers) assert not result @pytest.mark.parametrize('invalid_birth_name', [None, '', ' ']) def test_validate_performers_birth_name_invalid( valid_performers, invalid_birth_name): """Test invalid performer birth names causes required error.""" performers = valid_performers performers[2]['birth_name'] = invalid_birth_name result = performer_validators.validate_performers_birth_name( valid_performers) assert result assert result['performers']['validator'] == 'required'