mirror of
https://github.com/sissbruecker/linkding.git
synced 2025-08-08 19:28:29 +02:00
Add Health Check endpoint (#392)
* add simple health endpoint * add curl and healthcheck to dockerfile * convert to view * add simple test * Add unhealthy test * Cleanup * check for LD_SERVER_PORT env var in healthcheck def * Revert changes to middlewares.py Co-authored-by: Sascha Ißbrücker <sascha.issbruecker@gmail.com>
This commit is contained in:
36
bookmarks/tests/test_health_view.py
Normal file
36
bookmarks/tests/test_health_view.py
Normal file
@@ -0,0 +1,36 @@
|
||||
from unittest.mock import patch
|
||||
|
||||
from django.db import connections
|
||||
from django.test import TestCase
|
||||
|
||||
from bookmarks.views.settings import app_version
|
||||
|
||||
|
||||
class HealthViewTestCase(TestCase):
|
||||
|
||||
def test_health_healthy(self):
|
||||
response = self.client.get("/health")
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
response_body = response.json()
|
||||
expected_body = {
|
||||
'version': app_version,
|
||||
'status': 'healthy'
|
||||
}
|
||||
self.assertDictEqual(response_body, expected_body)
|
||||
|
||||
def test_health_unhealhty(self):
|
||||
with patch.object(connections['default'], 'ensure_connection') as mock_ensure_connection:
|
||||
mock_ensure_connection.side_effect = Exception('Connection error')
|
||||
|
||||
response = self.client.get("/health")
|
||||
|
||||
self.assertEqual(response.status_code, 500)
|
||||
|
||||
response_body = response.json()
|
||||
expected_body = {
|
||||
'version': app_version,
|
||||
'status': 'unhealthy'
|
||||
}
|
||||
self.assertDictEqual(response_body, expected_body)
|
Reference in New Issue
Block a user