File tree Expand file tree Collapse file tree 2 files changed +32
-3
lines changed Expand file tree Collapse file tree 2 files changed +32
-3
lines changed Original file line number Diff line number Diff line change 1
- from fastapi import APIRouter , Response
1
+ import logging
2
+
3
+ from fastapi import APIRouter , Depends , Response
4
+ from redis import Redis
5
+
6
+ from runner_manager .dependencies import get_redis
2
7
3
8
router = APIRouter (prefix = "/_health" )
4
9
10
+ log = logging .getLogger (__name__ )
11
+
5
12
6
13
@router .get ("/" , status_code = 200 )
7
- def healthcheck ():
14
+ def healthcheck (r : Redis = Depends ( get_redis ) ):
8
15
"""Healthcheck endpoint that answers to GET requests on /_health"""
16
+
17
+ try :
18
+ r .ping ()
19
+ except Exception as exp :
20
+ log .error ("Redis healthcheck failed: %s" , exp )
21
+ return Response (status_code = 500 )
22
+
9
23
return Response (status_code = 200 )
Original file line number Diff line number Diff line change
1
+ from redis import Redis
2
+
3
+ from runner_manager .dependencies import get_redis
4
+
5
+
1
6
def test_healthcheck (client ):
2
- response = client .get ("/_health" )
7
+ response = client .get ("/_health/" )
8
+ assert response .status_code == 200
9
+
10
+
11
+ def test_healthcheck_redis_unavailable (client , fastapp ):
12
+ fake_connection = Redis .from_url ("redis://localhost:63799/0" )
13
+ fastapp .dependency_overrides [get_redis ] = lambda : fake_connection
14
+ response = client .get ("/_health/" )
15
+ assert response .status_code == 500
16
+ fastapp .dependency_overrides [get_redis ] = get_redis
17
+ response = client .get ("/_health/" )
3
18
assert response .status_code == 200
You can’t perform that action at this time.
0 commit comments