
    q[i&^                        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 dZd	Z	d
Z
dZ ej                  dd      Z ej                  dd      Zej                  j!                  ej                  j#                  ej                  j%                  e      d            Zej                  j+                  e      Zej                  j+                  ej                  j!                  ej                  j#                  ej                  j%                  e      d                  Zej                  j+                  ej                  j!                  ej                  j#                  ej                  j%                  e      d                  Z ej                  dd      Z ej                  dd      Z ej                  dd      Z ej8                  d ej:                  ed             ej8                  d ej:                  ed ej<                  dedddd d!d"d#d$ej>                  j@                  %      &      d'(       ej8                  d) ej:                  e ejB                  d*       ej<                  d+      ,             ej8                  d- ej:                  e ejB                  e.       ej<                  d+      ,             ej8                  d/ ej:                  e ejB                  d0e1       ej<                  d+      ,             ej8                  d2 ej:                  e ejB                   ejD                  d3d45      6       ej<                  de7      ,      d8(       ej8                  d9 ej:                  e ejB                  d: ejD                  d3d45      ;       ej<                  de7      ,      d8(       ej8                  d< ej:                  e
 ejB                  d= ejD                  d>d45      ;       ej<                  ed  ejF                  eejH                  jJ                  ?      @      ,      d'(       ej8                  dA ej:                  e	d ej<                  ddd d"d#d$B      &             ej8                  dC ej:                  ed ej<                  dd dDd#E      &             ej8                  dF ej:                  ed: ej<                  e ejL                  eejN                  jP                  G      gH      &      d8(      gZ)e*ej8                     e+dI<    ejX                  e e-       dJe)K      Z.dL Z/dM Z0dN Z1dO Z2dP Z3dQ Z4dR Z5dS Z6dT Z7dU Z8dV Z9dW Z:dX Z;dY Z<dZ Z=d[ Z>ej~                  j                  d\        ZAej~                  j                  d]        ZBy)^zTests for generate_videos.    N   )_replay_api_client)types   )pytest_helperzveo-3.1-generate-previewzveo-2.0-generate-001zveo-2.0-generate-expz!gs://genai-sdk-tests/temp/videos/z;gs://cloud-samples-data/vertex-ai/llm/prompts/landmark1.pngz	image/png)gcs_uri	mime_typez;gs://cloud-samples-data/vertex-ai/llm/prompts/landmark2.pngz../data/bridge1.png)locationz../data/man.jpgz../data/dog.jpgz:gs://genai-sdk-tests/inputs/videos/video_outpaint_mask.pngz8gs://genai-sdk-tests/inputs/videos/video_remove_mask.pngz?gs://genai-sdk-tests/inputs/videos/video_remove_static_mask.pngtest_simple_promptzMan with a dog)modelprompt)name
parameterstest_all_parameters_vertex-A neon hologram of a cat driving at top speed         16:9720pallow_adultzugly, low qualityT)number_of_videosoutput_gcs_urifpsduration_secondsseedaspect_ratio
resolutionperson_generationnegative_promptenhance_promptcompression_qualityr   r   configznot supported in Gemini API)r   r   exception_if_mldevtest_from_text_sourcer   r   r   sourcer$   test_from_image_source)imagetest_from_text_and_image_sourceLightning storm)r   r,   test_from_video_source2gs://genai-sdk-tests/inputs/videos/cat_driving.mp4	video/mp4urir	   )video)r   r   z7output_gcs_uri parameter is not supported in Gemini APItest_from_text_and_video_sourceRainr   r4   test_video_edit_outpaintA mountain landscape3gs://genai-sdk-tests/inputs/videos/editing_demo.mp4r,   	mask_moder   r   masktest_all_parameters_mldev)r   r   r   r   r    r!   test_all_parameters_veo3_mldev1080p)r   r   r   r    test_reference_to_videor,   reference_typer   reference_images
test_tablezmodels.generate_videos)fileglobals_for_filetest_methodrG   c                    | j                   j                  t        dt        j                  | j
                  rt        nd             }|j                  sV| j                  j                  dvrt        j                  d       | j                  j                  |      }|j                  sV|j                  j                  d   j                   j"                  sJ y Nr   r   r#   replayauto   	operationr   )modelsgenerate_videosVEO_MODEL_LATESTr   GenerateVideosConfigvertexaiOUTPUT_GCS_URIdone_api_client_modetimesleep
operationsgetresultgenerated_videosr4   r3   clientrS   s     g/mnt/data/GridWatch/venv/lib/python3.12/site-packages/google/genai/tests/models/test_generate_videos.pytest_text_to_video_pollrf   	  s    mm++<''+1?? , ) NN'99
jjn!!%%	%:I	 NN 
			*	*1	-	3	3	7	77	7    c                    | j                   j                  t        | j                  rt        nt
        t        j                  | j                  rt        nd             }|j                  sV| j                  j                  dvrt        j                  d       | j                  j                  |      }|j                  sV|j                   j"                  d   j$                  j&                  sJ y )NrM   )r   r,   r$   rN   rQ   rR   r   rT   rU   rV   rX   	GCS_IMAGELOCAL_IMAGEr   rW   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   r4   r3   rc   s     re   test_image_to_video_pollrl     s    mm++Ik''+1?? , ) NN'99
jjn!!%%	%:I	 NN 
			*	*1	-	3	3	7	77	7rg   c                    | j                   j                  t        d| j                  rt        nt
        t        j                  | j                  rt        nd             }|j                  sV| j                  j                  dvrt        j                  d       | j                  j                  |      }|j                  sV|j                   j"                  d   j$                  j&                  sJ y )Nr.   rM   r   r   r,   r$   rN   rQ   rR   r   ri   rc   s     re   !test_text_and_image_to_video_pollro   +  s    mm++Ik''+1??	 , ) NN'99
jjn!!%%	%:I	 NN 
			*	*1	-	3	3	7	77	7rg   c                    | j                   sy | j                  j                  t        t	        j
                  dd      t	        j                  t                    }|j                  sV| j                  j                  dvrt        j                  d       | j                  j                  |      }|j                  sV|j                  j                   d	   j"                  j$                  sJ y )
Nr0   r1   r2   rM   )r   r4   r$   rN   rQ   rR   r   rX   rT   rU   VEO_MODEL_2r   VideorW   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   r4   r3   rc   s     re   test_video_to_video_pollrt   =  s    	
mm++KKB ''' , 	) NN'99
jjn!!%%	%:I	 NN 
			*	*1	-	3	3	7	77	7rg   c                    | j                   sy | j                  j                  t        dt	        j
                  dd      t	        j                  t                    }|j                  sV| j                  j                  dvrt        j                  d       | j                  j                  |	      }|j                  sV|j                  j                   d
   j"                  j$                  sJ y )Nr6   r0   r1   r2   rM   r   r   r4   r$   rN   rQ   rR   r   rq   rc   s     re   !test_text_and_video_to_video_pollrw   U  s    	
mm++KKB ''' , 
) NN'99
jjn!!%%	%:I	 NN 
			*	*1	-	3	3	7	77	7rg   c                    | j                   ry | j                  j                  t        dt	        j
                  d            }|j                  sV| j                  j                  dvrt        j                  d       | j                  j                  |      }|j                  sV|j                  j                  d   j                  }|j                   sJ | j"                  j%                  |	       |j&                  sJ | j                  j                  t        d
|t	        j
                  d            }|j                  sV| j                  j                  dvrt        j                  d       | j                  j                  |      }|j                  sV|j                  j                  d   j                  }|j                   sJ | j"                  j%                  |	       |j&                  sJ y )Nr6   r   r(   r#   rN   rQ   rR   r   rH   Sunrv   rX   rT   rU   rV   r   rW   rZ   r[   r\   r]   r^   r_   r`   ra   rb   r4   r3   filesdownloadvideo_bytesrd   
operation1video1
operation2video2s        re   #test_generated_video_extension_pollr   n  s   __
}},,'' - * OO'99
jjn""&&&<J	 OO --a066&	,,V$				}},,''	 - * OO'99
jjn""&&&<J	 OO --a066&	,,V$				rg   c                    | j                   ry | j                  j                  t        dt	        j
                  d            }|j                  sV| j                  j                  dvrt        j                  d       | j                  j                  |      }|j                  sV|j                  j                  d   j                  }|j                   sJ | j"                  j%                  |	       |j&                  sJ | j                  j                  t        t	        j(                  d
|      t	        j
                  d            }|j                  sV| j                  j                  dvrt        j                  d       | j                  j                  |      }|j                  sV|j                  j                  d   j                  }|j                   sJ | j"                  j%                  |	       |j&                  sJ y Nr6   r   r(   r#   rN   rQ   rR   r   ry   rz   r7   r)   )rX   rT   rU   rV   r   rW   rZ   r[   r\   r]   r^   r_   r`   ra   rb   r4   r3   r|   r}   r~   GenerateVideosSourcer   s        re   /test_generated_video_extension_from_source_pollr     s   __
}},,'' - * OO'99
jjn""&&&<J	 OO --a066&	,,V$				}},,'' '' - 	* OO'99
jjn""&&&<J	 OO --a066&	,,V$				rg   c                    | j                   ry | j                  j                  t        dt	        j
                  d            }|j                  sV| j                  j                  dvrt        j                  d       | j                  j                  |      }|j                  sV|j                  j                  d   j                  }|j                   sJ | j"                  j%                  |	       |j&                  sJ | j                  j                  t        d
|dt	        j
                  d            }|j                  sV| j                  j                  dvrt        j                  d       | j                  j                  |      }|j                  sV|j                  j                  d   j                  }|j                   sJ | j"                  j%                  |	       |j&                  sJ y r   r{   r   s        re   4test_generated_video_extension_from_source_dict_pollr     s   __
}},,'' - * OO'99
jjn""&&&<J	 OO --a066&	,,V$				}},, '' - 	* OO'99
jjn""&&&<J	 OO --a066&	,,V$				rg   c           	         | j                   j                  t        d| j                  rt        nt
        t        j                  | j                  rt        nd | j                  rt        nt                    }|j                  sV| j                  j                  dvrt        j                  d       | j                   j#                  |      }|j                  sV|j$                  j&                  d   j(                  j*                  sJ y )Nr6   )r   
last_framern   rN   rQ   rR   r   )rT   rU   rV   rX   rj   LOCAL_IMAGE_MANr   rW   rY   
GCS_IMAGE2LOCAL_IMAGE_DOGrZ   r[   r\   r]   r^   r_   r`   ra   rb   r4   r3   rc   s     re   ,test_image_to_video_frame_interpolation_pollr     s    mm++Io''+1??#)??Z	 , ) NN'99
jjn!!%%	%:I	 NN 
			*	*1	-	3	3	7	77	7rg   c                 @   | j                   j                  t        dt        j                  | j
                  rt        nd t        j                  | j
                  rt        nt        t        j                  j                        g            }|j                  sV| j                  j                  dvrt        j                   d       | j"                  j%                  |      }|j                  sV|j&                  j(                  d   j*                  j,                  sJ y )	Nz#Chirping birds in a colorful forestrC   rE   r#   rN   rQ   rR   r   )rT   rU   rV   r   rW   rX   rY   VideoGenerationReferenceImagerj   r   VideoGenerationReferenceTypeASSETrZ   r[   r\   r]   r^   r_   r`   ra   rb   r4   r3   rc   s     re   #test_reference_images_to_video_pollr     s    mm++2''+1??11%+__	/!&!C!C!I!I , ) NN'99
jjn!!%%	%:I	 NN 
			*	*1	-	3	3	7	77	7rg   c                 n   | j                   sy | j                  j                  t        t	        j
                  dt	        j                  dd            t	        j                  t        dt	        j                  t        t        j                  j                              	      }|j                  sV| j                  j                  d
vrt!        j"                  d       | j$                  j'                  |      }|j                  sV|j(                  j*                  d   j,                  j.                  sJ y )Nr9   r:   r1   r2   r7   r   r;   r=   r)   rN   rQ   rR   r   )rX   rT   rU   VEO_MODEL_2_EXPr   r   rs   rW   rY   VideoGenerationMaskGCS_OUTPAINT_MASKVideoGenerationMaskModeOUTPAINTrZ   r[   r\   r]   r^   r_   r`   ra   rb   r4   r3   rc   s     re   test_video_edit_outpaint_pollr     s    	
mm++'''G# '''((%55>> , )$ NN'99
jjn!!%%	%:I	 NN 
			*	*1	-	3	3	7	77	7rg   c                 n   | j                   sy | j                  j                  t        t	        j
                  dt	        j                  dd            t	        j                  t        dt	        j                  t        t        j                  j                              	      }|j                  sV| j                  j                  d
vrt!        j"                  d       | j$                  j'                  |      }|j                  sV|j(                  j*                  d   j,                  j.                  sJ y NzA red dune buggyr:   r1   r2   r7   r   r;   r=   r)   rN   rQ   rR   r   )rX   rT   rU   r   r   r   rs   rW   rY   r   GCS_REMOVE_MASKr   REMOVErZ   r[   r\   r]   r^   r_   r`   ra   rb   r4   r3   rc   s     re   test_video_edit_remove_pollr   =  s    	
mm++''#G# '''((#55<< , )$ NN'99
jjn!!%%	%:I	 NN 
			*	*1	-	3	3	7	77	7rg   c                 n   | j                   sy | j                  j                  t        t	        j
                  dt	        j                  dd            t	        j                  t        dt	        j                  t        t        j                  j                              	      }|j                  sV| j                  j                  d
vrt!        j"                  d       | j$                  j'                  |      }|j                  sV|j(                  j*                  d   j,                  j.                  sJ y r   )rX   rT   rU   r   r   r   rs   rW   rY   r   GCS_REMOVE_STATIC_MASKr   REMOVE_STATICrZ   r[   r\   r]   r^   r_   r`   ra   rb   r4   r3   rc   s     re   "test_video_edit_remove_static_pollr   ]  s    	
mm++''#G# '''((*55CC , )$ NN'99
jjn!!%%	%:I	 NN 
			*	*1	-	3	3	7	77	7rg   c                 n   | j                   sy | j                  j                  t        t	        j
                  dt	        j                  dd            t	        j                  t        dt	        j                  t        t        j                  j                              	      }|j                  sV| j                  j                  d
vrt!        j"                  d       | j$                  j'                  |      }|j                  sV|j(                  j*                  d   j,                  j.                  sJ y )NBiker:   r1   r2   r7   r   r;   r=   r)   rN   rQ   rR   r   )rX   rT   rU   r   r   r   rs   rW   rY   r   r   r   INSERTrZ   r[   r\   r]   r^   r_   r`   ra   rb   r4   r3   rc   s     re   test_video_edit_insert_pollr   }  s    	
mm++''G# '''((#55<< , )& NN'99
jjn!!%%	%:I	 NN 
			*	*1	-	3	3	7	77	7rg   c                    | j                   rd}nd}t        j                  |      }| j                  j	                  |      }|j
                  sV| j                  j                  dvrt        j                  d       | j                  j	                  |      }|j
                  sV|j                  j                  d   j                  j                  sJ y )Nzprojects/<project>/locations/<location>/publishers/google/models/veo-3.1-generate-preview/operations/9d2fc0b5-5bdf-4b5f-9a41-82970515e20bz7models/veo-3.1-generate-preview/operations/vz341u0pmdlc)r   rR   rN   rQ   r   )rX   r   GenerateVideosOperationr_   r`   rZ   r[   r\   r]   r^   ra   rb   r4   r3   )rd   operation_namerS   s      re   test_create_operation_to_pollr     s    __ aNNN++) ##i#8)NN'99
jjn!!%%	%:I	 NN 
			*	*1	-	3	3	7	77	7rg   c                     t        j                  t              5  | j                  j	                  t
        dt        j                  d             d d d        y # 1 sw Y   y xY w)NzPrompt 1zPrompt 2r'   )r   r   r*   )pytestraises
ValueErrorrT   rU   rV   r   r   )rd   s    re   test_source_and_prompt_raisesr     sN    }}Z  
MM!!))< "   s   7AA#c                   K   | j                   j                  j                  t        dt	        j
                  | j                  rt        nd              d {   }|j                  sh| j                  j                  dvrt        j                  d       | j                   j                  j                  |       d {   }|j                  sh|j                  j                   d   j"                  j$                  sJ y 7 7 CwrL   )aiorT   rU   rV   r   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   r4   r3   rc   s     re   test_text_to_video_poll_asyncr     s     JJ%%55<''+1?? 6  ) NN'99
jjnjj++//)/DDI	 NN 
			*	*1	-	3	3	7	77	7 Es+   ADDA&D?D D1DDc                   K   | j                   ry | j                  j                  j                  t        dt        j                  d             d {   }|j                  sh| j                  j                  dvrt        j                  d       | j                  j                  j                  |       d {   }|j                  sh|j                  j                  d   j                   }|j"                  sJ | j                  j$                  j'                  |	       d {   sJ | j                  j                  j                  t        t        j(                  d
|      t        j                  d             d {   }|j                  sh| j                  j                  dvrt        j                  d       | j                  j                  j                  |       d {   }|j                  sh|j                  j                  d   j                   }|j"                  sJ | j                  j$                  j'                  |	       d {   sJ y 7 7 7 @7 7 ~7 wr   )rX   r   rT   rU   rV   r   rW   rZ   r[   r\   r]   r^   r_   r`   ra   rb   r4   r3   r|   r}   r   r   s        re   5test_generated_video_extension_from_source_poll_asyncr     s     __
ZZ&&66'' 7  * OO'99
jjnzz,,00:0FFJ	 OO --a066&	zz((f(5	5	55	5ZZ&&66'' '' 7 	 	* OO'99
jjnzz,,00:0FFJ	 OO --a066&	zz((f(5	5	55	5G G 
6	 G 
6s}   AI/I A&I/:I#;I/AI/&I&'AI/I)A&I/,I+-I/>AI/I-I/#I/&I/)I/+I/-I/)C__doc__osr]   r    r   r   r   rV   rr   r   rY   Imagerj   r   pathabspathjoindirname__file__IMAGE_FILE_PATH	from_filerk   r   r   r   r   r   TestTableItem_GenerateVideosParametersrW   VideoCompressionQualityLOSSLESSr   rs   r   r   r   r   r   r   rG   list__annotations__setupglobals
pytestmarkrf   rl   ro   rt   rw   r   r   r   r   r   r   r   r   r   r   r   markasyncior   r    rg   re   <module>r      sG  " ! 	   "  - $(4EKKI	 U[[I
 ''//GGLL*,AB kk##_#=++''WW__
RWW__X.0AB (  ++''WW__
RWW__X.0AB (   EKKH 
 %++F
 %M   M!2522"#
  M)2522"B-5--!"-!"#!"/ 3#$)$A$A$J$J
& *+0  M$2522"-5--5EF-5--!"
	  M%2522"-5--! .5--!"
  M.2522"-5--(! .5--!"	
  M%2522"-5--!ekkL) .5--!"-
 F!&  M.2522"-5--!ekkL) .5--!"-
 F#(  M'2522!-5---!ekkM) .5---#.U..+#;;DD
& *+0  M(2522B-5--!"!"#"/ 3#
  M-2522"B-5--!"#" 3		
  M&2522"-5---7E77'','I'I'O'O"
 F!}q1
D,,- qf !]  	Y(	
8"8"8$8082(V*Z*Z8&8.8@8@8@8B8( 8 8" (6 (6rg   