def test_get_insights_401(self, patch_parent, mocker): view = HostInsights() Response = namedtuple('Response', 'status_code content') mocker.patch.object(view, '_get_insights', return_value=Response(401, '')) (msg, code) = view.get_insights('https://myexample.com/whocares/me/', 'ignore', 'ignore') assert msg['error'] == 'Unauthorized access. Please check your Insights Credential username and password.'
def test_get_insights_request_exception(self, patch_parent, mocker, status_code, exception, error, message): view = HostInsights() mocker.patch.object(view, '_get_insights', side_effect=exception(error)) (msg, code) = view.get_insights('https://myexample.com/whocares/me/', 'ignore', 'ignore') assert code == status_code assert msg['error'] == message or error
def test_get_insights_non_200(self, patch_parent, mocker): view = HostInsights() Response = namedtuple('Response', 'status_code content') mocker.patch.object(view, '_get_insights', return_value=Response(500, 'mock 500 err msg')) (msg, code) = view.get_insights('https://myexample.com/whocares/me/', 'ignore', 'ignore') assert msg['error'] == ( 'Failed to gather reports and maintenance plans from Insights API at URL' ' https://myexample.com/whocares/me/. Server responded with 500 status code ' 'and message mock 500 err msg')
def test_get_insights_malformed_json_content(self, patch_parent, mocker): view = HostInsights() class Response(): status_code = 200 content = 'booo!' def json(self): raise ValueError('we do not care what this is') mocker.patch.object(view, '_get_insights', return_value=Response()) (msg, code) = view.get_insights('https://myexample.com/whocares/me/', 'ignore', 'ignore') assert msg['error'] == 'Expected JSON response from Insights but instead got booo!' assert code == 502