def test_missing_related(): validator = ModelValidator(ComplexPerson(name='tim', gender='M')) valid = validator.validate({'organization': 999}) assert not valid assert validator.errors['organization'] == 'unable to find related object' valid = validator.validate() assert not valid assert validator.errors['organization'] == 'must be provided'
def test_choices(): validator = ModelValidator(ComplexPerson(name='tim')) valid = validator.validate({'organization': 1, 'gender': 'S'}) assert not valid assert validator.errors['gender'] == DEFAULT_MESSAGES['one_of'].format( choices='M, F') assert 'name' not in validator.errors valid = validator.validate({'organization': 1, 'gender': 'M'}) assert valid
def test_choices(): validator = ModelValidator(ComplexPerson(name='tim')) valid = validator.validate({'organization': 1, 'gender': 'S'}) assert not valid assert validator.errors['gender'] == 'must be one of the choices: M, F' assert 'name' not in validator.errors valid = validator.validate({'organization': 1, 'gender': 'M'}) assert valid valid = validator.validate({'gender': 'M'}) assert valid
def test_related_optional_missing(): validator = ModelValidator( ComplexPerson(name='tim', gender='M', organization=1)) valid = validator.validate({'pay_grade': 999}) assert not valid assert validator.errors['pay_grade'] == DEFAULT_MESSAGES['related'].format( field='id', values=999) valid = validator.validate({'pay_grade': None}) assert valid valid = validator.validate() assert valid
def test_related_required_missing(): validator = ModelValidator(ComplexPerson(name='tim', gender='M')) valid = validator.validate({'organization': 999}) assert not valid assert validator.errors['organization'] == DEFAULT_MESSAGES[ 'related'].format(field='id', values=999) valid = validator.validate({'organization': None}) assert not valid assert validator.errors['organization'] == DEFAULT_MESSAGES['required'] valid = validator.validate() assert not valid assert validator.errors['organization'] == DEFAULT_MESSAGES['required']
def test_related_optional_dict_missing(): validator = ModelValidator( ComplexPerson(name='tim', gender='M', organization=1)) valid = validator.validate({'pay_grade': {}}) assert valid
def test_related_required_dict_missing(): validator = ModelValidator(ComplexPerson(name='tim', gender='M')) validator.validate({'organization': {}}) assert validator.errors['organization'] == DEFAULT_MESSAGES['required']
def test_related_required_dict(): org = Organization.create(name='new1') validator = ModelValidator(ComplexPerson(name='tim', gender='M')) valid = validator.validate({'organization': {'id': org.id}}) assert valid