Example #1
0
def insert_periodic_stat(dao_sess, start, end):
    dao_sess.begin()
    periodic_stats = stat_call_on_queue_dao.get_periodic_stats_hour(dao_sess, start, end)
    dao_sess.commit()

    dao_sess.begin()
    for period, stats in periodic_stats.iteritems():
        logger.info('Inserting queue periodic stat %s', period)
        stat_queue_periodic_dao.insert_stats(dao_sess, stats, period)
    dao_sess.commit()
    def test_get_most_recent_time(self):
        self.assertRaises(LookupError, stat_queue_periodic_dao.get_most_recent_time, self.session)

        stats = self._get_stats_for_queue()
        start = datetime.datetime(2012, 01, 01, 00, 00, 00)

        with flush_session(self.session):
            for minute_increment in [-5, 5, 15, 22, 35, 65, 120]:
                delta = datetime.timedelta(minutes=minute_increment)
                time = start + delta
                stat_queue_periodic_dao.insert_stats(self.session, stats, time)

        result = stat_queue_periodic_dao.get_most_recent_time(self.session)
        expected = start + datetime.timedelta(minutes=120)

        self.assertEqual(result, expected)
    def test_clean_table(self):
        queue_name, queue_id = self._insert_queue_to_stat_queue()
        stats = {
            queue_id: {
                'full': 4,
                'total': 10
            }
        }
        period_start = datetime.datetime(2012, 01, 01, 00, 00, 00)

        stat_queue_periodic_dao.insert_stats(self.session, stats, period_start)

        stat_queue_periodic_dao.clean_table(self.session)

        total = self.session.query(func.count(StatQueuePeriodic.time))[0][0]

        self.assertEqual(total, 0)
    def test_insert_periodic_stat(self):
        stats = self._get_stats_for_queue()
        period_start = datetime.datetime(2012, 01, 01, 00, 00, 00)

        with flush_session(self.session):
            stat_queue_periodic_dao.insert_stats(self.session, stats, period_start)

        try:
            result = (self.session.query(StatQueuePeriodic)
                      .filter(StatQueuePeriodic.time == period_start)[0])

            self.assertEqual(result.abandoned, 7)
            self.assertEqual(result.answered, 27)
            self.assertEqual(result.closed, 5)
            self.assertEqual(result.full, 4)
            self.assertEqual(result.joinempty, 2)
            self.assertEqual(result.leaveempty, 11)
            self.assertEqual(result.timeout, 5)
            self.assertEqual(result.divert_ca_ratio, 22)
            self.assertEqual(result.divert_waittime, 15)
            self.assertEqual(result.total, 98)
        except LookupError:
            self.fail('Should have found a row')
Example #5
0
    def test_remove_after(self):
        queue_name, queue_id = self._insert_queue_to_stat_queue()
        stats = {queue_id: {'full': 4, 'total': 10}}

        self.session.begin()
        stat_queue_periodic_dao.insert_stats(self.session, stats,
                                             datetime.datetime(2012, 1, 1))
        stat_queue_periodic_dao.insert_stats(self.session, stats,
                                             datetime.datetime(2012, 1, 2))
        stat_queue_periodic_dao.insert_stats(self.session, stats,
                                             datetime.datetime(2012, 1, 3))
        self.session.commit()

        stat_queue_periodic_dao.remove_after(self.session,
                                             datetime.datetime(2012, 1, 2))

        res = self.session.query(StatQueuePeriodic.time)

        self.assertEqual(res.count(), 1)
        self.assertEqual(res[0].time, datetime.datetime(2012, 1, 1))
    def test_remove_after(self):
        queue_name, queue_id = self._insert_queue_to_stat_queue()
        stats = {
            queue_id: {
                'full': 4,
                'total': 10
            }
        }

        with flush_session(self.session):
            stat_queue_periodic_dao.insert_stats(self.session, stats, datetime.datetime(2012, 1, 1))
            stat_queue_periodic_dao.insert_stats(self.session, stats, datetime.datetime(2012, 1, 2))
            stat_queue_periodic_dao.insert_stats(self.session, stats, datetime.datetime(2012, 1, 3))

        stat_queue_periodic_dao.remove_after(self.session, datetime.datetime(2012, 1, 2))

        res = self.session.query(StatQueuePeriodic.time)

        self.assertEqual(res.count(), 1)
        self.assertEqual(res[0].time, datetime.datetime(2012, 1, 1))