def testHealthCheck(self): request = self.factory.get('/?type=db') request = Request(request) # print "debug>>", request.query_params['type'], "<<debug" plugin = DjangoDatabaseBackend() # print plugin.status, "debug" response = healthcheck(request) response.render() response_json = json.loads(response.content) self.assertEqual(response_json['status'], plugin.pretty_status()) request = self.factory.get('/?type=cache') request = Request(request) # print "debug>>", request.query_params['type'], "<<debug" plugin = CacheBackend() # print plugin.status, "debug" response = healthcheck(request) response.render() response_json = json.loads(response.content) self.assertEqual(response_json['status'], plugin.pretty_status()) request = self.factory.get('/?type=storage') request = Request(request) # print "debug>>", request.query_params['type'], "<<debug" plugin = DefaultFileStorageHealthCheck() # print plugin.status, "debug" response = healthcheck(request) response.render() response_json = json.loads(response.content) self.assertEqual(response_json['status'], plugin.pretty_status())
def healthcheck(request): plugin = None if request.query_params['type'] == 'db': plugin = DjangoDatabaseBackend() elif request.query_params['type'] == 'cache': plugin = CacheBackend() elif request.query_params['type'] == 'storage': plugin = DefaultFileStorageHealthCheck() if not plugin.status: # Will return True or None return Response({"status": plugin.pretty_status()}, status=500) return Response({"status": plugin.pretty_status()}, status=200)
def test_check_status_working(self): default_storage = DefaultFileStorageHealthCheck() self.assertTrue(default_storage.check_status())
def test_file_not_deleted(self): default_storage_health = DefaultFileStorageHealthCheck() with self.assertRaises(ServiceUnavailable): default_storage_health.check_status()
def test_get_storage(self): base_storage = StorageHealthCheck() self.assertIsNone(base_storage.get_storage()) default_storage = DefaultFileStorageHealthCheck() self.assertIsInstance(default_storage.get_storage(), Storage)