Ejemplo n.º 1
0
    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"})
Ejemplo n.º 2
0
    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"})
Ejemplo n.º 3
0
  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"})
Ejemplo n.º 6
0
  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)