Exemple #1
0
def remove_between(dao_sess, start, end):
    logger.info('Removing queue cache between %s - %s', start, end)
    callids = stat_call_on_queue_dao.find_all_callid_between_date(
        dao_sess, start, end)
    if callids:
        stat_call_on_queue_dao.remove_callids(dao_sess, callids)
    stat_queue_periodic_dao.remove_after(dao_sess, start)
    def test_find_all_callid_between_date(self):
        callid1 = 'callid1'
        callid2 = 'callid2'
        callid3 = 'callid3'
        start = dt(2012, 1, 1, 10, 0, 0, tzinfo=UTC)
        end = dt(2012, 1, 1, 11, 59, 59, 999999, tzinfo=UTC)
        queue_name, _ = self._insert_queue_to_stat_queue()

        stat_call_on_queue_dao.add_full_call(
            self.session, callid1, dt(2012, 1, 1, 9, 34, 32, tzinfo=UTC),
            queue_name)
        stat_call_on_queue_dao.add_full_call(
            self.session, callid1, dt(2012, 1, 1, 10, 34, 32, tzinfo=UTC),
            queue_name)
        stat_call_on_queue_dao.add_full_call(
            self.session, callid2, dt(2012, 1, 1, 10, 11, 12, tzinfo=UTC),
            queue_name)
        stat_call_on_queue_dao.add_full_call(
            self.session, callid3, dt(2012, 1, 1, 10, 59, 59, tzinfo=UTC),
            queue_name)

        result = stat_call_on_queue_dao.find_all_callid_between_date(
            self.session, start, end)

        assert_that(result, contains(callid1, callid2, callid3))
    def test_find_all_callid_between_date(self):
        callid1 = 'callid1'
        callid2 = 'callid2'
        callid3 = 'callid3'
        start = datetime.datetime(2012, 1, 1, 10, 00, 00)
        end = datetime.datetime(2012, 1, 1, 11, 59, 59, 999999)
        queue_name, _ = self._insert_queue_to_stat_queue()

        stat_call_on_queue_dao.add_full_call(self.session, callid1, datetime.datetime(2012, 1, 1, 9, 34, 32), queue_name)
        stat_call_on_queue_dao.add_full_call(self.session, callid1, datetime.datetime(2012, 1, 1, 10, 34, 32), queue_name)
        stat_call_on_queue_dao.add_full_call(self.session, callid2, datetime.datetime(2012, 1, 1, 10, 11, 12), queue_name)
        stat_call_on_queue_dao.add_full_call(self.session, callid3, datetime.datetime(2012, 1, 1, 10, 59, 59), queue_name)

        result = stat_call_on_queue_dao.find_all_callid_between_date(self.session, start, end)

        assert_that(result, contains(callid1, callid2, callid3))
    def test_that_completed_calls_cannot_be_added_twice(self):
        # Given the same time boundaries, a call should be added and deleted to avoid duplicate calls
        # this test case shows an example with a call starting at 10 and ending at 11 that will only
        # be generated at 11 but that will not be deleted at 11
        begin, end = t(2014, 7, 3, 11, 0, 0), t(2014, 7, 3, 11, 59, 59, 999999)
        self.add_me_all([self.enterqueue_event, self.connect_event, self.complete_agent_event])

        stat_dao.fill_answered_calls(self.session, begin, end)

        callids = stat_call_on_queue_dao.find_all_callid_between_date(self.session, begin, end)
        stat_call_on_queue_dao.remove_callids(self.session, callids)

        stat_dao.fill_answered_calls(self.session, begin, end)

        count = self.session.query(
            func.count(StatCallOnQueue.callid)
        ).filter(StatCallOnQueue.callid == self.callid).scalar()

        assert_that(count, equal_to(1))
    def test_that_completed_calls_cannot_be_added_twice(self):
        # Given the same time boundaries, a call should be added and deleted to avoid duplicate calls
        # this test case shows an example with a call starting at 10 and ending at 11 that will only
        # be generated at 11 but that will not be deleted at 11
        begin, end = t(2014, 7, 3, 11, 0, 0), t(2014, 7, 3, 11, 59, 59, 999999)
        self.add_me_all([self.enterqueue_event, self.connect_event, self.complete_agent_event])

        stat_dao.fill_answered_calls(self.session, begin, end)

        callids = stat_call_on_queue_dao.find_all_callid_between_date(self.session, begin, end)
        stat_call_on_queue_dao.remove_callids(self.session, callids)

        stat_dao.fill_answered_calls(self.session, begin, end)

        count = self.session.query(
            func.count(StatCallOnQueue.callid)
        ).filter(StatCallOnQueue.callid == self.callid).scalar()

        assert_that(count, equal_to(1))
    def test_that_find_all_callid_between_date_includes_calls_started_before_start(
            self):
        callid = '234235435'
        _, queue_id = self._insert_queue_to_stat_queue()
        _, agent_id = self._insert_agent_to_stat_agent()
        call = StatCallOnQueue(
            callid=callid,
            time=dt(2014, 1, 1, 10, 59, 59, tzinfo=UTC),
            ringtime=1,
            talktime=1,
            waittime=1,
            status='answered',
            stat_queue_id=queue_id,
            stat_agent_id=agent_id,
        )

        self.add_me(call)

        result = stat_call_on_queue_dao.find_all_callid_between_date(
            self.session, dt(2014, 1, 1, 11, 0, 0, tzinfo=UTC),
            dt(2014, 1, 1, 11, 59, 59, tzinfo=UTC))

        assert_that(result, contains(callid))
    def test_that_find_all_callid_between_date_includes_calls_started_before_start(self):
        callid = '234235435'
        _, queue_id = self._insert_queue_to_stat_queue()
        _, agent_id = self._insert_agent_to_stat_agent()
        call = StatCallOnQueue(
            callid=callid,
            time=datetime.datetime(2014, 1, 1, 10, 59, 59),
            ringtime=1,
            talktime=1,
            waittime=1,
            status='answered',
            queue_id=queue_id,
            agent_id=agent_id,
        )

        self.add_me(call)

        result = stat_call_on_queue_dao.find_all_callid_between_date(
            self.session,
            datetime.datetime(2014, 1, 1, 11, 0, 0),
            datetime.datetime(2014, 1, 1, 11, 59, 59))

        assert_that(result, contains(callid))
Exemple #8
0
def remove_between(dao_sess, start, end):
    logger.info('Removing queue cache between %s - %s', start, end)
    callids = stat_call_on_queue_dao.find_all_callid_between_date(dao_sess, start, end)
    if callids:
        stat_call_on_queue_dao.remove_callids(dao_sess, callids)
    stat_queue_periodic_dao.remove_after(dao_sess, start)