示例#1
0
    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
示例#9
0
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", "/")