o
    i                      @   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)fileglobals_for_file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   b/home/ubuntu/transcripts/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   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   
"r2   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   r0   r   r   r   r   test_image_png_upload_with_fd>   s   
"r3   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      
"r7   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   r5   r    r   r   r   r   r   r   &test_image_png_upload_with_config_dictQ      "r:   c                 C   r   )Ntests/data/google.jpgr   r   r   r   r   r   r   test_image_jpg_uploadY   r   r=   c                 C   r4   )Nr<   test_image_jpgr   r    r   r6   r   r   r   r   !test_image_jpg_upload_with_config_   r8   r?   c                 C   r9   )Nr<   r   r>   r    r   r   r   r   r   r   &test_image_jpg_upload_with_config_dicth   r;   r@   c                 C   r   )Ntests/data/story.pdfr   r   r   r   r   r   r    test_application_pdf_file_uploadp   r   rB   c                 C   r4   )NrA   test_application_pdfr   r    r   r6   r   r   r   r   'test_application_pdf_upload_with_configv   r8   rD   c                 C   r9   )NrA   r   rC   r    r   r   r   r   r   r   ,test_application_pdf_upload_with_config_dict   s   "rE   c                 C   r   )Ntests/data/animal.mp4r   r   r   r   r   r   r   test_video_mp4_file_upload   r   rG   c                 C   r4   )NrF   test_video_mp4r   r    r   r6   r   r   r   r   !test_video_mp4_upload_with_config   r8   rI   c                 C   r9   )NrF   r   rH   r    r   r   r   r   r   r   &test_video_mp4_upload_with_config_dict   r;   rJ   c                 C   r4   )Ntests/data/pixel.m4a	audio/mp4r)   r    r   r6   r   r   r   r   test_audio_m4a_file_upload   r8   rM   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 NrK   test_audio_m4arL   )r   r*   r    r   r6   r   r   r   r   !test_audio_m4a_upload_with_config   s   "rP   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 rN   r   r   r   r   r   &test_audio_m4a_upload_with_config_dict   s   "rQ   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   "rW   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
   "rZ   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   rY   r   r   r   r$   r   r   r   r   r   r   #test_image_upload_with_config_async   s   
"r\   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   r[   timeout8000)r   http_optionsr    r   rX   r   r   r   r   (test_image_upload_with_config_dict_async   s   "r`   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.   rY   r   r   r   r$   r   r   r/   r   r   r   $test_image_upload_with_bytesio_async   s   "ra   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 )Nunknown_pathr   zis not a valid file path)r   r   r   rY   r   r   FileNotFoundErrorstr)r   er   r   r   test_unknown_path_upload_async   s   "rf   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 rR   )r   r   r   rT   rU   r   rV   rY   r   r   r,   r-   r   r   r   r   test_bad_mime_type_async   s   "rg   )+__doc__r,   r"   rT    r   r   r   r   listTestTableItem__annotations__setup__file__globals
pytestmarkr   r&   r2   r3   r7   r:   r=   r?   r@   rB   rD   rE   rG   rI   rJ   rM   rP   rQ   rW   markasynciorZ   r\   r`   ra   rf   rg   r   r   r   r   <module>   sZ   	
								

	


