Commit 53d56806 by Oleg Marshev

Skip es checking when ES_DISABLED.

parent 2e065fd2
import base64
import datetime
from unittest import skipIf
from mock import patch, Mock
from django.conf import settings
from django.core.urlresolvers import reverse
......@@ -17,13 +18,10 @@ class OperationalEndpointsTest(APITestCase):
Heartbeat endpoint success.
"""
response = self.client.get(reverse('heartbeat'))
if settings.ES_DISABLED:
self.assertEquals(response.status_code, 500)
self.assertEquals(response.data, {"OK": False, 'check': 'es'})
else:
self.assertEquals(response.status_code, 200)
self.assertEquals(response.data, {"OK": True})
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')
def test_heartbeat_failure_es(self, mocked_get_es):
"""
......@@ -65,6 +63,7 @@ class OperationalEndpointsTest(APITestCase):
response = self.client.get(reverse('selftest'))
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.get_es')
def test_selftest_data(self, mocked_get_es, mocked_datetime):
......@@ -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')
def test_selftest_failure_es(self, mocked_get_es):
"""
......
......@@ -15,17 +15,6 @@ if not settings.ES_DISABLED:
def get_es():
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'])
......@@ -51,7 +40,7 @@ def heartbeat(request): # pylint: disable=unused-argument
except Exception:
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": True})
......@@ -65,13 +54,14 @@ def selftest(request): # pylint: disable=unused-argument
"""
start = datetime.datetime.now()
try:
es_status = get_es().info()
except TransportError:
return Response(
{"es_error": traceback.format_exc()},
status=status.HTTP_500_INTERNAL_SERVER_ERROR
)
if not settings.ES_DISABLED:
try:
es_status = get_es().info()
except TransportError:
return Response(
{"es_error": traceback.format_exc()},
status=status.HTTP_500_INTERNAL_SERVER_ERROR
)
try:
db_status()
......@@ -85,11 +75,15 @@ def selftest(request): # pylint: disable=unused-argument
end = datetime.datetime.now()
delta = end - start
return Response({
"es": es_status,
response = {
"db": database,
"time_elapsed": int(delta.total_seconds() * 1000) # In milliseconds.
})
}
if not settings.ES_DISABLED:
response['es'] = es_status
return Response(response)
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