def testConnectAndCheckModelsSuccess(self, getMock, removeIssueMock, checkModelsStatusMock): """ Tests case where no connection errors occur. """ url = "url" apiKey = "key" timeout = 1.0 responseMock = Mock(spec=requests.models.Response) responseMock.status_code = 200 responseMock.json.return_value = "{}" getMock.return_value = responseMock emailParams = {"key": "value"} # Code under test modelsMonitor._connectAndCheckModels(url, apiKey, timeout, emailParams) getMock.assert_called_once_with(url, auth=(apiKey, ""), timeout=timeout, verify=False) removeIssueMock.assert_any_call(modelsMonitor._FLAG_REQUESTS_EXCEPTION) removeIssueMock.assert_any_call(modelsMonitor._FLAG_HTTP_STATUS_CODE) removeIssueMock.assert_any_call(modelsMonitor._FLAG_RESPONSE_JSON) checkModelsStatusMock.assert_called_once_with("{}", url, {"key": "value"})
def testConnectAndCheckModelsValueError(self, getMock, reportIssueMock, removeIssueMock): """ Tests a requests Response whose status code is 200, but whose json method raises a ValueError. """ url = "url" apiKey = "key" timeout = 1.0 responseMock = Mock(spec=requests.models.Response) responseMock.status_code = 200 responseMock.json.side_effect = ValueError() getMock.return_value = responseMock # Code under test modelsMonitor._connectAndCheckModels(url, apiKey, timeout, {"k": "v"}) getMock.assert_called_once_with(url, auth=(apiKey, ""), timeout=timeout, verify=False) removeIssueMock.assert_any_call(modelsMonitor._FLAG_REQUESTS_EXCEPTION) removeIssueMock.assert_any_call(modelsMonitor._FLAG_HTTP_STATUS_CODE) reportIssueMock.assert_called_once_with( modelsMonitor._FLAG_RESPONSE_JSON, url, "ValueError encountered loading " "JSON.", {"k": "v"})
def testConnectAndCheckModelsResponseCode(self, getMock, reportIssueMock, removeIssueMock): """ Test a request Response whose status code is not 200 """ url = "url" apiKey = "key" timeout = 1.0 # Mock the returned value of requests.get, a requests.Response responseMock = Mock(spec=requests.models.Response) responseMock.status_code = 404 getMock.return_value = responseMock emailParams = {"key":"val"} # Code under test modelsMonitor._connectAndCheckModels(url, apiKey, timeout, emailParams) getMock.assert_called_once_with(url, auth=(apiKey, ""), timeout=timeout, verify=False) removeIssueMock.assert_called_once_with( ANY, modelsMonitor.Flags.REQUESTS_EXCEPTION) reportIssueMock.assert_called_once_with( modelsMonitor.Flags.HTTP_STATUS_CODE, url, modelsMonitor._getIssueString("Received abnormal HTTP status code", 404), {"key":"val"} )
def testConnectAndCheckModelsSuccess(self, getMock, removeIssueMock, checkModelsStatusMock): """ Tests case where no connection errors occur. """ url = "url" apiKey = "key" timeout = 1.0 responseMock = Mock(spec=requests.models.Response) responseMock.status_code = 200 responseMock.json.return_value = "{}" getMock.return_value = responseMock emailParams = {"key": "value"} # Code under test modelsMonitor._connectAndCheckModels(url, apiKey, timeout, emailParams) getMock.assert_called_once_with(url, auth=(apiKey, ""), timeout=timeout, verify=False) removeIssueMock.assert_any_call(ANY, modelsMonitor.Flags.REQUESTS_EXCEPTION) removeIssueMock.assert_any_call(ANY, modelsMonitor.Flags.HTTP_STATUS_CODE) removeIssueMock.assert_any_call(ANY, modelsMonitor.Flags.RESPONSE_JSON) checkModelsStatusMock.assert_called_once_with("{}", url, {"key": "value"})
def testConnectAndCheckModelsValueError(self, getMock, reportIssueMock, removeIssueMock): """ Tests a requests Response whose status code is 200, but whose json method raises a ValueError. """ url = "url" apiKey = "key" timeout = 1.0 responseMock = Mock(spec=requests.models.Response) responseMock.status_code = 200 responseMock.json.side_effect = ValueError() getMock.return_value = responseMock # Code under test modelsMonitor._connectAndCheckModels(url, apiKey, timeout, {"k":"v"}) getMock.assert_called_once_with(url, auth=(apiKey, ""), timeout=timeout, verify=False) removeIssueMock.assert_any_call(ANY, modelsMonitor.Flags.REQUESTS_EXCEPTION) removeIssueMock.assert_any_call(ANY, modelsMonitor.Flags.HTTP_STATUS_CODE) reportIssueMock.assert_called_once_with(modelsMonitor.Flags.RESPONSE_JSON, url, "ValueError encountered loading " "JSON.", {"k":"v"})
def testConnectAndCheckModelsRequestsException(self, getMock, reportIssueMock, removeIssueMock): """ Tests encountering a RequestException. """ url = "url" apiKey = "key" timeout = 1.0 excMessage = "Mock RequestException" getMock.side_effect = requests.exceptions.RequestException(excMessage) # Code under test modelsMonitor._connectAndCheckModels(url, apiKey, timeout, {}) getMock.assert_called_once_with(url, auth=(apiKey, ""), timeout=timeout, verify=False) self.assertFalse(removeIssueMock.called) self.assertTrue(reportIssueMock.called)