def test_get_periodic_stats_full(self): start = datetime.datetime(2012, 01, 01, 00, 00, 00) end = datetime.datetime(2012, 01, 01, 3, 0, 0) queue_name, queue_id = self._insert_queue_to_stat_queue() for minute_increment in [-5, 5, 15, 22, 35, 65, 120]: delta = datetime.timedelta(minutes=minute_increment) time = start + delta stat_call_on_queue_dao.add_full_call(self.session, 'callid%s' % minute_increment, time, queue_name) stats_quarter_hour = stat_call_on_queue_dao.get_periodic_stats_quarter_hour(self.session, start, end) self.assertTrue(datetime.datetime(2012, 1, 1) in stats_quarter_hour) self.assertTrue(datetime.datetime(2012, 1, 1, 1) in stats_quarter_hour) self.assertTrue(datetime.datetime(2012, 1, 1, 2) in stats_quarter_hour) self.assertEqual(stats_quarter_hour[start][queue_id]['full'], 1) self.assertEqual(stats_quarter_hour[start + datetime.timedelta(minutes=15)][queue_id]['full'], 2) self.assertEqual(stats_quarter_hour[start + datetime.timedelta(minutes=30)][queue_id]['full'], 1) stats_hour = stat_call_on_queue_dao.get_periodic_stats_hour(self.session, start, end) self.assertTrue(datetime.datetime(2012, 1, 1) in stats_hour) self.assertTrue(datetime.datetime(2012, 1, 1, 1) in stats_hour) self.assertTrue(datetime.datetime(2012, 1, 1, 2) in stats_hour) self.assertEqual(stats_hour[start][queue_id]['full'], 4)
def test_add_two_queues(self): q1, _ = self._insert_queue_to_stat_queue('q1') q2, _ = self._insert_queue_to_stat_queue('q2') t1 = datetime.datetime(2012, 01, 01, 01, 01, 01) t2 = datetime.datetime(2012, 01, 01, 01, 01, 02) stat_call_on_queue_dao.add_full_call(self.session, 'callid', t1, q1) stat_call_on_queue_dao.add_full_call(self.session, 'callid', t2, q2)
def test_add_two_queues(self): q1, _ = self._insert_queue_to_stat_queue('q1') q2, _ = self._insert_queue_to_stat_queue('q2') t1 = dt(2012, 1, 1, 1, 1, 1, tzinfo=UTC) t2 = dt(2012, 1, 1, 1, 1, 2, tzinfo=UTC) stat_call_on_queue_dao.add_full_call(self.session, 'callid', t1, q1) stat_call_on_queue_dao.add_full_call(self.session, 'callid', t2, q2)
def test_remove_callid_before(self): callid1 = 'callid1' callid2 = 'callid2' callid3 = 'callid3' 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, 11, 12, tzinfo=UTC), queue_name) stat_call_on_queue_dao.add_full_call( self.session, callid1, dt(2012, 1, 1, 10, 59, 59, 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, 11, 22, 59, tzinfo=UTC), queue_name) stat_call_on_queue_dao.remove_callids(self.session, [callid1, callid2, callid3]) callids = self.session.query(StatCallOnQueue.callid) self.assertEqual(callids.count(), 0)
def test_add_full_call(self): timestamp = datetime.datetime(2012, 01, 02, 00, 00, 00) queue_name, _ = self._insert_queue_to_stat_queue() stat_call_on_queue_dao.add_full_call(self.session, 'callid', timestamp, queue_name) res = self.session.query(StatCallOnQueue).filter(StatCallOnQueue.callid == 'callid') self.assertEqual(res[0].callid, 'callid')
def test_get_periodic_stats_total(self): start = dt(2012, 1, 1, 0, 0, 0, tzinfo=UTC) end = dt(2012, 1, 31, 23, 59, 59, 999999, tzinfo=UTC) queue_name, queue_id = self._insert_queue_to_stat_queue() for minute_increment in [-5, 5, 15, 22, 35, 65, 120]: delta = timedelta(minutes=minute_increment) time = start + delta stat_call_on_queue_dao.add_full_call( self.session, 'callid%s-full' % minute_increment, time, queue_name) for minute_increment in [-5, 5, 15, 22, 35, 65, 120]: delta = timedelta(minutes=minute_increment) time = start + delta stat_call_on_queue_dao.add_closed_call( self.session, 'callid%s-closed' % minute_increment, time, queue_name) other_call = StatCallOnQueue() other_call.time = start other_call.callid = 'other type' other_call.stat_queue_id = queue_id other_call.status = 'abandoned' self.add_me(other_call) stats_quarter_hour = stat_call_on_queue_dao.get_periodic_stats_quarter_hour( self.session, start, end) self.assertTrue(dt(2012, 1, 1, tzinfo=UTC) in stats_quarter_hour) self.assertTrue(dt(2012, 1, 1, 1, tzinfo=UTC) in stats_quarter_hour) self.assertTrue(dt(2012, 1, 1, 2, tzinfo=UTC) in stats_quarter_hour) self.assertEqual(stats_quarter_hour[start][queue_id]['total'], 3) self.assertEqual( stats_quarter_hour[start + timedelta(minutes=15)][queue_id]['total'], 4) self.assertEqual( stats_quarter_hour[start + timedelta(minutes=30)][queue_id]['total'], 2) stats_hour = stat_call_on_queue_dao.get_periodic_stats_hour( self.session, start, end) self.assertTrue(dt(2012, 1, 1, tzinfo=UTC) in stats_hour) self.assertTrue(dt(2012, 1, 1, 1, tzinfo=UTC) in stats_hour) self.assertTrue(dt(2012, 1, 1, 2, tzinfo=UTC) in stats_hour) self.assertEqual(stats_hour[start][queue_id]['total'], 9)
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_clean_table(self): start = datetime.datetime(2012, 01, 01, 00, 00, 00) queue_name, _ = self._insert_queue_to_stat_queue() for minute_increment in [-5, 5, 15, 22, 35, 65, 120]: delta = datetime.timedelta(minutes=minute_increment) time = start + delta stat_call_on_queue_dao.add_full_call(self.session, 'callid%s' % minute_increment, time, queue_name) stat_call_on_queue_dao.clean_table(self.session) total = (self.session.query(func.count(StatCallOnQueue.callid))).first()[0] self.assertEqual(total, 0)
def test_remove_callid_before(self): callid1 = 'callid1' callid2 = 'callid2' callid3 = 'callid3' 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, 11, 12), queue_name) stat_call_on_queue_dao.add_full_call(self.session, callid1, datetime.datetime(2012, 1, 1, 10, 59, 59), 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, 11, 22, 59), queue_name) stat_call_on_queue_dao.remove_callids(self.session, [callid1, callid2, callid3]) callids = self.session.query(StatCallOnQueue.callid) self.assertEqual(callids.count(), 0)
def test_get_periodic_stats_total(self): start = datetime.datetime(2012, 01, 01, 00, 00, 00) end = datetime.datetime(2012, 01, 31, 23, 59, 59, 999999) queue_name, queue_id = self._insert_queue_to_stat_queue() for minute_increment in [-5, 5, 15, 22, 35, 65, 120]: delta = datetime.timedelta(minutes=minute_increment) time = start + delta stat_call_on_queue_dao.add_full_call(self.session, 'callid%s-full' % minute_increment, time, queue_name) for minute_increment in [-5, 5, 15, 22, 35, 65, 120]: delta = datetime.timedelta(minutes=minute_increment) time = start + delta stat_call_on_queue_dao.add_closed_call(self.session, 'callid%s-closed' % minute_increment, time, queue_name) other_call = StatCallOnQueue() other_call.time = start other_call.callid = 'other type' other_call.queue_id = queue_id other_call.status = 'abandoned' self.session.begin() self.session.add(other_call) self.session.commit() stats_quarter_hour = stat_call_on_queue_dao.get_periodic_stats_quarter_hour(self.session, start, end) self.assertTrue(datetime.datetime(2012, 1, 1) in stats_quarter_hour) self.assertTrue(datetime.datetime(2012, 1, 1, 1) in stats_quarter_hour) self.assertTrue(datetime.datetime(2012, 1, 1, 2) in stats_quarter_hour) self.assertEqual(stats_quarter_hour[start][queue_id]['total'], 3) self.assertEqual(stats_quarter_hour[start + datetime.timedelta(minutes=15)][queue_id]['total'], 4) self.assertEqual(stats_quarter_hour[start + datetime.timedelta(minutes=30)][queue_id]['total'], 2) stats_hour = stat_call_on_queue_dao.get_periodic_stats_hour(self.session, start, end) self.assertTrue(datetime.datetime(2012, 1, 1) in stats_hour) self.assertTrue(datetime.datetime(2012, 1, 1, 1) in stats_hour) self.assertTrue(datetime.datetime(2012, 1, 1, 2) in stats_hour) self.assertEqual(stats_hour[start][queue_id]['total'], 9)
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_remove_after(self): stat_call_on_queue_dao.remove_after(self.session, datetime.datetime(2012, 1, 1)) queue_name, _ = self._insert_queue_to_stat_queue() stat_call_on_queue_dao.add_full_call(self.session, 'callid1', datetime.datetime(2012, 1, 1), queue_name) stat_call_on_queue_dao.add_full_call(self.session, 'callid2', datetime.datetime(2012, 1, 2), queue_name) stat_call_on_queue_dao.add_full_call(self.session, 'callid3', datetime.datetime(2012, 1, 3), queue_name) stat_call_on_queue_dao.remove_after(self.session, datetime.datetime(2012, 1, 2)) callids = self.session.query(StatCallOnQueue.callid) self.assertEqual(callids.count(), 1) self.assertEqual(callids[0].callid, 'callid1')