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))
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))
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))
def test_validate_model_invalid_password(self): password = '******' user = User(firstname='toto', password=password) self.assertRaises(InvalidParametersError, validator.validate_model, user)
def test_validate_model_empty_firstname(self): firstname = '' user = User(firstname=firstname) self.assertRaises(InvalidParametersError, validator.validate_model, user)
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)
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"'))
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)
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)
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)
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()
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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
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)
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)
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)
def test_validate_model_international_mobilephonenumber(self): user = User(firstname='toto', mobile_phone_number='+011224657453*77#23') validator.validate_model(user)
def test_validate_model_no_properties(self): user = User() self.assertRaises(MissingParametersError, validator.validate_model, user)
def test_validate_model_invalid_mobilephonenumber_alphanum(self): user = User(firstname='toto', mobile_phone_number='abcd1234') self.assertRaises(InvalidParametersError, validator.validate_model, user)
def test_edit_with_unknown_user(self): user = User(id=123, lastname='unknown') self.assertRaises(ElementNotExistsError, user_dao.edit, user)
def test_validate_model_valid_password(self): password = '******' user = User(firstname='toto', password=password) validator.validate_model(user)