ranger-agent/ord/tests/unit/engine/test_healthcheck.py
Chi Lo 02114b616b Add unit test cases for Ranger-agent health check
This patch also disable health check for heat component
during upstream gate process.

Change-Id: Ic5717f00212e924c059654c93d26fd2f2002438e
2019-10-06 05:51:25 -07:00

78 lines
3.0 KiB
Python

# Copyright (c) 2019 ATT
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
"""
Unit Tests for ord.engine.healthcheck
"""
import mock
from mock import patch
from ord.client import heat
from ord.common import exceptions as exc
from ord.db.sqlalchemy import api as db_api
from ord.engine import healthcheck
from ord.tests import base
import oslo_db
class OrdEngineHealthcheckTestCase(base.BaseTestCase):
PATH_PREFIX = ''
def setUp(self):
super(OrdEngineHealthcheckTestCase, self).setUp()
self.addCleanup(mock.patch.stopall)
@patch.object(heat.HeatClient, 'delete_stack', return_value='id')
@patch.object(heat, 'HeatClient')
@patch.object(db_api, 'retrieve_health_record', return_value={})
def test_execute_health_check_db_success(self, mock_retrieve,
mock_heat, mock_delete):
status = healthcheck.HealthCheck.execute_health_check()
expected = {'database': 'passed', 'heat': 'unknown'}
self.assertEqual(status, expected)
@patch.object(heat.HeatClient, 'delete_stack', return_value='id')
@patch.object(heat, 'HeatClient')
@patch.object(db_api, 'retrieve_health_record',
side_effect=oslo_db.exception.DBConnectionError())
def test_execute_health_check_db_failure(self, mock_retrieve,
mock_heat, mock_delete):
status = healthcheck.HealthCheck.execute_health_check()
expected = {'database': 'failed', 'heat': 'unknown'}
self.assertEqual(status, expected)
@patch.object(heat.HeatClient, 'delete_stack',
side_effect=exc.HEATStackDeleteError())
@patch.object(db_api, 'retrieve_health_record', return_value={})
def test_execute_health_check_heat_success(self, mock_retrieve,
mock_delete):
status = healthcheck.HealthCheck.execute_health_check()
expected = {'database': 'passed', 'heat': 'passed'}
self.assertEqual(status, expected)
@patch.object(heat.HeatClient, 'delete_stack',
side_effect=exc.HEATStackDeleteError('MessagingTimeout'))
@patch.object(db_api, 'retrieve_health_record', return_value={})
def test_execute_health_check_heat_failure(self, mock_retrieve,
mock_delete):
status = healthcheck.HealthCheck.execute_health_check()
expected = {'database': 'passed', 'heat': 'failed'}
self.assertEqual(status, expected)