def build_validator(): return ValidationGroup( common=[ RequiredFields('firstname'), Optional( 'mobile_phone_number', RegexField.compile('mobile_phone_number', MOBILE_PHONE_NUMBER_REGEX)), Optional('caller_id', RegexField.compile('caller_id', CALLER_ID_REGEX)), Optional('username', RegexField.compile('username', USERNAME_PASSWORD_REGEX)), Optional('password', RegexField.compile('password', USERNAME_PASSWORD_REGEX)), Optional( 'call_permission_password', RegexField.compile('call_permission_password', CALL_PERMISSION_PASSWORD_REGEX)), Optional( 'ring_seconds', NumberRange('ring_seconds', minimum=0, maximum=60, step=5)), Optional('simultaneous_calls', NumberRange('simultaneous_calls', minimum=1, maximum=20)), Optional('language', RegexField.compile('language', LANGUAGE_REGEX)), Optional( 'entity_id', ResourceExists('entity_id', entity_db.entity_id_exists, 'Entity')) ], delete=[ NoVoicemailAssociated(user_voicemail_dao), NoLineAssociated(user_line_dao) ], create=[ Optional( 'email', UniqueField('email', lambda email: user_dao.find_by(email=email), 'User')) ], edit=[ RequiredFields('call_transfer_enabled', 'call_record_enabled', 'online_call_record_enabled', 'supervision_enabled', 'ring_seconds', 'simultaneous_calls', 'caller_id', 'enabled'), Optional('email', UniqueFieldChanged('email', user_dao, 'User')), ])
class TestRequiredFields(unittest.TestCase): def setUp(self): self.validator = RequiredFields() def test_given_missing_fields_when_validating_then_raises_error(self): model = Mock(NewModel) model.missing_parameters.return_value = ['foobar'] assert_that(calling(self.validator.validate).with_args(model), raises(InputError)) def test_given_no_missing_fields_when_validating_then_passes(self): model = Mock(NewModel) model.missing_parameters.return_value = [] self.validator.validate(model)
class TestRequiredFields(unittest.TestCase): def setUp(self): self.validator = RequiredFields('field1', 'field2') self.model = Mock() def test_given_required_fields_are_none_when_validating_then_raises_error(self): self.model.field1 = None self.model.field2 = None self.assertRaises(InputError, self.validator.validate, self.model) def test_given_required_fields_have_a_value_when_validating_then_validation_passes(self): self.model.field1 = 'value1' self.model.field2 = 'value2' self.validator.validate(self.model)
def build_validator(): return ValidationGroup( common=[ RequiredFields('interface'), RegexField.compile('interface', INTERFACE_REGEX), ], create=[UniqueField('interface', find_by_interface, 'CustomEndpoint')], edit=[UniqueFieldChanged('interface', dao, 'CustomEndpoint')])
def build_validator(device_dao): return ValidationGroup(common=[ RequiredFields('context'), FindResource('context', context_dao.find, 'Context'), ], create=[ Optional('provisioning_code', ProvCodeAvailable(line_dao)), Optional('position', NumberRange('position', minimum=1)), Optional( 'registrar', MemberOfSequence('registrar', device_dao.registrars, 'Registrar')), ], edit=[ ProvCodeChanged(line_dao), RequiredFields('provisioning_code', 'position'), NumberRange('position', minimum=1), MemberOfSequence('registrar', device_dao.registrars, 'Registrar'), ])
def build_validator(): return ValidationGroup(common=[ RequiredFields('exten', 'context'), GetResource('context', context_dao.get, 'Context'), ExtensionRangeValidator(context_dao), ], create=[ ExtenAvailableOnCreateValidator(extension_dao), ], edit=[ ExtenAvailabelOnUpdateValidator(extension_dao), ], delete=[ ExtensionAssociationValidator( extension_dao, line_extension_dao) ])
def build_validator(): return ValidationGroup( common=[ Optional( 'name', RegexField.compile( 'name', NAME_REGEX, "username must only use alphanumeric characters")), Optional('secret', RegexField.compile('secret', SECRET_REGEX)) ], create=[ Optional( 'name', UniqueField('name', lambda v: dao.find_by(name=v), 'SIPEndpoint'), RegexField.compile('name', NAME_REGEX)), Optional('secret', RegexField.compile('secret', SECRET_REGEX)), ], edit=[ RequiredFields('name', 'secret', 'type', 'host'), UsernameChanged('name', lambda v: dao.find_by(name=v), dao.get), ])
def build_validator(): return ValidationGroup( common=[ Optional('name', RegexField.compile('name', NAME_REGEX)), Optional('password', RegexField.compile('password', PASSWORD_REGEX)), Optional('extensions', RegexFieldList.compile('extensions', EXTENSION_REGEX)), ], create=[ RequiredFields('name'), Optional( 'name', UniqueField( 'name', lambda name: call_permission_dao.find_by(name=name), 'CallPermission')) ], edit=[ Optional( 'name', UniqueFieldChanged('name', call_permission_dao, 'CallPermission')) ])
def setUp(self): self.validator = RequiredFields()
def setUp(self): self.validator = RequiredFields('field1', 'field2') self.model = Mock()