mirror of https://github.com/zulip/zulip.git
queue_processors: Add full coverage for SlowQuery.
This commit is contained in:
parent
1bcc07f7dd
commit
7777a81dbf
|
@ -1,11 +1,20 @@
|
|||
import time
|
||||
|
||||
from django.test import override_settings
|
||||
from unittest.mock import Mock, patch
|
||||
from zerver.lib.test_classes import ZulipTestCase
|
||||
from zerver.middleware import is_slow_query
|
||||
from zerver.middleware import write_log_line
|
||||
|
||||
class SlowQueryTest(ZulipTestCase):
|
||||
SLOW_QUERY_TIME = 10
|
||||
log_data = {'extra': '[transport=websocket]',
|
||||
'time_started': 0,
|
||||
'bugdown_requests_start': 0,
|
||||
'bugdown_time_start': 0,
|
||||
'remote_cache_time_start': 0,
|
||||
'remote_cache_requests_start': 0}
|
||||
|
||||
def test_is_slow_query(self):
|
||||
# type: () -> None
|
||||
self.assertFalse(is_slow_query(1.1, '/some/random/url'))
|
||||
|
@ -22,18 +31,22 @@ class SlowQueryTest(ZulipTestCase):
|
|||
@patch('logging.info')
|
||||
def test_slow_query_log(self, mock_logging_info):
|
||||
# type: (Mock) -> None
|
||||
SLOW_QUERY_TIME = 10
|
||||
log_data = {'extra': '[transport=websocket]',
|
||||
'time_started': time.time() - SLOW_QUERY_TIME,
|
||||
'bugdown_requests_start': 0,
|
||||
'bugdown_time_start': 0,
|
||||
'remote_cache_time_start': 0,
|
||||
'remote_cache_requests_start': 0}
|
||||
write_log_line(log_data, path='/socket/open', method='SOCKET',
|
||||
self.log_data['time_started'] = time.time() - self.SLOW_QUERY_TIME
|
||||
write_log_line(self.log_data, path='/socket/open', method='SOCKET',
|
||||
remote_ip='123.456.789.012', email='unknown', client_name='?')
|
||||
last_message = self.get_last_message()
|
||||
self.assertEqual(last_message.sender.email, "error-bot@zulip.com")
|
||||
self.assertIn("logs", str(last_message.recipient))
|
||||
self.assertEqual(last_message.topic_name(), "testserver: slow queries")
|
||||
self.assertRegexpMatches(last_message.content,
|
||||
"123\.456\.789\.012 SOCKET 200 10\.0s .*")
|
||||
"123\.456\.789\.012 SOCKET 200 10\.\ds .*")
|
||||
|
||||
@override_settings(ERROR_BOT=None)
|
||||
@patch('logging.info')
|
||||
@patch('zerver.lib.actions.internal_send_message')
|
||||
def test_slow_query_log_without_error_bot(self, mock_internal_send_message, mock_logging_info):
|
||||
# type: (Mock, Mock) -> None
|
||||
self.log_data['time_started'] = time.time() - self.SLOW_QUERY_TIME
|
||||
write_log_line(self.log_data, path='/socket/open', method='SOCKET',
|
||||
remote_ip='123.456.789.012', email='unknown', client_name='?')
|
||||
mock_internal_send_message.assert_not_called()
|
||||
|
|
Loading…
Reference in New Issue