def request_status(self, status_link): """Do a simple GET to this status link. This method re-inject 'x-ms-client-request-id'. :rtype: azure.core.pipeline.PipelineResponse """ if self._path_format_arguments: status_link = self._client.format_url(status_link, **self._path_format_arguments) # Re-inject 'x-ms-client-request-id' while polling if "request_id" not in self._operation_config: self._operation_config["request_id"] = self._get_request_id() if is_rest(self._initial_response.http_response): # if I am a azure.core.rest.HttpResponse # want to keep making azure.core.rest calls from azure.core.rest import HttpRequest as RestHttpRequest request = RestHttpRequest("GET", status_link) return self._client.send_request( request, _return_pipeline_response=True, **self._operation_config ) # if I am a azure.core.pipeline.transport.HttpResponse request = self._client.get(status_link) return self._client._pipeline.run( # pylint: disable=protected-access request, stream=False, **self._operation_config )
def test_request_formdata_body_and_files_kwarg(old_request): files = {"fileName": "hello.jpg"} old_request.set_formdata_body(files) new_request = RestHttpRequest("GET", "/", files=files) assert old_request.data == new_request.data == None assert old_request.body == new_request.body == None assert old_request.headers == new_request.headers == {} assert old_request.files == new_request.files == {'fileName': (None, 'hello.jpg')}
def test_request_xml_body_and_content_kwarg(old_request): old_request.set_text_body("i am text") new_request = RestHttpRequest("GET", "/", content="i am text") assert ( old_request.data == new_request.data == old_request.body == new_request.body == new_request.content == "i am text" ) assert old_request.headers["Content-Length"] == new_request.headers["Content-Length"] == "9" assert old_request.files == new_request.files == None
def test_request_streamed_data_body_and_content_kwarg(old_request): # passing stream bodies to set_streamed_data_body # and passing a stream body to the content kwarg of the new request should be the same def streaming_body(data): yield data # pragma: nocover old_request.set_streamed_data_body(streaming_body("stream")) new_request = RestHttpRequest("GET", "/", content=streaming_body("stream")) assert old_request.files == new_request.files == None assert isinstance(old_request.data, collections.Iterable) assert isinstance(new_request.data, collections.Iterable) assert isinstance(old_request.body, collections.Iterable) assert isinstance(new_request.body, collections.Iterable) assert isinstance(new_request.content, collections.Iterable) assert old_request.headers == new_request.headers == {}
def test_request_format_parameters_and_params_kwarg(old_request): # calling format_parameters on an old request should be the same # behavior as passing in params to new request old_request.url = "a/b/c?t=y" old_request.format_parameters({"g": "h"}) new_request = RestHttpRequest( "GET", "a/b/c?t=y", params={"g": "h"} ) assert old_request.url in ["a/b/c?g=h&t=y", "a/b/c?t=y&g=h"] assert new_request.url in ["a/b/c?g=h&t=y", "a/b/c?t=y&g=h"] # additionally, calling format_parameters on a new request # should be the same as passing the params to a new request assert new_request.url in ["a/b/c?g=h&t=y", "a/b/c?t=y&g=h"] assert new_request.url in ["a/b/c?g=h&t=y", "a/b/c?t=y&g=h"]
def test_request_json_body_and_json_kwarg(old_request): json_input = {"hello": "world"} old_request.set_json_body(json_input) new_request = RestHttpRequest("GET", "/", json=json_input) assert ( old_request.data == new_request.data == old_request.body == new_request.body == new_request.content == json.dumps(json_input) ) assert old_request.headers["Content-Length"] == new_request.headers['Content-Length'] == '18' assert not old_request.headers.get("Content-Type") assert new_request.headers["Content-Type"] == "application/json" assert old_request.files == new_request.files == None
def test_request_formdata_body_and_data_kwarg(old_request): data = {"fileName": "hello.jpg"} # with the urlencoded content type, set_formdata_body # will set it as data old_request.headers["Content-Type"] = "application/x-www-form-urlencoded" old_request.set_formdata_body(data) new_request = RestHttpRequest("GET", "/", data=data) assert ( old_request.data == new_request.data == old_request.body == new_request.body == new_request.content == {"fileName": "hello.jpg"} ) assert old_request.headers == {} assert new_request.headers == {"Content-Type": "application/x-www-form-urlencoded"} assert old_request.files == new_request.files == None
def test_request_bytes_body_and_content_kwarg(old_request): bytes_input = b"hello, world!" old_request.set_bytes_body(bytes_input) new_request = RestHttpRequest("GET", "/", content=bytes_input) assert ( old_request.data == new_request.data == old_request.body == new_request.body == new_request.content == bytes_input ) if sys.version_info < (3, 0): # in 2.7, b'' is a string, so we're setting content-type headers assert old_request.headers["Content-Length"] == new_request.headers['Content-Length'] == '13' assert new_request.headers["Content-Type"] == "text/plain" else: assert old_request.headers == new_request.headers == {'Content-Length': '13'} assert old_request.files == new_request.files
def new_request(port): return RestHttpRequest("GET", "http://localhost:{}/streams/basic".format(port))
def test_request_query_and_params_kwarg(old_request): # should be same behavior if we pass in query params through the params kwarg in the new requests old_request.url = "http://localhost:5000?a=b&c=d" new_request = RestHttpRequest("GET", "http://localhost:5000", params={'a': 'b', 'c': 'd'}) assert old_request.query == new_request.query == {'a': 'b', 'c': 'd'}
def new_request(): return RestHttpRequest("GET", "/")