コード例 #1
0
    def test_get(self, user_dao_get):
        user_id = 123
        expected_result = User(id=user_id)
        user_dao_get.return_value = User(id=user_id)

        result = user_services.get(user_id)

        user_dao_get.assert_called_once_with(user_id)
        assert_that(result, equal_to(expected_result))
コード例 #2
0
    def test_get_by_number_context(self, user_dao_get):
        number, context = '9876', 'default'
        user_id = 123
        expected_result = User(id=user_id)
        user_dao_get.return_value = User(id=user_id)

        result = user_services.get_by_number_context(number, context)

        user_dao_get.assert_called_once_with(number, context)
        assert_that(result, equal_to(expected_result))
コード例 #3
0
    def test_update_voicemail_fullname_no_voicemail(self, voicemail_dao_get,
                                                    voicemail_dao_edit):
        user = User(firstname='firstname', lastname='lastname')

        user_services.update_voicemail_fullname(user)
        assert_that(voicemail_dao_get.call_count, equal_to(0))
        assert_that(voicemail_dao_edit.call_count, equal_to(0))
コード例 #4
0
    def test_validate_model_invalid_password(self):
        password = '******'

        user = User(firstname='toto', password=password)

        self.assertRaises(InvalidParametersError, validator.validate_model,
                          user)
コード例 #5
0
    def test_validate_model_empty_firstname(self):
        firstname = ''

        user = User(firstname=firstname)

        self.assertRaises(InvalidParametersError, validator.validate_model,
                          user)
コード例 #6
0
    def test_list_users_with_two_users(self, user_search):
        user1 = User(id=1, firstname=u'test1', caller_id=u'"test1 "')
        user2 = User(id=2, firstname=u'test2', caller_id=u'"test2 "')

        expected_response = {
            'total': 2,
            'items': [self.build_item(user1),
                      self.build_item(user2)]
        }

        user_search.return_value = SearchResult(2, [user1, user2])

        response = self.app.get(BASE_URL)

        user_search.assert_any_call()
        self.assert_response_for_list(response, expected_response)
コード例 #7
0
    def test_update_caller_id_only_caller_id_changed(self, user_dao_get):
        user = User(id=1,
                    firstname='firstname',
                    lastname='lastname',
                    caller_id='new_caller_id')

        db_user = User(id=1,
                       firstname='firstname',
                       lastname='lastname',
                       caller_id='"firstname lastname"')

        user_dao_get.return_value = db_user

        user_services.update_caller_id(user)
        user_dao_get.assert_called_once_with(user.id)
        assert_that(user.caller_id, equal_to('"new_caller_id"'))
コード例 #8
0
ファイル: test_validator.py プロジェクト: jaunis/xivo-dao
    def test_validate_edition_missing_username_password(
            self, patch_get_user, patch_get_cti_profile):
        user_cti_profile = UserCtiProfile(user_id=1,
                                          cti_profile_id=2,
                                          enabled=True)
        patch_get_user.return_value = User(id=1, username=None, password=None)

        self.assertRaises(ElementEditionError, validator.validate_edit,
                          user_cti_profile)
コード例 #9
0
    def test_delete_success(self, mock_user_services_delete,
                            mock_user_services_get):
        mock_user_services_get.return_value = user = User(id=1,
                                                          firstname=u'Bob')

        response = self.app.delete("%s/1" % BASE_URL)

        mock_user_services_delete.assert_called_with(user)
        self.assert_response_for_delete(response)
コード例 #10
0
    def test_create(self, user_create):
        user = User(firstname=u'André', lastname=u'Dupond')
        user_create.return_value = created_user = User(
            id=1,
            firstname=u'André',
            lastname=u'Dupond',
            caller_id=u'"André Dupond"')

        expected_response = self.build_item(created_user)

        data_serialized = self._serialize_encode({
            'firstname': 'André',
            'lastname': 'Dupond'
        })
        response = self.app.post(BASE_URL, data=data_serialized)

        user_create.assert_called_once_with(user)
        self.assert_response_for_create(response, expected_response)
コード例 #11
0
    def test_create_with_database_error(self, Session):
        session = Mock()
        session.commit.side_effect = SQLAlchemyError()
        Session.return_value = session

        user = User(firstname='toto', lastname='kiki', language='fr_FR')

        self.assertRaises(ElementCreationError, user_dao.create, user)
        session.begin.assert_called_once_with()
        session.rollback.assert_called_once_with()
コード例 #12
0
ファイル: test_actions.py プロジェクト: jaunis/xivo-restapi
    def test_get_lines_associated_to_a_user_with_no_line(
            self, user_line_find_all_by_user_id, user_services_get):
        user_services_get.return_value = User(id=self.user_line.user_id)
        user_line_find_all_by_user_id.return_value = []

        expected_result = {u'items': [], u'total': 0}

        result = self.app.get(BASE_URL % self.user_line.user_id)

        self.assert_response_for_list(result, expected_result)
コード例 #13
0
    def test_edit(self, mock_user_services_edit, mock_user_services_get):
        mock_user_services_get.return_value = User(id=1,
                                                   firstname=u'Bob',
                                                   lastname=u'Simth')
        updated_user = User(id=1,
                            firstname=u'André',
                            lastname=u'Dupond',
                            description=u'éà:;')

        data = {
            'firstname': 'André',
            'lastname': 'Dupond',
            'description': 'éà:;'
        }
        data_serialized = self._serialize_encode(data)
        response = self.app.put("%s/1" % BASE_URL, data=data_serialized)

        mock_user_services_edit.assert_called_once_with(updated_user)
        self.assert_response_for_update(response)
コード例 #14
0
    def test_get(self, mock_user_services_get):
        user = User(id=1, firstname=u'Bob', caller_id=u'"Bob "')

        expected_response = self.build_item(user)

        mock_user_services_get.return_value = user

        response = self.app.get("%s/%d" % (BASE_URL, user.id))

        mock_user_services_get.assert_called_once_with(user.id)
        self.assert_response_for_get(response, expected_response)
コード例 #15
0
    def test_update_voicemail_fullname(self, voicemail_dao_get,
                                       voicemail_dao_edit):
        user = User(firstname='firstname', lastname='lastname', voicemail_id=3)
        fullname = '%s %s' % (user.firstname, user.lastname)

        voicemail = voicemail_dao_get.return_value = Mock()

        user_services.update_voicemail_fullname(user)

        voicemail_dao_get.assert_called_once_with(user.voicemail_id)
        assert_that(voicemail.name, equal_to(fullname))
        voicemail_dao_edit.assert_called_once_with(voicemail)
コード例 #16
0
ファイル: test_services.py プロジェクト: jaunis/xivo-dao
    def test_update_callerid_with_no_line(self, line_dao_find_by_user_id, line_services_edit):
        expected_caller_id = 'titi'
        user = User(id=1,
                    firstname='titi',
                    caller_id=expected_caller_id)

        line_dao_find_by_user_id.return_value = None

        line_services.update_callerid(user)

        line_dao_find_by_user_id.assert_called_once_with(user.id)
        self.assertEquals(line_services_edit.call_count, 0)
コード例 #17
0
    def test_list_users_with_old_search(self, user_find):
        search = 'bob'
        user = User(id=1, firstname=u'Bob', caller_id=u'"Bob "')

        expected_response = {'total': 1, 'items': [self.build_item(user)]}

        user_find.return_value = [user]

        response = self.app.get("%s?q=%s" % (BASE_URL, search))

        user_find.assert_called_once_with(search)
        self.assert_response_for_list(response, expected_response)
コード例 #18
0
    def test_edit(self, user_validate_edit, user_dao_edit,
                  user_notifier_edited, line_services_update_callerid,
                  user_services_update_caller_id, update_voicemail_fullname):
        user = User(id=1, firstname='user', lastname='toto', voicemail_id=3)

        user_services.edit(user)

        user_validate_edit.assert_called_once_with(user)
        user_services.update_caller_id.assert_called_once_with(user)
        user_dao_edit.assert_called_once_with(user)
        user_notifier_edited.assert_called_once_with(user)
        line_services_update_callerid.assert_called_once_with(user)
        update_voicemail_fullname.assert_called_once_with(user)
コード例 #19
0
ファイル: test_services.py プロジェクト: jaunis/xivo-dao
    def test_update_callerid(self, line_dao_find_by_user_id, line_services_edit):
        expected_caller_id = 'titi'
        user = User(id=1,
                    firstname='titi',
                    caller_id=expected_caller_id)
        line = LineSIP(callerid=expected_caller_id,
                       number='1000',
                       name='toto')

        line_dao_find_by_user_id.return_value = line

        line_services.update_callerid(user)

        line_dao_find_by_user_id.assert_called_once_with(user.id)
        line_services_edit.assert_called_once_with(line)
コード例 #20
0
    def test_delete(self, user_validate_delete, delete_user_destination,
                    user_dao_delete, user_notifier_deleted,
                    delete_private_template):
        user = User(id=1,
                    firstname='user',
                    lastname='toto',
                    private_template_id=10)

        user_services.delete(user)

        user_validate_delete.assert_called_once_with(user)
        user_dao_delete.assert_called_once_with(user)
        delete_user_destination.assert_called_once_with(user)
        user_notifier_deleted.assert_called_once_with(user)
        delete_private_template.assert_called_once_with(
            user.private_template_id)
コード例 #21
0
    def test_list_users_with_new_search(self, user_search):
        user = User(id=1, firstname=u'Bob', caller_id=u'"Bob "')

        expected_response = {'total': 1, 'items': [self.build_item(user)]}

        user_search.return_value = SearchResult(1, [user])

        url = "%s?search=bob&order=firstname&direction=desc&limit=1&skip=2"
        response = self.app.get(url % BASE_URL)

        user_search.assert_called_once_with(search='bob',
                                            order='firstname',
                                            direction='desc',
                                            limit=1,
                                            skip=2)
        self.assert_response_for_list(response, expected_response)
コード例 #22
0
 def prepare_user(self, **parameters):
     user_row = self.add_user(**parameters)
     user = User(id=user_row.id,
                 firstname=user_row.firstname,
                 lastname=user_row.lastname,
                 timezone=user_row.timezone,
                 language=user_row.language,
                 description=user_row.description,
                 caller_id=user_row.callerid,
                 outgoing_caller_id=user_row.outcallerid,
                 mobile_phone_number=(user_row.mobilephonenumber or None),
                 password=(user_row.passwdclient or None),
                 username=user_row.loginclient,
                 music_on_hold=user_row.musiconhold,
                 preprocess_subroutine=user_row.preprocess_subroutine,
                 userfield=user_row.userfield,
                 private_template_id=user_row.func_key_private_template_id)
     return user
コード例 #23
0
    def test_create(self, user_validate_create, user_dao_create,
                    user_notifier_created, create_private_template,
                    create_default_dial_actions_for_user,
                    create_user_destination):
        firstname = 'user'
        lastname = 'toto'
        user = User(firstname=firstname, lastname=lastname)

        user_dao_create.return_value = user

        result = user_services.create(user)

        user_validate_create.assert_called_once_with(user)
        user_dao_create.assert_called_once_with(user)
        user_notifier_created.assert_called_once_with(user)
        create_default_dial_actions_for_user.assert_called_once_with(user)
        create_user_destination.assert_called_once_with(user)

        self.assertEquals(type(result), User)
        self.assertEquals(result.private_template_id,
                          create_private_template.return_value)
コード例 #24
0
    def test_associate_voicemail(self, get_user, edit_user, get_voicemail):
        user_id = 21
        voicemail_id = 32

        voicemail = Voicemail(
            id=voicemail_id,
            number='42',
            context='super_context',
            name='Johnny Wilkins',
        )

        user = User(
            id=user_id,
            firstname='Johnny',
            lastname='Wilkins',
        )

        get_user.return_value = user
        get_voicemail.return_value = voicemail

        user_association.associate_voicemail(user_id, voicemail_id)

        edit_user.assert_called_once_with(ANY)
        self.assertEquals(user.voicemail_id, voicemail_id)
コード例 #25
0
 def prepare_user(self, **kwargs):
     private_template_row = self.add_func_key_template(private=True)
     kwargs.setdefault('private_template_id', private_template_row.id)
     return User(**kwargs)
コード例 #26
0
    def test_validate_model_international_mobilephonenumber(self):
        user = User(firstname='toto',
                    mobile_phone_number='+011224657453*77#23')

        validator.validate_model(user)
コード例 #27
0
    def test_validate_model_no_properties(self):
        user = User()

        self.assertRaises(MissingParametersError, validator.validate_model,
                          user)
コード例 #28
0
    def test_validate_model_invalid_mobilephonenumber_alphanum(self):
        user = User(firstname='toto', mobile_phone_number='abcd1234')

        self.assertRaises(InvalidParametersError, validator.validate_model,
                          user)
コード例 #29
0
    def test_edit_with_unknown_user(self):
        user = User(id=123, lastname='unknown')

        self.assertRaises(ElementNotExistsError, user_dao.edit, user)
コード例 #30
0
    def test_validate_model_valid_password(self):
        password = '******'

        user = User(firstname='toto', password=password)

        validator.validate_model(user)