Commit 53d56806 by Oleg Marshev

Skip es checking when ES_DISABLED.

parent 2e065fd2
import base64 import base64
import datetime import datetime
from unittest import skipIf
from mock import patch, Mock from mock import patch, Mock
from django.conf import settings from django.conf import settings
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
...@@ -17,13 +18,10 @@ class OperationalEndpointsTest(APITestCase): ...@@ -17,13 +18,10 @@ class OperationalEndpointsTest(APITestCase):
Heartbeat endpoint success. Heartbeat endpoint success.
""" """
response = self.client.get(reverse('heartbeat')) response = self.client.get(reverse('heartbeat'))
if settings.ES_DISABLED: self.assertEquals(response.status_code, 200)
self.assertEquals(response.status_code, 500) self.assertEquals(response.data, {"OK": True})
self.assertEquals(response.data, {"OK": False, 'check': 'es'})
else:
self.assertEquals(response.status_code, 200)
self.assertEquals(response.data, {"OK": True})
@skipIf(settings.ES_DISABLED, "Do not test if Elasticsearch service is disabled.")
@patch('notesserver.views.get_es') @patch('notesserver.views.get_es')
def test_heartbeat_failure_es(self, mocked_get_es): def test_heartbeat_failure_es(self, mocked_get_es):
""" """
...@@ -65,6 +63,7 @@ class OperationalEndpointsTest(APITestCase): ...@@ -65,6 +63,7 @@ class OperationalEndpointsTest(APITestCase):
response = self.client.get(reverse('selftest')) response = self.client.get(reverse('selftest'))
self.assertEquals(response.status_code, 200) self.assertEquals(response.status_code, 200)
@skipIf(settings.ES_DISABLED, "Do not test if Elasticsearch service is disabled.")
@patch('notesserver.views.datetime', datetime=Mock(wraps=datetime.datetime)) @patch('notesserver.views.datetime', datetime=Mock(wraps=datetime.datetime))
@patch('notesserver.views.get_es') @patch('notesserver.views.get_es')
def test_selftest_data(self, mocked_get_es, mocked_datetime): def test_selftest_data(self, mocked_get_es, mocked_datetime):
...@@ -84,6 +83,24 @@ class OperationalEndpointsTest(APITestCase): ...@@ -84,6 +83,24 @@ class OperationalEndpointsTest(APITestCase):
} }
) )
@patch('django.conf.settings.ES_DISABLED', True)
@patch('notesserver.views.datetime', datetime=Mock(wraps=datetime.datetime))
def test_selftest_data_es_disabled(self, mocked_datetime):
"""
Test returned data on success.
"""
mocked_datetime.datetime.now.return_value = datetime.datetime(2014, 12, 11)
response = self.client.get(reverse('selftest'))
self.assertEquals(response.status_code, 200)
self.assertEquals(
response.data,
{
"db": "OK",
"time_elapsed": 0.0
}
)
@skipIf(settings.ES_DISABLED, "Do not test if Elasticsearch service is disabled.")
@patch('notesserver.views.get_es') @patch('notesserver.views.get_es')
def test_selftest_failure_es(self, mocked_get_es): def test_selftest_failure_es(self, mocked_get_es):
""" """
......
...@@ -15,17 +15,6 @@ if not settings.ES_DISABLED: ...@@ -15,17 +15,6 @@ if not settings.ES_DISABLED:
def get_es(): def get_es():
return connections['default'].get_backend().conn return connections['default'].get_backend().conn
else:
from mock import Mock
def get_es():
return Mock(
ping=lambda: None,
info=lambda: {
'ok': None,
'status': 203, # request processed, information may be from another source
},
)
@api_view(['GET']) @api_view(['GET'])
...@@ -51,7 +40,7 @@ def heartbeat(request): # pylint: disable=unused-argument ...@@ -51,7 +40,7 @@ def heartbeat(request): # pylint: disable=unused-argument
except Exception: except Exception:
return Response({"OK": False, "check": "db"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) return Response({"OK": False, "check": "db"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
if not get_es().ping(): if not settings.ES_DISABLED and not get_es().ping():
return Response({"OK": False, "check": "es"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) return Response({"OK": False, "check": "es"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
return Response({"OK": True}) return Response({"OK": True})
...@@ -65,13 +54,14 @@ def selftest(request): # pylint: disable=unused-argument ...@@ -65,13 +54,14 @@ def selftest(request): # pylint: disable=unused-argument
""" """
start = datetime.datetime.now() start = datetime.datetime.now()
try: if not settings.ES_DISABLED:
es_status = get_es().info() try:
except TransportError: es_status = get_es().info()
return Response( except TransportError:
{"es_error": traceback.format_exc()}, return Response(
status=status.HTTP_500_INTERNAL_SERVER_ERROR {"es_error": traceback.format_exc()},
) status=status.HTTP_500_INTERNAL_SERVER_ERROR
)
try: try:
db_status() db_status()
...@@ -85,11 +75,15 @@ def selftest(request): # pylint: disable=unused-argument ...@@ -85,11 +75,15 @@ def selftest(request): # pylint: disable=unused-argument
end = datetime.datetime.now() end = datetime.datetime.now()
delta = end - start delta = end - start
return Response({ response = {
"es": es_status,
"db": database, "db": database,
"time_elapsed": int(delta.total_seconds() * 1000) # In milliseconds. "time_elapsed": int(delta.total_seconds() * 1000) # In milliseconds.
}) }
if not settings.ES_DISABLED:
response['es'] = es_status
return Response(response)
def db_status(): def db_status():
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment