def get(user_id): cti_profile = dao.find_profile_by_userid(user_id) cti_profile_id = None if cti_profile is None else cti_profile.id enabled = user_dao.is_cti_enabled(user_id) return UserCtiProfile(user_id=user_id, cti_profile_id=cti_profile_id, enabled=enabled)
def test_get_cti_configuration(self, user_cti_profile_get): user_id = 1 cti_profile_id = 2 expected_status_code = 200 expected_result = { "user_id": user_id, "cti_profile_id": cti_profile_id, "enabled": True, "links": [ { "rel": "users", "href": "http://localhost/1.1/users/%s" % user_id }, { "rel": "cti_profiles", "href": "http://localhost/1.1/cti_profiles/%s" % cti_profile_id } ] } user_cti_profile = UserCtiProfile(user_id=user_id, cti_profile_id=cti_profile_id, enabled=True) user_cti_profile_get.return_value = user_cti_profile result = self.app.get(BASE_URL % user_id) assert_that(result.status_code, equal_to(expected_status_code)) assert_that(self._serialize_decode(result.data), equal_to(expected_result))
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_validate_edition_null_profile(self, patch_get_user, patch_get_cti_profile): user_cti_profile = UserCtiProfile(user_id=1, cti_profile_id=None, enabled=True) validator.validate_edit(user_cti_profile) self.assertFalse(patch_get_cti_profile.called, "CTI profile dao should not have been called")
def test_validate_edition_unexisting_user(self, patch_get_user, patch_get_profile): user_cti_profile = UserCtiProfile(user_id=1, cti_profile_id=2, enabled=True) patch_get_user.side_effect = ElementNotExistsError('user') self.assertRaises(ElementNotExistsError, validator.validate_edit, user_cti_profile) patch_get_user.assert_called_with(user_cti_profile.user_id)
def test_edit_with_errors(self, Session): session = Mock() session.commit.side_effect = SQLAlchemyError() Session.return_value = session user_cti_profile = UserCtiProfile(user_id=1, cti_profile_id=2) self.assertRaises(ElementEditionError, user_cti_profile_dao.edit, user_cti_profile) session.begin.assert_called_once_with() session.rollback.assert_called_once_with()
def test_edit_enabled_not_set(self): cti_profile = CtiProfileSchema(id=2, name='Test') self.add_me(cti_profile) user = self.add_user(cti_profile_id=None, enableclient=1) user_cti_profile = UserCtiProfile(user_id=user.id, cti_profile_id=cti_profile.id) user_cti_profile_dao.edit(user_cti_profile) assert_that(user.cti_profile_id, equal_to(cti_profile.id)) assert_that(user.enableclient, 0)
def test_edited(self, send_bus_command, UserCtiProfileDissociatedEvent, exec_request_handler): new_event = UserCtiProfileDissociatedEvent.return_value = Mock() user_cti_profile = UserCtiProfile(user_id=1, cti_profile_id=2, enabled=True) self.sysconfd_command['ctibus'] = ['xivo[user,edit,1]'] notifier.edited(user_cti_profile) UserCtiProfileDissociatedEvent.assert_called_once_with(user_cti_profile.user_id, user_cti_profile.cti_profile_id, user_cti_profile.enabled) send_bus_command.assert_called_once_with(new_event) exec_request_handler.assert_called_once_with(self.sysconfd_command)
def test_get_cti_profile_association_not_exists(self, user_cti_profile_get): user_id = 1 expected_status_code = 200 expected_result = { "user_id": user_id, "cti_profile_id": None, "enabled": False, "links": [ { "rel": "users", "href": "http://localhost/1.1/users/%s" % user_id } ] } user_cti_profile = UserCtiProfile(user_id=user_id, cti_profile_id=None, enabled=False) user_cti_profile_get.return_value = user_cti_profile result = self.app.get(BASE_URL % user_id) assert_that(result.status_code, equal_to(expected_status_code)) assert_that(self._serialize_decode(result.data), equal_to(expected_result))
def test_validate_edition(self, patch_get_user, patch_get_profile): user_cti_profile = UserCtiProfile(user_id=1, cti_profile_id=2, enabled=True) validator.validate_edit(user_cti_profile)