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(),
            ))
Esempio n. 5
0
 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)