
    p[i                     d    d Z ddlZddlmZ ddlmZ d Zd Zd Zd	 Zd
 Z	d Z
d Zd Zd Zd Zy)z0Tests for client behavior when issuing requests.    N   )_api_client)typesc                     t        j                  ddddidddiddid	d
it        j                  d      t         j                  j                  	      } t        j                         }t        j                  ||       }t         j                  j                  j                         }|D ]#  }t        ||      sJ |dvst        ||      #J  |j                  dk(  sJ |j                  dk(  sJ |j                  d   dk(  sJ |j                  dk(  sJ |j                  j                   dk(  sJ |j"                  d   sJ |j$                  d   sJ y )Nhttps://fake-url.com/v1X-Custom-Headercustom_value'  http2Thttp1keyvalue
   )attempts)	base_urlapi_versionheaderstimeoutclient_argsasync_client_args
extra_bodyretry_optionsbase_url_resource_scope)httpx_clienthttpx_async_clientaiohttp_client)r   HttpOptionsHttpRetryOptionsResourceScope
COLLECTIONr   patch_http_optionsmodel_fieldskeyshasattrgetattrr   r   r   r   r   r   r   r   )patch_optionsoptionspatchedhttp_options_keysr   s        d/mnt/data/GridWatch/venv/lib/python3.12/site-packages/google/genai/tests/client/test_http_options.py.test_patch_http_options_with_copies_all_fieldsr,      sk   ##& .1D/ $!**B7#11<<
- '**7MB'''4499; /c7C   
  
 Wc".../ 
		4	44	4				$$	$	*	+~	==	=	E	!!	!				'	'2	--	-			W	%%	%		"	"7	++	+    c                  N   t        j                  ddd      } t        j                  ddddid	      }t        j                  | |      }|j                  d   dk(  sJ |j                  d
   dk(  sJ |j
                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ y )Ndifferent_valuer	   X-different-headerr   r   r   r	   r
   r   r   r   r   r   r1   )r   r   r   r"   r   r   r   r   original_optionsr'   r)   s      r+   &test_patch_http_options_merges_headersr6   :   s    &&. 1 ##& .1	- **+;]K' 
*	+~	==	=	-	.2C	CC	C			4	44	4				$$	$	E	!!	!r-   c                      t        j                  ddd      } t        j                  ddddid	      }t        j                  | |      }d
|j                  v sJ d|j                  v sJ y )Nr/   r0   r2   r   r   r	   r
   r   r3   z
user-agentzx-goog-api-client)r   r   r   r"   r   r4   s      r+   /test_patch_http_options_appends_version_headersr8   Q   sz    &&. 1 ##& .1	- **+;]K'		((	(		//	/r-   c                      t        j                  ddt        j                  d            } | j	                  ddi       }d	|j
                  v sJ |j
                  d	   d
k(  sJ y )NFtest_api_keyr   r   )vertexaiapi_keyhttp_optionsPOSTsample/pathhttp_methodpathrequest_dictX-Server-Timeout10r   BaseApiClientr   r   _build_requestr   
api_clientrequests     r+   4test_setting_timeout_populates_server_timeout_headerrM   c   sr    (($$U3*
 %% & '
 
w	..	.	+	,	44	4r-   c                      t        j                  dd      } t        j                  d      }| j	                  ddi |      }|j
                  d	   d
k(  sJ y )NFr:   r<   r=   i  r;   r?   r@   rB   rC   rD   r>   rE   8rG   rK   r>   rL   s      r+   &test_timeout_rounded_to_nearest_secondrS   r   se    ((* ""40,%%	 & ' 
+	,	33	3r-   c                      t        j                  dd      } t        j                  ddid      }| j	                  dd	i |
      }|j
                  d   dk(  sJ y )NFr:   rO   rE   3i*  )r   r   r?   r@   rP   rG   rR   s      r+   #test_server_timeout_not_overwrittenrV      sr    ((* ""!3', %%	 & ' 
+	,	33	3r-   c                  z    t        j                  dd      } | j                  ddi       }d|j                  vsJ y )NFr:   rO   r?   r@   rA   rE   )r   rH   rI   r   rJ   s     r+   &test_server_timeout_not_set_by_defaultrX      sL    ((* %% & '
  7??222r-   c                      t        j                  t              5  t        j                  dt        j                  t
        j                  j                               d d d        y # 1 sw Y   y xY w)NT)r   r<   r>   )	pytestraises
ValueErrorr   rH   r   r   r    r!    r-   r+   1test_resource_scope_without_base_url_raises_errorr_      sQ    }}Z  &&$)$7$7$B$B
  s   AA''A0c                      t        j                  dt        j                  d            } | j                  j
                  J y )NTr   )r   rZ   )r   rH   r   r   _http_optionsr   )rK   s    r+   /test_base_url_resource_scope_not_set_by_defaultrb      s@    (($$** 
	!	!	9	9	AA	Ar-   c                  H    t        j                         } | j                  J y )N)r   r   r   )r(   s    r+   %test_retry_options_not_set_by_defaultrd      s"    '				&&	&r-   )__doc__r[    r   r   r,   r6   r8   rM   rS   rV   rX   r_   rb   rd   r^   r-   r+   <module>rg      sG   " 7   ,B".0$544"
3B'r-   