
    hj                         U d Z ddlZddlZddlZddlmZ ddlmZ ddlmZ g Ze	ej
                 ed<    ej        e e            d	e
          Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"ej#        j$        d             Z%ej#        j$        d             Z&ej#        j$        d              Z'ej#        j$        d!             Z(ej#        j$        d"             Z)ej#        j$        d#             Z*dS )$zTest files upload method.    N   )types)errors   )pytest_helper
test_tablezfiles.upload)fileglobals_for_filetest_methodr   c                     t          j        | t                    5  | j                            d          }|j                            d          sJ 	 d d d            d S # 1 swxY w Y   d S Ntests/data/google.pngr	   files/r   exception_if_vertex
ValueErrorfilesuploadname
startswithclientr	   s     h/var/www/app.qaans.com/backend/venv/lib/python3.11/site-packages/google/genai/tests/files/test_upload.pytest_image_png_uploadr   %       (<< * *<$;<<D9))))))* * * * * * * * * * * * * * * * * *   8A!!A%(A%c                 ,   t          j        | t                    5  t          j        d          }| j                            |t          j        d                    }|j	        
                    d          sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   test_image_png_pathdisplay_namer	   configr   )r   r   r   pathlibPathr   r   r   UploadFileConfigr   r   )r   pr	   s      r   test_image_png_upload_with_pathr(   *   s    (<< * *,--A<%3HIII   D 9))))))* * * * * * * * * * * * * * * * * *s   A B		BBc           	         t          j        | t                    5  t          dd          5 }t	          j        |                                          5 }| j                            |t          j
        d                    }|j                            d          sJ 	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S Nr   rbz	image/png	mime_typer"   r   )r   r   r   openioBytesIOreadr   r   r   r&   r   r   r   fbufferr	   s       r   "test_image_png_upload_with_bytesior5   3   s   (<< . .	%t	,	, .:affhh .6|"")K@@@ # 
 

 y##H------. . . . . . . . . . . . . . .. . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . .sY   C'CAB, C,B00C3B04C7CC	C
C	CC"Cc                 T   t          j        | t                    5  t          dd          5 }| j                            |t          j        d                    }d d d            n# 1 swxY w Y   |j        	                    d          sJ 	 d d d            d S # 1 swxY w Y   d S r*   )
r   r   r   r.   r   r   r   r&   r   r   )r   r3   r	   s      r   test_image_png_upload_with_fdr7   >   s-   (<< * *	%t	,	, \  '+>>> !  d               9))))))* * * * * * * * * * * * * * * * * *s4   B0A(B(A,	,B/A,	0BB!$B!c                    t          j        | t                    5  | j                            dt          j        d                    }|j                            d          sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   test_image_pngr    r"   r   	r   r   r   r   r   r   r&   r   r   r   s     r   !test_image_png_upload_with_configr;   H       (<< * *<$%3CDDD   D 9))))))* * * * * * * * * * * * * * * * * *   AA55A9<A9c                     t          j        | t                    5  | j                            dddi          }|j                            d          sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   r!   r9   r"   r   r   r   s     r   &test_image_png_upload_with_config_dictr?   Q       (<< * *<$n>N-O   D 9))))))	* * * * * * * * * * * * * * * * * *   ;A$$A(+A(c                     t          j        | t                    5  | j                            d          }|j                            d          sJ 	 d d d            d S # 1 swxY w Y   d S )Ntests/data/google.jpgr   r   r   r   s     r   test_image_jpg_uploadrD   Y   r   r   c                    t          j        | t                    5  | j                            dt          j        d                    }|j                            d          sJ 	 d d d            d S # 1 swxY w Y   d S )NrC   test_image_jpgr    r"   r   r:   r   s     r   !test_image_jpg_upload_with_configrG   _   r<   r=   c                     t          j        | t                    5  | j                            dddi          }|j                            d          sJ 	 d d d            d S # 1 swxY w Y   d S )NrC   r!   rF   r"   r   r   r   s     r   &test_image_jpg_upload_with_config_dictrI   h   r@   rA   c                     t          j        | t                    5  | j                            d          }|j                            d          sJ 	 d d d            d S # 1 swxY w Y   d S )Ntests/data/story.pdfr   r   r   r   s     r    test_application_pdf_file_uploadrL   p   s    (<< * *<$:;;D9))))))* * * * * * * * * * * * * * * * * *r   c                    t          j        | t                    5  | j                            dt          j        d                    }|j                            d          sJ 	 d d d            d S # 1 swxY w Y   d S )NrK   test_application_pdfr    r"   r   r:   r   s     r   'test_application_pdf_upload_with_configrO   v   s    (<< * *<#%3IJJJ   D 9))))))* * * * * * * * * * * * * * * * * *r=   c                     t          j        | t                    5  | j                            dddi          }|j                            d          sJ 	 d d d            d S # 1 swxY w Y   d S )NrK   r!   rN   r"   r   r   r   s     r   ,test_application_pdf_upload_with_config_dictrQ      s    (<< * *<# 67   D 9))))))* * * * * * * * * * * * * * * * * *rA   c                     t          j        | t                    5  | j                            d          }|j                            d          sJ 	 d d d            d S # 1 swxY w Y   d S )Ntests/data/animal.mp4r   r   r   r   s     r   test_video_mp4_file_uploadrT      r   r   c                    t          j        | t                    5  | j                            dt          j        d                    }|j                            d          sJ 	 d d d            d S # 1 swxY w Y   d S )NrS   test_video_mp4r    r"   r   r:   r   s     r   !test_video_mp4_upload_with_configrW      r<   r=   c                     t          j        | t                    5  | j                            dddi          }|j                            d          sJ 	 d d d            d S # 1 swxY w Y   d S )NrS   r!   rV   r"   r   r   r   s     r   &test_video_mp4_upload_with_config_dictrY      r@   rA   c                    t          j        | t                    5  | j                            dt          j        d                    }|j                            d          sJ 	 d d d            d S # 1 swxY w Y   d S )Ntests/data/pixel.m4a	audio/mp4r,   r"   r   r:   r   s     r   test_audio_m4a_file_uploadr]      s    (<< * *<#%<<<   D 9))))))* * * * * * * * * * * * * * * * * *r=   c                    t          j        | t                    5  | j                            dt          j        dd                    }|j                            d          sJ 	 d d d            d S # 1 swxY w Y   d S Nr[   test_audio_m4ar\   )r!   r-   r"   r   r:   r   s     r   !test_audio_m4a_upload_with_configra      s    (<< * *<#%)[
 
 
   D 9))))))* * * * * * * * * * * * * * * * * *s   AA66A:=A:c                     t          j        | t                    5  | j                            dddd          }|j                            d          sJ 	 d d d            d S # 1 swxY w Y   d S r_   r   r   s     r   &test_audio_m4a_upload_with_config_dictrc      s    (<< * *<# 0{KK   D 9))))))* * * * * * * * * * * * * * * * * *s   <A%%A),A)c                 <   t          j        | t                    5  t          j        t
          j        d          5  | j                            t          j
        d          ddi          }d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S NzUnsupported MIME)matchs   testr-   zbad/mime_typer"   )r   r   r   pytestraisesr   APIErrorr   r   r/   r0   r   s     r   test_bad_mime_typerj      s   (<<  	v.@	A	A	A  \  z'""/ !  d                               s4   !B1A9-B9A=	=B A=	BBBc                    K   t          j        | t                    5  | j        j                            d           d {V }|j                            d          sJ 	 d d d            d S # 1 swxY w Y   d S r   r   r   r   aior   r   r   r   r   s     r   test_image_upload_asyncrn      s      (<< * *!((.E(FFFFFFFFD9))))))* * * * * * * * * * * * * * * * * *s   AA..A25A2c                   K   t          j        | t                    5  | j        j                            dt          j        d                     d {V }|j        	                    d          sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   
test_imager    r"   r   )
r   r   r   rm   r   r   r   r&   r   r   r   s     r   #test_image_upload_with_config_asyncrq      s      (<< * *!(($%<@@@ )        D 9))))))* * * * * * * * * * * * * * * * * *s   ABB	Bc                   K   t          j        | t                    5  | j        j                            ddddid           d {V }|j                            d          sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   rp   timeout8000)r!   http_optionsr"   r   rl   r   s     r   (test_image_upload_with_config_dict_asyncrv      s      (<< * *!(($(&/
 
 )        D 9))))))* * * * * * * * * * * * * * * * * *s   A	A44A8;A8c                   K   t          j        | t                    5  t          dd          5 }t	          j        |                                          }d d d            n# 1 swxY w Y   | j        j        	                    |t          j        d                     d {V }|j                            d          sJ 	 d d d            d S # 1 swxY w Y   d S r*   )r   r   r   r.   r/   r0   r1   rm   r   r   r   r&   r   r   r2   s       r   $test_image_upload_with_bytesio_asyncrx      sp     (<< * *	%t	,	, $z!&&((##f$ $ $ $ $ $ $ $ $ $ $ $ $ $ $!((%!# # # )        D
 9))))))* * * * * * * * * * * * * * * * * *s5   C'A!C!A%	%C(A%	)ACCCc                   K   t          j        | t                    5  	 | j        j                            d           d {V  n*# t          $ r}dt          |          v sJ Y d }~nd }~ww xY wd d d            d S # 1 swxY w Y   d S )Nunknown_pathr   zis not a valid file path)r   r   r   rm   r   r   FileNotFoundErrorstr)r   es     r   test_unknown_path_upload_asyncr~      s      (<< 2 22J###8888888888 2 2 2'3q6611111111122 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2s:   A=&AA=
A-A(#A=(A--A==BBc                 V  K   t          j        | t                    5  t          j        t
          j        d          5  | j        j        	                    t          j        d          ddi           d {V }d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S re   )r   r   r   rg   rh   r   ri   rm   r   r   r/   r0   r   s     r   test_bad_mime_type_asyncr      s<     (<<  	v.@	A	A	A  :#**z'""/ +        d                               s4   !B<B:BB
	
BB
	BB"%B")+__doc__r/   r$   rg    r   r   r   r   listTestTableItem__annotations__setup__file__globals
pytestmarkr   r(   r5   r7   r;   r?   rD   rG   rI   rL   rO   rQ   rT   rW   rY   r]   ra   rc   rj   markasynciorn   rq   rv   rx   r~   r        r   <module>r      s  "     
			                     13
D,- 2 2 2 ] 	WYY	  
* * *
* * *	. 	. 	.* * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * *   * * * * * * 	* 	* 	* 	* 	* 	* 2 2 2     r   