Files
edx-platform/common/djangoapps/heartbeat/tests/test_heartbeat.py
2014-12-01 20:18:08 -05:00

42 lines
1.4 KiB
Python

"""
Test the heartbeat
"""
import json
from django.core.urlresolvers import reverse
from django.db.utils import DatabaseError
from django.test.client import Client
from django.test.testcases import TestCase
from mock import patch
from xmodule.exceptions import HeartbeatFailure
@patch('heartbeat.views.modulestore')
class HeartbeatTestCase(TestCase):
"""
Test the heartbeat
"""
def setUp(self):
self.client = Client()
self.heartbeat_url = reverse('heartbeat')
return super(HeartbeatTestCase, self).setUp()
def test_success(self, mock_modulestore): # pylint: disable=unused-argument
response = self.client.get(self.heartbeat_url)
self.assertEqual(response.status_code, 200)
@patch('heartbeat.views.connection')
def test_sql_fail(self, mock_connection, mock_modulestore): # pylint: disable=unused-argument
mock_connection.cursor.return_value.execute.side_effect = DatabaseError
response = self.client.get(self.heartbeat_url)
self.assertEqual(response.status_code, 503)
response_dict = json.loads(response.content)
self.assertIn('SQL', response_dict)
def test_modulestore_fail(self, mock_modulestore): # pylint: disable=unused-argument
mock_modulestore.return_value.heartbeat.side_effect = HeartbeatFailure('msg', 'service')
response = self.client.get(self.heartbeat_url)
self.assertEqual(response.status_code, 503)