Skip to content

Commit b51142b

Browse files
committed
add more tests
1 parent c12a3db commit b51142b

File tree

2 files changed

+27
-6
lines changed

2 files changed

+27
-6
lines changed

Diff for: tests/tests.py

+26
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
from vitals.conf import import_string, conf, DEFAULT_CHECKS
77
from vitals.checks import DatabaseCheck, CacheCheck, StorageCheck, HTTPCheck
8+
from vitals.checks import BaseHealthCheck
89
from vitals.views import run_checks
910

1011

@@ -75,6 +76,12 @@ def test_http_check_passes(self, get_mock):
7576
check.run_check()
7677
self.assertFalse(check.errors)
7778

79+
@patch('vitals.checks.CacheCheck.check', side_effect=Exception)
80+
def test_check_unexecpted_exception(self, mock_check):
81+
check = CacheCheck(name='TestCacheCheck')
82+
check.run_check()
83+
self.assertEqual(len(check.errors), 1)
84+
7885

7986
class TestViews(TestCase):
8087
def test_run_checks(self):
@@ -108,3 +115,22 @@ def test_jsonview_check_param_multiple(self):
108115
self.assertEqual(result['ok'], ['DatabaseCheck', 'CacheCheck'])
109116
self.assertNotIn('StorageCheck', result['ok'])
110117
self.assertNotIn('StorageCheck', result['failed'])
118+
119+
@patch('vitals.checks.CacheCheck.check', side_effect=Exception)
120+
def test_jsonview_check_fails(self, check_mock):
121+
result = self.client.get('/')
122+
self.assertEqual(len(result.json()['failed']), 1)
123+
self.assertEqual(len(result.json()['ok']), 2)
124+
self.assertEqual(result.status_code, 500)
125+
126+
127+
class BadCheck(BaseHealthCheck):
128+
pass
129+
130+
131+
class TestBadCheckImpl(TestCase):
132+
def test_check_has_no_check(self):
133+
bc = BadCheck(name='notgonnawork')
134+
bc.run_check()
135+
self.assertEqual(len(bc.errors), 1)
136+
self.assertIn('Must implement', bc.errors[0])

Diff for: vitals/checks.py

+1-6
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ def __init__(self, *args, **kwargs):
1212
self.errors = []
1313

1414
def check(self):
15-
raise NotImplementedError
15+
raise NotImplementedError('Must implement check() method')
1616

1717
def add_error(self, message):
1818
self.errors.append(message)
@@ -21,13 +21,8 @@ def run_check(self):
2121
try:
2222
self.check()
2323
except Exception as exc:
24-
raise exc
2524
self.add_error('Unexpected exception: {}'.format(exc))
2625

27-
@property
28-
def id(self):
29-
return self.__class__.__name__
30-
3126

3227
class DatabaseCheck(BaseHealthCheck):
3328
def check(self):

0 commit comments

Comments
 (0)