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"))
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"))
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")