Пример #1
0
    def test_error(self, mocker):
        c = client.Client("instance.com", "user", "pass")
        request_mock = mocker.patch.object(c, "request")
        request_mock.return_value = client.Response(403, "forbidden")

        with pytest.raises(errors.UnexpectedAPIResponse, match="forbidden"):
            c.get("table/incident/1")
    def test_error(self, mocker):
        c = client.Client("https://instance.com", "user", "pass")
        request_mock = mocker.patch.object(c, "request")
        request_mock.return_value = client.Response(400, "bad request")

        with pytest.raises(errors.UnexpectedAPIResponse, match="bad request"):
            c.put("api/now/table/incident/1", {"some": "data"})
    def test_request_without_data_binary_success(self, mocker):
        c = client.Client("https://instance.com", "user", "pass")
        mock_response = client.Response(200,
                                        "data",
                                        headers=[("Content-type", "image/apng")
                                                 ])
        request_mock = mocker.patch.object(c, "_request")
        request_mock.return_value = mock_response

        resp = c.request(
            "GET",
            "api/now/some/path",
            headers={
                "Accept": "image/apng",
                "Content-type": "text/plain"
            },
        )

        request_mock.assert_called_once_with(
            "GET",
            "https://instance.com/api/now/some/path",
            data=None,
            headers=dict({
                "Accept": "image/apng",
                "Content-type": "text/plain"
            }, **c.auth_header),
        )
        assert resp == mock_response
    def test_request_with_data_binary_success(self, mocker):
        c = client.Client("https://instance.com", "user", "pass")
        mock_response = client.Response(200,
                                        "some_data",
                                        headers=[("Content-type", "text/plain")
                                                 ])
        request_mock = mocker.patch.object(c, "_request")
        request_mock.return_value = mock_response

        resp = c.request(
            "PUT",
            "api/now/some/path",
            headers={
                "Accept": "text/plain",
                "Content-type": "text/plain"
            },
            bytes="some_data",
        )

        request_mock.assert_called_once_with(
            "PUT",
            "https://instance.com/api/now/some/path",
            data="some_data",
            headers={
                "Accept": "text/plain",
                "Content-type": "text/plain",
                "Authorization": c.auth_header["Authorization"],
            },
        )
        assert resp == mock_response
    def test_error(self, mocker):
        c = client.Client("https://instance.com", "user", "pass")
        request_mock = mocker.patch.object(c, "request")
        request_mock.return_value = client.Response(404, "not found")

        with pytest.raises(errors.UnexpectedAPIResponse, match="not found"):
            c.delete("api/now/table/resource/1")
    def test_invalid_json(self):
        resp = client.Response(404, "Not Found")

        assert resp.status == 404
        assert resp.headers == {}
        assert resp.data == "Not Found"
        with pytest.raises(errors.ServiceNowError, match="invalid JSON"):
            resp.json
    def test_ok_missing(self, mocker):
        c = client.Client("https://instance.com", "user", "pass")
        mock_response = client.Response(404, "Not Found", None)
        request_mock = mocker.patch.object(c, "request")
        request_mock.return_value = mock_response

        resp = c.get("api/now/table/incident/1")

        assert resp == mock_response
    def test_ok(self, mocker):
        c = client.Client("https://instance.com", "user", "pass")
        mock_response = client.Response(200, '{"incident": 1}')
        request_mock = mocker.patch.object(c, "request")
        request_mock.return_value = mock_response

        resp = c.put("api/now/table/incident/1", {"some": "data"})

        assert resp == mock_response
        assert resp.json == {"incident": 1}
    def test_query(self, mocker):
        c = client.Client("https://instance.com", "user", "pass")
        request_mock = mocker.patch.object(c, "request")
        request_mock.return_value = client.Response(204, {})

        c.delete("api/now/table/resource/1", query=dict(x="y"))

        request_mock.assert_called_with("DELETE",
                                        "api/now/table/resource/1",
                                        query=dict(x="y"))
Пример #10
0
    def test_ok(self, mocker):
        c = client.Client("instance.com", "user", "pass")
        mock_response = client.Response(200, '{"incident": 1}', None)
        request_mock = mocker.patch.object(c, "request")
        request_mock.return_value = mock_response

        resp = c.get("table/incident/1")

        assert resp == mock_response
        assert resp.json == {"incident": 1}
    def test_query(self, mocker):
        c = client.Client("https://instance.com", "user", "pass")
        request_mock = mocker.patch.object(c, "request")
        request_mock.return_value = client.Response(200, '{"incident": 1}')

        c.put("api/now/table/incident/1", {"some": "data"}, query={"j": "i"})

        request_mock.assert_called_with("PUT",
                                        "api/now/table/incident/1",
                                        data=dict(some="data"),
                                        query=dict(j="i"))
    def test_valid_json(self):
        resp = client.Response(
            200,
            '{"a": ["b", "c"], "d": 1}',
            headers=[("Content-type", "applcation/json")],
        )

        assert resp.status == 200
        assert resp.headers == {"content-type": "applcation/json"}
        assert resp.data == '{"a": ["b", "c"], "d": 1}'
        assert resp.json == {"a": ["b", "c"], "d": 1}
    def test_query(self, mocker):
        c = client.Client("https://instance.com", "user", "pass")
        request_mock = mocker.patch.object(c, "request")
        request_mock.return_value = client.Response(200, '{"incident": 1}',
                                                    None)

        c.get("api/now/table/incident/1", query=dict(a="1"))

        request_mock.assert_called_with("GET",
                                        "api/now/table/incident/1",
                                        query=dict(a="1"))
Пример #14
0
    def test_query(self, mocker):
        c = client.Client("instance.com", "user", "pass")
        request_mock = mocker.patch.object(c, "request")
        request_mock.return_value = client.Response(200, '{"incident": 1}')

        c.patch("table/incident/1", {"some": "data"}, query={"g": "f"})

        request_mock.assert_called_with("PATCH",
                                        "table/incident/1",
                                        data=dict(some="data"),
                                        query=dict(g="f"))
    def test_json_is_cached(self, mocker):
        json_mock = mocker.patch.object(client, "json")
        resp = client.Response(
            200,
            '{"a": ["b", "c"], "d": 1}',
            headers=[("Content-type", "applcation/json")],
        )
        resp.json
        resp.json

        assert json_mock.loads.call_count == 1
    def test_request_without_data_success(self, mocker):
        c = client.Client("https://instance.com", "user", "pass")
        mock_response = client.Response(200,
                                        '{"returned": "data"}',
                                        headers=[("Content-type",
                                                  "application/json")])
        request_mock = mocker.patch.object(c, "_request")
        request_mock.return_value = mock_response

        resp = c.request("GET", "api/now/some/path")

        request_mock.assert_called_once_with(
            "GET",
            "https://instance.com/api/now/some/path",
            data=None,
            headers=dict(Accept="application/json", **c.auth_header),
        )
        assert resp == mock_response
    def test_request_with_data_success(self, mocker):
        c = client.Client("https://instance.com", "user", "pass")
        mock_response = client.Response(200,
                                        '{"returned": "data"}',
                                        headers=[("Content-type",
                                                  "application/json")])
        request_mock = mocker.patch.object(c, "_request")
        request_mock.return_value = mock_response

        resp = c.request("PUT", "api/now/some/path", data={"some": "data"})

        request_mock.assert_called_once_with(
            "PUT",
            "https://instance.com/api/now/some/path",
            data='{"some":"data"}',
            headers={
                "Accept": "application/json",
                "Content-type": "application/json",
                "Authorization": c.auth_header["Authorization"],
            },
        )
        assert resp == mock_response
 def test_headers(self, raw_headers, expected_headers):
     resp = client.Response(200, "{}", headers=raw_headers)
     assert resp.headers == expected_headers
    def test_ok(self, mocker):
        c = client.Client("https://instance.com", "user", "pass")
        request_mock = mocker.patch.object(c, "request")
        request_mock.return_value = client.Response(204, {})

        c.delete("api/now/table/resource/1")