o
    i                     @   sX  U d Z ddlZddlmZ ddlZddlmZ ddlmZ dZej	
ej	ej	ed	Zejd
dejeejjeddddejddejeejjeddejdejjejjddddddidddejddejeejjeddejddddgZeej ed< ejee dedZdd  Zejj d!d" Z!ejj d#d$ Z"ejj d%d& Z#dS )'zTests for upscale_image.    N)ValidationError   )types   )pytest_helperzimagen-4.0-upscale-previewz../data/bridge1.pngtest_upscale_no_configz&only supported in the Vertex AI clientlocationx2)modelimageupscale_factor)nameexception_if_mldev
parameterstest_upscaleT
image/jpegP   333333?imagen_label_keyupscale_image)include_rai_reasonperson_generationsafety_filter_leveloutput_mime_typeoutput_compression_qualityenhance_input_imageimage_preservation_factorlabelsr   r   r   configtest_upscale_gcs!gs://genai-sdk-tests/temp/images/output_gcs_uri
test_tablezmodels.upscale_image)fileglobals_for_filetest_methodr%   c              
   C   sn   z| j jttjjtdddddd J  ty6 } zt|t	s#J dt
|v s+J W Y d }~d S d }~ww 	Nr   r
   upscale   )modenumber_of_imagesr   FzExtra inputs are not permitted)modelsr   IMAGEN_MODEL_LATESTr   Image	from_fileIMAGE_FILE_PATH	Exception
isinstancer   strcliente r9   `/home/ubuntu/.local/lib/python3.10/site-packages/google/genai/tests/models/test_upscale_image.py$test_upscale_extra_config_parametersS   s   
r;   c                    s   t | t3 | jjjttjj	t
ddtjtjjtjjdddddddI d H }|jd	 jjs2J W d    d S 1 s=w   Y  d S )
Nr   r
   Tr   r   r   )r   r   r   r   r   r   r   r   r   )r   r   
ValueErroraior.   r   r/   r   r0   r1   r2   UpscaleImageConfigPersonGenerationALLOW_ADULTSafetyFilterLevelBLOCK_LOW_AND_ABOVEgenerated_imagesr   image_bytesr7   responser9   r9   r:   test_upscale_asynch   s$   "rG   c                    st   t | t) | jjjttjj	t
ddtjdddI d H }|jd jjs(J W d    d S 1 s3w   Y  d S )Nr   r
   r"   r#   r   r   )r   r   r<   r=   r.   r   r/   r   r0   r1   r2   r>   rC   r   gcs_urirE   r9   r9   r:   test_upscale_gcs_async|   s   "rI   c              
      sx   z| j jjttjjtddddddI d H  J  ty; } zt	|t
s(J dt|v s0J W Y d }~d S d }~ww r)   )r=   r.   r   r/   r   r0   r1   r2   r3   r4   r   r5   r6   r9   r9   r:   *test_upscale_extra_config_parameters_async   s    
rJ   )$__doc__ospydanticr   pytest r   r   r/   pathabspathjoindirname__file__r2   TestTableItemUpscaleImageParametersr0   r1   r>   r?   r@   rA   rB   r%   list__annotations__setupglobals
pytestmarkr;   markasynciorG   rI   rJ   r9   r9   r9   r:   <module>   s   	*

