def test_add_agent_to_queue_two_agents(self): agent1 = self.add_agent() self._insert_agent_login_status(agent1.id, agent1.number) agent2 = self.add_agent() self._insert_agent_login_status(agent2.id, agent2.number, '1002', 'default', interface='Local/2@foo', state_interface='SIP/defabc') queues = [ agent_status_dao._Queue(1, 'queue1', 0), agent_status_dao._Queue(2, 'queue2', 0), ] agent_status_dao.add_agent_to_queues(agent1.id, queues) agent_status_dao.add_agent_to_queues(agent2.id, queues) agent1_status = agent_status_dao.get_status(agent1.id) agent2_status = agent_status_dao.get_status(agent2.id) assert_that( agent1_status, has_properties(queues=contains( has_properties(id=1, name='queue1'), has_properties(id=2, name='queue2'), ))) assert_that( agent2_status, has_properties(queues=contains( has_properties(id=1, name='queue1'), has_properties(id=2, name='queue2'), )))
def test_update_pause_status(self): agent_number = '1000' reason = 'Time for pause' agent = self.add_agent(number=agent_number) self._insert_agent_login_status(agent.id, agent_number) agent_status_dao.update_pause_status(agent.id, True, reason) agent_status = agent_status_dao.get_status(agent.id) assert_that( agent_status, has_properties( agent_id=agent.id, paused=True, paused_reason=reason, )) agent_status_dao.update_pause_status(agent.id, False) agent_status = agent_status_dao.get_status(agent.id) assert_that(agent_status, has_properties(agent_id=agent.id, paused=False)) agent_status_dao.update_pause_status(agent.id, True) agent_status = agent_status_dao.get_status(agent.id) assert_that( agent_status, has_properties(agent_id=agent.id, paused=True, paused_reason=None))
def test_add_agent_to_queue_two_agents(self): agent1 = self._insert_agent(42, '12') self._insert_agent_login_status(agent1.id, agent1.number) agent2 = self._insert_agent(43, '13') self._insert_agent_login_status(agent2.id, agent2.number, '1002', 'default', interface='Local/2@foo', state_interface='SIP/defabc') queues = [agent_status_dao._Queue(1, 'queue1', 0), agent_status_dao._Queue(2, 'queue2', 0), ] agent_status_dao.add_agent_to_queues(agent1.id, queues) agent_status_dao.add_agent_to_queues(agent2.id, queues) agent1_status = agent_status_dao.get_status(agent1.id) agent2_status = agent_status_dao.get_status(agent2.id) self.assertEquals(len(agent1_status.queues), 2) self.assertEquals(agent1_status.queues[0].id, 1) self.assertEquals(agent1_status.queues[0].name, 'queue1') self.assertEquals(agent1_status.queues[1].id, 2) self.assertEquals(agent1_status.queues[1].name, 'queue2') self.assertEquals(len(agent2_status.queues), 2) self.assertEquals(agent2_status.queues[0].id, 1) self.assertEquals(agent2_status.queues[0].name, 'queue1') self.assertEquals(agent2_status.queues[1].id, 2) self.assertEquals(agent2_status.queues[1].name, 'queue2')
def test_log_in_agent_no_user(self): agent_id = 1 agent_number = '2' extension = '1001' context = 'default' interface = 'sip/abcdef' paused = False paused_reason = None state_interface = interface agent_status_dao.log_in_agent(agent_id, agent_number, extension, context, interface, state_interface) agent_status = agent_status_dao.get_status(agent_id) assert_that( agent_status, has_properties( agent_id=agent_id, agent_number=agent_number, extension=extension, context=context, interface=interface, paused=paused, paused_reason=paused_reason, state_interface=state_interface, user_ids=empty(), ))
def _get_agent_status(self, agent_id): agent_status = agent_status_dao.get_status(agent_id) if agent_status: return agent_status else: logger.warning('Could not get status of agent %r: not logged/no such agent', agent_id) return None
def test_get_status_with_logged_agent_returns_an_agent_multi_tenant(self): tenant = self.add_tenant() agent = self.add_agent(tenant_uuid=tenant.uuid) self._insert_agent_login_status(agent.id, agent.number) agent_membership = self._insert_agent_membership( agent.id, 1, 'queue1', 64) result = agent_status_dao.get_status(agent.id, tenant_uuids=[tenant.uuid]) assert_that( result, has_properties(agent_id=agent.id, queues=contains( has_properties(id=agent_membership.queue_id)))) result = agent_status_dao.get_status( agent.id, tenant_uuids=[self.default_tenant.uuid]) assert_that(result, none())
def test_get_status_with_logged_agent_returns_an_agent(self): agent = self._insert_agent(42, '12') agent_login_status = self._insert_agent_login_status(agent.id, agent.number) agent_membership = self._insert_agent_membership(agent.id, 1, 'queue1', 64) result = agent_status_dao.get_status(agent.id) self.assertEquals(result.agent_id, agent.id) self.assertEquals(result.agent_number, agent.number) self.assertEquals(result.extension, agent_login_status.extension) self.assertEquals(result.context, agent_login_status.context) self.assertEquals(result.interface, agent_login_status.interface) self.assertEquals(result.state_interface, agent_login_status.state_interface) self.assertEquals(len(result.queues), 1) self.assertEquals(result.queues[0].id, agent_membership.queue_id) self.assertEquals(result.queues[0].name, agent_membership.queue_name) self.assertEquals(result.queues[0].penalty, agent_membership.penalty)
def test_log_in_agent(self): agent_id = 1 agent_number = '2' extension = '1001' context = 'default' interface = 'sip/abcdef' state_interface = interface agent_status_dao.log_in_agent(agent_id, agent_number, extension, context, interface, state_interface) agent_status = agent_status_dao.get_status(agent_id) self.assertEquals(agent_status.agent_id, agent_id) self.assertEquals(agent_status.agent_number, agent_number) self.assertEquals(agent_status.extension, extension) self.assertEquals(agent_status.context, context) self.assertEquals(agent_status.interface, interface) self.assertEquals(agent_status.state_interface, state_interface)
def test_get_status_with_logged_agent_returns_an_agent(self): agent = self.add_agent() agent_login_status = self._insert_agent_login_status( agent.id, agent.number) agent_membership = self._insert_agent_membership( agent.id, 1, 'queue1', 64) result = agent_status_dao.get_status(agent.id) assert_that( result, has_properties(agent_id=agent.id, agent_number=agent.number, extension=agent_login_status.extension, interface=agent_login_status.interface, state_interface=agent_login_status.state_interface, queues=contains( has_properties( id=agent_membership.queue_id, name=agent_membership.queue_name, penalty=agent_membership.penalty, ))))
def test_get_status_with_unlogged_agent_returns_none(self): agent_id = 1 agent_status = agent_status_dao.get_status(agent_id) self.assertEqual(agent_status, None)
def test_get_status_with_unlogged_agent_returns_none(self): agent_id = 1 agent_status = agent_status_dao.get_status(agent_id) self.assertEquals(agent_status, None)