Example #1
0
def build_validator():
    destination_validators = {
        'user': [GetResource('user_id', user_dao.get, 'User')],
        'group': [ResourceExists('group_id', group_dao.exists, 'Group')],
        'queue': [ResourceExists('queue_id', queue_dao.exists, 'Queue')],
        'conference':
        [ResourceExists('conference_id', conference_dao.exists, 'Conference')],
        'custom': [CustomValidator()],
        'service': [],
        'forward': [ForwardValidator()],
        'transfer': [],
        'agent': [ResourceExists('agent_id', agent_dao.exists, 'Agent')],
        'park_position': [ParkPositionValidator(feature_dao)],
        'parking': [],
        'onlinerec': [],
        'paging': [ResourceExists('paging_id', paging_dao.exists, 'Paging')],
        'bsfilter': [
            ResourceExists('filter_member_id',
                           bsfilter_dao.filter_member_exists, 'FilterMember')
        ],
    }

    funckey_validator = FuncKeyModelValidator(destination_validators)
    mapping_validator = FuncKeyMappingValidator(funckey_validator)
    similar_validator = SimilarFuncKeyValidator()

    required_validator = MissingFields()
    private_template_validator = PrivateTemplateValidator()

    return ValidationGroup(
        common=[required_validator, mapping_validator, similar_validator],
        delete=[private_template_validator])
Example #2
0
class TestResourceExists(unittest.TestCase):

    def setUp(self):
        self.dao_exist = Mock()
        self.validator = ResourceExists('field', self.dao_exist)

    def test_given_resource_does_not_exist_then_raises_error(self):
        model = Mock(field=sentinel.field)

        self.dao_exist.return_value = False

        assert_that(calling(self.validator.validate).with_args(model),
                    raises(InputError))

    def test_given_resource_exists_then_validation_passes(self):
        model = Mock(field=sentinel.field)

        self.dao_exist.return_value = True

        self.validator.validate(model)

        self.dao_exist.assert_called_once_with(model.field)
Example #3
0
class TestResourceExists(unittest.TestCase):

    def setUp(self):
        self.dao_exist = Mock()
        self.validator = ResourceExists('field', self.dao_exist)

    def test_given_resource_does_not_exist_then_raises_error(self):
        model = Mock(field=sentinel.field)

        self.dao_exist.return_value = False

        assert_that(calling(self.validator.validate).with_args(model),
                    raises(InputError))

    def test_given_resource_exists_then_validation_passes(self):
        model = Mock(field=sentinel.field)

        self.dao_exist.return_value = True

        self.validator.validate(model)

        self.dao_exist.assert_called_once_with(model.field)
Example #4
0
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')),
        ])
Example #5
0
 def setUp(self):
     self.dao_exist = Mock()
     self.validator = ResourceExists('field', self.dao_exist)
Example #6
0
 def setUp(self):
     self.dao_exist = Mock()
     self.validator = ResourceExists('field', self.dao_exist)