
                        l    d dl mZ d dlZd dlmZ d dlmZmZ dZej                         Z
 G d d      Zy)    )annotationsN)RequestField)_TYPE_FIELDSencode_multipart_formdataz!! test boundary !!c                      e Zd Zej                  j                  d edd      ddgg      dd       Zej                  j                  dddgdd	gddgg      dd
       ZddZ	ddZ
ddZddZy)TestMultipartEncodingfieldsvv2)kk2)r   r
   )r   r   c                `    t        |t              \  }}|j                  t              dk(  sJ y )Nboundary   )r   BOUNDARYcountBOUNDARY_BYTES)selfr	   encoded_s       9platform/gsutil/third_party/urllib3/test/test_filepost.pytest_input_datastructuresz/TestMultipartEncoding.test_input_datastructures   s+     /vI
}}^,111    )r      v)r   s   v2c                    t        |t              \  }}dt        z   dz   t        z   dz   t        z   dz   }||k(  sJ |dt        t              z   k(  sJ y )Nr      --s3   
Content-Disposition: form-data; name="k"

v
--s5   
Content-Disposition: form-data; name="k2"

v2
--   --
multipart/form-data; boundary=r   r   r   strr   r	   r   content_typeexpecteds        r   test_field_encodingz)TestMultipartEncoding.test_field_encoding   s|     !:&8 TN" &  #	#&	 ## &// 	 ("""?#h-OOOOr   c                    dg}t        |t              \  }}dt        z   dz   t        z   dz   }||k(  sJ |dt        t              z   k(  sJ y )N)r   )somenamer   r   r   sp   
Content-Disposition: form-data; name="k"; filename="somename"
Content-Type: application/octet-stream

v
--r   r   r    r"   s        r   test_filenamez#TestMultipartEncoding.test_filename.   sn    +, 9&8 TN" & 
 ##
 &// 	 ("""?#h-OOOOr   c                    dg}t        |t              \  }}dt        z   dz   t        z   dz   }||k(  sJ |dt        t              z   k(  sJ y )N)r   )somefile.txtr   r   r   sf   
Content-Disposition: form-data; name="k"; filename="somefile.txt"
Content-Type: text/plain

v
--r   r   r    r"   s        r   test_textplainz$TestMultipartEncoding.test_textplain?   sn    /0 9&8 TN" & 
 ##
 &// 	 ("""?#h-OOOOr   c                    dg}t        |t              \  }}dt        z   dz   t        z   dz   }||k(  sJ |dt        t              z   k(  sJ y )N)r   )r*   r   
image/jpegr   r   sf   
Content-Disposition: form-data; name="k"; filename="somefile.txt"
Content-Type: image/jpeg

v
--r   r   r    r"   s        r   test_explicitz#TestMultipartEncoding.test_explicitP   sn    => 9&8 TN" & 
 ##
 &// 	 ("""?#h-OOOOr   c                    t        dddddi      g}t        |t              \  }}dt        z   d	z   t        z   d
z   }||k(  sJ y )Nr   r   r*   zContent-Typer-   )filenameheadersr   r   s#   
Content-Type: image/jpeg

v
--r   )r   r   r   r   r"   s        r   test_request_fieldsz)TestMultipartEncoding.test_request_fieldsa   sp    ''6	
 !:&8 TN" &  #	# &/	/ 	 ("""r   N)r	   r   returnNone)r3   r4   )__name__
__module____qualname__pytestmarkparametrizedictr   r%   r(   r+   r.   r2    r   r   r   r      s    [[4#$'*l)CD22 [[&-(,'	
PP$P"P"P"#r   r   )
__future__r   r8   urllib3.fieldsr   urllib3.filepostr   r   r   encoder   r   r<   r   r   <module>rA      s.    "  ' D "h# h#r   