def _set_body(
    content: ContentType,
    data: dict,
    files: Any,
    json_body: Any,
    internal_request: _PipelineTransportHttpRequest,
) -> None:
    if data is not None and not isinstance(data, dict):
        content = data
        data = None
    if content is not None:
        _set_content_body(content, internal_request)
    elif json_body is not None:
        internal_request.set_json_body(json_body)
        _set_content_type_header("application/json", internal_request)
    elif files is not None:
        internal_request.set_formdata_body(files)
        # if you don't supply your content type, we'll create a boundary for you with multipart/form-data
        # boundary = binascii.hexlify(os.urandom(16)).decode(
        #    "ascii"
        #)  # got logic from httpx, thanks httpx!
        # _set_content_type_header("multipart/form-data; boundary={}".format(boundary), internal_request)
    elif data:
        _set_content_type_header("application/x-www-form-urlencoded",
                                 internal_request)
        internal_request.set_formdata_body(data)
        # need to set twice because Content-Type is being popped in set_formdata_body
        # don't want to risk changing pipeline.transport, so doing twice here
        _set_content_type_header("application/x-www-form-urlencoded",
                                 internal_request)
Exemple #2
0
    def test_request_json(self):

        request = HttpRequest("GET", "/")
        data = "Lots of dataaaa"
        request.set_json_body(data)

        self.assertEqual(request.data, json.dumps(data))
        self.assertEqual(request.headers.get("Content-Length"), "17")
Exemple #3
0
def test_request_json():

    request = HttpRequest("GET", "/")
    data = "Lots of dataaaa"
    request.set_json_body(data)

    assert request.data == json.dumps(data)
    assert request.headers.get("Content-Length") == "17"
Exemple #4
0
    def update_key(self, name, version, key_ops=None, attributes=None, tags=None, **kwargs):
        # type: (str, str, Optional[List[str]], Mapping[str, str], Mapping[str, str], Any) -> Key
        url = "/".join([self.vault_url, "keys", name, version])

        headers = {"Content-Type": "application/json; charset=utf-8", "x-ms-client-request-id": str(uuid.uuid1())}

        update_params = KeyUpdateParameters(key_ops=key_ops, key_attributes=attributes, tags=tags)
        body = self._serialize.body(update_params, "KeyUpdateParameters")
        request = HttpRequest("PATCH", url, headers=headers)
        request.set_json_body(body)
        request.format_parameters({"api-version": self.API_VERSION})
        response = self._pipeline.run(request, **kwargs).http_response
        if response.status_code != 200:
            raise HttpResponseError("Request failed with code {}: '{}'".format(response.status_code, response.text()))
        key = self._deserialize("Key", response)

        return key