o
    Yi                      @   sd  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d
Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Z d-d. Z!d/d0 Z"ej#j$d1d2 Z%ej#j$d3d4 Z&ej#j$d5d6 Z'ej#j$d7d8 Z(ej#j$d9d: Z)ej#j$d;d< Z*dS )=zTest files upload method.    N   )types)errors   )pytest_helper
test_tablezfiles.upload)fileZglobals_for_fileZtest_methodr   c                 C   P   t | t | jjdd}|jdsJ W d    d S 1 s!w   Y  d S Ntests/data/google.pngr   files/r   exception_if_vertex
ValueErrorfilesuploadname
startswithclientr    r   ^/home/kim/smarthome/.venv/lib/python3.10/site-packages/google/genai/tests/files/test_upload.pytest_image_png_upload%      "r   c                 C   sd   t | t" td}| jj|tjddd}|j	
ds J W d    d S 1 s+w   Y  d S )Nr   Ztest_image_png_pathdisplay_namer   configr   )r   r   r   pathlibPathr   r   r   UploadFileConfigr   r   )r   pr   r   r   r   test_image_png_upload_with_path*   s   

"r#   c              
   C   s   t | tQ tdd3}t| }| jj|t	j
ddd}|jds)J W d    n1 s3w   Y  W d    n1 sBw   Y  W d    d S W d    d S 1 sZw   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   r   r   r   "test_image_png_upload_with_bytesio3   s   
"r/   c              	   C   s   t | t2 tdd}| jj|tjddd}W d    n1 s#w   Y  |j	ds0J W d    d S 1 s;w   Y  d S r$   )
r   r   r   r(   r   r   r   r!   r   r   )r   r-   r   r   r   r   test_image_png_upload_with_fd>   s   
"r0   c                 C   Z   t | t | jjdtjddd}|jdsJ W d    d S 1 s&w   Y  d S )Nr   test_image_pngr   r   r   	r   r   r   r   r   r   r!   r   r   r   r   r   r   !test_image_png_upload_with_configH      
"r4   c                 C   V   t | t | jjdddid}|jdsJ W d    d S 1 s$w   Y  d S )Nr   r   r2   r   r   r   r   r   r   r   &test_image_png_upload_with_config_dictQ      "r7   c                 C   r	   )Ntests/data/google.jpgr   r   r   r   r   r   r   test_image_jpg_uploadY   r   r:   c                 C   r1   )Nr9   test_image_jpgr   r   r   r3   r   r   r   r   !test_image_jpg_upload_with_config_   r5   r<   c                 C   r6   )Nr9   r   r;   r   r   r   r   r   r   r   &test_image_jpg_upload_with_config_dicth   r8   r=   c                 C   r	   )Ntests/data/story.pdfr   r   r   r   r   r   r    test_application_pdf_file_uploadp   r   r?   c                 C   r1   )Nr>   test_application_pdfr   r   r   r3   r   r   r   r   'test_application_pdf_upload_with_configv   r5   rA   c                 C   r6   )Nr>   r   r@   r   r   r   r   r   r   r   ,test_application_pdf_upload_with_config_dict   s   "rB   c                 C   r	   )Ntests/data/animal.mp4r   r   r   r   r   r   r   test_video_mp4_file_upload   r   rD   c                 C   r1   )NrC   test_video_mp4r   r   r   r3   r   r   r   r   !test_video_mp4_upload_with_config   r5   rF   c                 C   r6   )NrC   r   rE   r   r   r   r   r   r   r   &test_video_mp4_upload_with_config_dict   r8   rG   c                 C   r1   )Ntests/data/pixel.m4a	audio/mp4r&   r   r   r3   r   r   r   r   test_audio_m4a_file_upload   r5   rJ   c                 C   s\   t | t | jjdtjdddd}|jdsJ W d    d S 1 s'w   Y  d S NrH   Ztest_audio_m4arI   )r   r'   r   r   r3   r   r   r   r   !test_audio_m4a_upload_with_config   s   "rL   c                 C   sX   t | t | jjddddd}|jdsJ W d    d S 1 s%w   Y  d S rK   r   r   r   r   r   &test_audio_m4a_upload_with_config_dict   s   "rM   c              	   C   s   t | t6 tjtjdd | jjt	
dddid}W d    n1 s'w   Y  W d    d S W d    d S 1 s?w   Y  d S NzUnsupported MIME)matchs   testr'   zbad/mime_typer   )r   r   r   pytestraisesr   APIErrorr   r   r)   r*   r   r   r   r   test_bad_mime_type   s   "rS   c                    sZ   t | t | jjjddI d H }|jdsJ W d    d S 1 s&w   Y  d S r
   r   r   r   aior   r   r   r   r   r   r   r   test_image_upload_async   s
   "rV   c                    sd   t | t! | jjjdtjdddI d H }|j	ds J W d    d S 1 s+w   Y  d S )Nr   
test_imager   r   r   )
r   r   r   rU   r   r   r   r!   r   r   r   r   r   r   #test_image_upload_with_config_async   s   
"rX   c                    sf   t | t" | jjjddddiddI d H }|jds!J W d    d S 1 s,w   Y  d S )Nr   rW   timeoutZ8000)r   Zhttp_optionsr   r   rT   r   r   r   r   (test_image_upload_with_config_dict_async   s   "rZ   c              	      s   t | t= tdd}t| }W d    n1 sw   Y  | jjj	|t
jdddI d H }|jds<J W d    d S 1 sGw   Y  d S r$   )r   r   r   r(   r)   r*   r+   rU   r   r   r   r!   r   r   r,   r   r   r   $test_image_upload_with_bytesio_async   s   "r[   c                    s   t | t9 z| jjjddI d H  W n ty/ } zdt|v s%J W Y d }~nd }~ww W d    d S W d    d S 1 sCw   Y  d S )NZunknown_pathr   zis not a valid file path)r   r   r   rU   r   r   FileNotFoundErrorstr)r   er   r   r   test_unknown_path_upload_async   s   "r_   c              	      s   t | t: tjtjdd | jjj	t
dddidI d H }W d    n1 s,w   Y  W d    d S W d    d S 1 sDw   Y  d S rN   )r   r   r   rP   rQ   r   rR   rU   r   r   r)   r*   r   r   r   r   test_bad_mime_type_async   s   "r`   )+__doc__r)   r   rP    r   r   r   r   listZTestTableItem__annotations__setup__file__globalsZ
pytestmarkr   r#   r/   r0   r4   r7   r:   r<   r=   r?   rA   rB   rD   rF   rG   rJ   rL   rM   rS   markZasynciorV   rX   rZ   r[   r_   r`   r   r   r   r   <module>   sZ   	
								

	


