def test_get_queue_abandoned_call_following_transfer_at_hour_border(self): queue_logs = [ # New call in queue2 ('2015-05-06 11:59:52.991930', '1430927991.36', 'queue2', 'NONE', 'ENTERQUEUE', '', '0612345678', '1', '', ''), ('2015-05-06 12:00:02.110492', '1430927991.36', 'queue2', 'Agent/1002', 'CONNECT', '10', '1430927992.37', '9', '', ''), ('2015-05-06 12:00:10.804470', '1430927991.36', 'queue2', 'Agent/1002', 'COMPLETECALLER', '10', '8', '1', '', ''), # Agent/1002 blind txfer the call to queue1 ('2015-05-06 12:00:10.883332', '1430927991.36', 'queue1', 'NONE', 'ENTERQUEUE', '', '0612345678', '1', '', ''), ('2015-05-06 12:00:25.887220', '1430927991.36', 'queue1', 'Agent/1001', 'RINGNOANSWER', '15000', '', '', '', ''), ('2015-05-06 12:00:29.197769', '1430927991.36', 'queue1', 'NONE', 'ABANDON', '1', '1', '19', '', ''), ] for queue_log in queue_logs: queue_log_dao.insert_entry(*queue_log) abandoned_at_11_oclock = list( queue_log_dao.get_queue_abandoned_call( self.session, datetime(2015, 5, 6, 11, tzinfo=UTC), datetime(2015, 5, 6, 11, 59, 59, 999999, tzinfo=UTC))) abandoned_at_12_oclock = list( queue_log_dao.get_queue_abandoned_call( self.session, datetime(2015, 5, 6, 12, tzinfo=UTC), datetime(2015, 5, 6, 12, 59, 59, 999999, tzinfo=UTC))) assert_that(abandoned_at_11_oclock, empty()) assert_that(abandoned_at_12_oclock, has_length(1))
def test_get_queue_abandoned_call(self): start = datetime(2012, 01, 01, 01, 00, 00) expected = self._insert_abandon(start, [-1, 0, 10, 30, 59, 60, 120]) result = queue_log_dao.get_queue_abandoned_call(self.session, start, start + ONE_HOUR - ONE_MICROSECOND) self.assertEqual(sorted(result), sorted(expected))
def test_get_queue_abandoned_call(self): start = datetime(2012, 01, 01, 01, 00, 00) expected = self._insert_abandon(start, [-1, 0, 10, 30, 59, 60, 120]) result = queue_log_dao.get_queue_abandoned_call( self.session, start, start + ONE_HOUR - ONE_MICROSECOND) self.assertEqual(sorted(result), sorted(expected))
def fill_abandoned_call(dao_sess, start, end): abandoned_calls = queue_log_dao.get_queue_abandoned_call(dao_sess, start, end) for call in abandoned_calls: stat_call_on_queue_dao.add_abandoned_call(dao_sess, call['callid'], call['time'], call['queue_name'], call['waittime'])
def fill_abandoned_call(dao_sess, start, end): abandoned_calls = queue_log_dao.get_queue_abandoned_call( dao_sess, start, end) for call in abandoned_calls: stat_call_on_queue_dao.add_abandoned_call(dao_sess, call['callid'], call['time'], call['queue_name'], call['waittime'])
def test_get_queue_abandoned_call(self): start = datetime(2012, 1, 1, 1, 0, 0, tzinfo=UTC) expected = self._insert_abandon(start, [-1, 0, 10, 30, 59, 60, 120]) result = queue_log_dao.get_queue_abandoned_call( self.session, start, start + ONE_HOUR - ONE_MICROSECOND) assert_that(result, contains_inanyorder(*expected))
def test_get_queue_abandoned_call_following_transfer_at_hour_border(self): queue_logs = [ # New call in queue2 ('2015-05-06 11:59:52.991930', '1430927991.36', 'queue2', 'NONE', 'ENTERQUEUE', '', '0612345678', '1', '', ''), ('2015-05-06 12:00:02.110492', '1430927991.36', 'queue2', 'Agent/1002', 'CONNECT', '10', '1430927992.37', '9', '', ''), ('2015-05-06 12:00:10.804470', '1430927991.36', 'queue2', 'Agent/1002', 'COMPLETECALLER', '10', '8', '1', '', ''), # Agent/1002 blind txfer the call to queue1 ('2015-05-06 12:00:10.883332', '1430927991.36', 'queue1', 'NONE', 'ENTERQUEUE', '', '0612345678', '1', '', ''), ('2015-05-06 12:00:25.887220', '1430927991.36', 'queue1', 'Agent/1001', 'RINGNOANSWER', '15000', '', '', '', ''), ('2015-05-06 12:00:29.197769', '1430927991.36', 'queue1', 'NONE', 'ABANDON', '1', '1', '19', '', ''), ] for queue_log in queue_logs: queue_log_dao.insert_entry(*queue_log) abandoned_at_11_oclock = list(queue_log_dao.get_queue_abandoned_call(self.session, datetime(2015, 5, 6, 11), datetime(2015, 5, 6, 11, 59, 59, 999999))) abandoned_at_12_oclock = list(queue_log_dao.get_queue_abandoned_call(self.session, datetime(2015, 5, 6, 12), datetime(2015, 5, 6, 12, 59, 59, 999999))) assert_that(abandoned_at_11_oclock, empty()) assert_that(abandoned_at_12_oclock, has_length(1))
def test_get_queue_abandoned_call_no_enterqueue(self): queue_logs = [ ('2015-05-06 12:00:10', '1', 'queue1', 'NONE', 'ENTERQUEUE', '', '0612345678', '1', '', ''), ('2015-05-06 12:00:11', '1', 'queue1', 'NONE', 'ABANDON', '1', '1', '19', '', ''), ('2015-05-06 12:00:12', '2', 'queue1', 'NONE', 'ABANDON', '1', '1', '30', '', ''), ] for queue_log in queue_logs: queue_log_dao.insert_entry(*queue_log) abandoned_at_12_oclock = list(queue_log_dao.get_queue_abandoned_call(self.session, datetime(2015, 5, 6, 12), datetime(2015, 5, 6, 12, 59, 59, 999999))) assert_that(abandoned_at_12_oclock, has_length(1))
def test_get_queue_abandoned_call_no_enterqueue(self): queue_logs = [ ('2015-05-06 12:00:10', '1', 'queue1', 'NONE', 'ENTERQUEUE', '', '0612345678', '1', '', ''), ('2015-05-06 12:00:11', '1', 'queue1', 'NONE', 'ABANDON', '1', '1', '19', '', ''), ('2015-05-06 12:00:12', '2', 'queue1', 'NONE', 'ABANDON', '1', '1', '30', '', ''), ] for queue_log in queue_logs: queue_log_dao.insert_entry(*queue_log) abandoned_at_12_oclock = list( queue_log_dao.get_queue_abandoned_call( self.session, datetime(2015, 5, 6, 12, tzinfo=UTC), datetime(2015, 5, 6, 12, 59, 59, 999999, tzinfo=UTC))) assert_that(abandoned_at_12_oclock, has_length(1))