Exemple #1
0
    def test_explicit(self):
        fields = [("k", ("somefile.txt", b"v", "image/jpeg"))]

        encoded, content_type = encode_multipart_formdata(fields,
                                                          boundary=BOUNDARY)
        expected = (
            b"--" + b(BOUNDARY) + b"\r\n"
            b'Content-Disposition: form-data; name="k"; filename="somefile.txt"\r\n'
            b"Content-Type: image/jpeg\r\n"
            b"\r\n"
            b"v\r\n"
            b"--" + b(BOUNDARY) + b"--\r\n")

        assert encoded == expected

        assert content_type == "multipart/form-data; boundary=" + str(BOUNDARY)
Exemple #2
0
    def test_filename(self):
        fields = [("k", ("somename", b"v"))]

        encoded, content_type = encode_multipart_formdata(fields,
                                                          boundary=BOUNDARY)
        expected = (
            b"--" + b(BOUNDARY) + b"\r\n"
            b'Content-Disposition: form-data; name="k"; filename="somename"\r\n'
            b"Content-Type: application/octet-stream\r\n"
            b"\r\n"
            b"v\r\n"
            b"--" + b(BOUNDARY) + b"--\r\n")

        assert encoded == expected

        assert content_type == "multipart/form-data; boundary=" + str(BOUNDARY)
Exemple #3
0
    def test_field_encoding(self, fields):
        encoded, content_type = encode_multipart_formdata(fields,
                                                          boundary=BOUNDARY)
        expected = (b"--" + b(BOUNDARY) + b"\r\n"
                    b'Content-Disposition: form-data; name="k"\r\n'
                    b"\r\n"
                    b"v\r\n"
                    b"--" + b(BOUNDARY) + b"\r\n"
                    b'Content-Disposition: form-data; name="k2"\r\n'
                    b"\r\n"
                    b"v2\r\n"
                    b"--" + b(BOUNDARY) + b"--\r\n")

        assert encoded == expected

        assert content_type == "multipart/form-data; boundary=" + str(BOUNDARY)
Exemple #4
0
    def test_request_fields(self):
        fields = [
            RequestField(
                "k",
                b"v",
                filename="somefile.txt",
                headers={"Content-Type": "image/jpeg"},
            )
        ]

        encoded, content_type = encode_multipart_formdata(fields,
                                                          boundary=BOUNDARY)
        expected = (b"--" + b(BOUNDARY) + b"\r\n"
                    b"Content-Type: image/jpeg\r\n"
                    b"\r\n"
                    b"v\r\n"
                    b"--" + b(BOUNDARY) + b"--\r\n")

        assert encoded == expected
Exemple #5
0
 def test_source_address(self):
     for addr, is_ipv6 in VALID_SOURCE_ADDRESSES:
         if is_ipv6 and not HAS_IPV6_AND_DNS:
             warnings.warn("No IPv6 support: skipping.", NoIPv6Warning)
             continue
         with HTTPConnectionPool(self.host,
                                 self.port,
                                 source_address=addr,
                                 retries=False) as pool:
             r = pool.request("GET", "/source_address")
             assert r.data == b(addr[0])
Exemple #6
0
 def test_input_datastructures(self, fields):
     encoded, _ = encode_multipart_formdata(fields, boundary=BOUNDARY)
     assert encoded.count(b(BOUNDARY)) == 3