
    עi                      :   d Z ddlZddlmZ ddlm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	d
lmZ  G d dej                        Zej                  j!                  e	j"                  dd      d        Zej                  j!                  e	j"                  dd      d        Zej                  j!                  e	j"                  dd      d        Zej                  j!                  e	j"                  dd      d        Zej,                  j.                  ej                  j!                  e	j"                  dd      d               Zej,                  j.                  ej                  j!                  e	j"                  dd      d               Zej,                  j.                  ej                  j!                  e	j"                  dd      d               Zej,                  j.                  ej                  j!                  e	j"                  dd      d               Zy)zTest files register method.    N)mock)credentials   )_api_client)Client)types   )pytest_helperc                   F     e Zd Zd fd	Zed        Zed        Zd Z xZS )FakeCredentialsc                 Z    t         |           || _        || _        || _        d| _        y )Nr   )super__init__token_expired_quota_project_idrefresh_count)selfr   expiredquota_project_id	__class__s       g/sites/domain-asset-master/.venv/lib/python3.12/site-packages/google/genai/tests/files/test_register.pyr   zFakeCredentials.__init__"   s,    	GDJDM-DD    c                     | j                   S N)r   r   s    r   r   zFakeCredentials.expired)   s    ==r   c                     | j                   S r   )r   r   s    r   r   z FakeCredentials.quota_project_id-   s    !!!r   c                 J    | xj                   dz  c_         d| _        d| _        y )N   refreshed_tokenF)r   r   r   )r   requests     r   refreshzFakeCredentials.refresh1   s!    !"DJDMr   )
fake_tokenFN)	__name__
__module____qualname__r   propertyr   r   r"   __classcell__)r   s   @r   r   r       s5       " "r   r   _request_onceT)autospecc                    t        d      }d dfd	}|| _        t        j                  |t              5  |j
                  j                  t        d      dg      }t        |j
                        dk(  sJ |j
                  d	   j                  d
k(  sJ j                  d   dk(  sJ 	 d d d        y # 1 sw Y   y xY w)N	dummy_keyapi_keyc                 h    |t        j                  i t        j                  dddigi      g      S Nfilesuri	files/abcheadersresponse_streamr   HttpResponsejsondumpsr   http_requeststreamcaptured_requests      r   side_effectz&test_simple_token.<locals>.side_effect<   ;    ###W{/C.D$EFG r   
test_token)r    gs://test-bucket/test-file-1.txtauthurisr   r   r3   authorizationzBearer test_tokenF)r   r?   r
   exception_if_vertex
ValueErrorr1   register_filesr   lenr2   r5   )mock_requestclientr?   responser>   s       @r   test_simple_tokenrO   7   s    +&& ),((< L||**<001 + H
 x~~!###>>!  K///##O48KKKKL L Ls   A5B66B?c                    t        d      }d dfd	}|| _        t        j                  |t              5  t        d      }|j                  j                  |dg      }|j                  dk(  sJ t        |j                        dk(  sJ |j                  d	   j                  d
k(  sJ j                  d   dk(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr,   r-   c                 h    |t        j                  i t        j                  dddigi      g      S r0   r7   r;   s      r   r?   z'test_token_refresh.<locals>.side_effectV   r@   r   Tr   rB   rC   r   r   r3   rF   Bearer refreshed_tokenrG   )r   r?   r
   rH   rI   r   r1   rJ   r   rK   r2   r5   rL   rM   r?   credsrN   r>   s        @r   test_token_refreshrV   Q   s    +&& ),((< 	QD)E||**01 + H !###x~~!###>>!  K///##O48PPPP	Q 	Q 	Qs   BC		Cc                    t        d      }d dfd	}|| _        t        j                  |t              5  t        d      }|j                  j                  |dg      }t        |j                        dk(  sJ |j                  d	   j                  d
k(  sJ j                  d   dk(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr,   r-   c                 h    |t        j                  i t        j                  dddigi      g      S r0   r7   r;   s      r   r?   z'test_quota_project.<locals>.side_effectq   r@   r   test_projectr   rB   rC   r   r   r3   x-goog-user-projectrG   )r   r?   r
   rH   rI   r   r1   rJ   rK   r2   r5   rT   s        @r   test_quota_projectr\   l   s    +&& ),((< M^<E||**01 + H x~~!###>>!  K///##$9:nLLLM M Ms   A7B88Cc                    t        d      }dd}|| _        t        j                  |t              5  |j
                  j                  t               ddg      }t        |j
                        dk(  sJ |j
                  d   j                  d	k(  sJ |j
                  d
   j                  dk(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr,   r-   c           	      h    t        j                  i t        j                  dddiddigi      g      S Nr1   r2   r3   	files/defr4   r7   r   r<   r=   s      r   r?   z'test_multiple_uris.<locals>.side_effect   s=    ##JJ5+"68L!MNO
 r   rB    gs://test-bucket/test-file-2.txtrC   r	   r   r3   r   r`   rG   )
r   r?   r
   rH   rI   r1   rJ   r   rK   r2   rL   rM   r?   rN   s       r   test_multiple_urisrd      s    +&& ),((< 
0||**..
 + H x~~!###>>!  K///>>!  K///
0 
0 
0s   A>B::C_async_request_oncec                 ~  K   t        d      }d	d}|| _        t        j                  |t              5  |j
                  j                  j                  t               dg       d {   }t        |j                        dk(  sJ |j                  d   j                  dk(  sJ 	 d d d        y 7 F# 1 sw Y   y xY ww)
Nr,   r-   c                 j   K   t        j                  i t        j                  dddigi      g      S wr0   r7   ra   s      r   r?   z&test_async_single.<locals>.side_effect   s8     ##W{/C.D$EFG s   13rB   rC   r   r   r3   rG   r   r?   r
   rH   rI   aior1   rJ   r   rK   r2   rc   s       r   test_async_singlerj      s     
 +&& ),((< 0ZZ%%4401 5  H
 x~~!###>>!  K///0 00 0s.   2B=4B1(B/)<B1&	B=/B11B:6B=c                   K   t        d      }d dfd	}|| _        t        j                  |t              5  t        d      }|j                  j                  j                  |dg       d {   }|j                  dk(  sJ t        |j                        dk(  sJ |j                  d	   j                  d
k(  sJ j                  d   dk(  sJ 	 d d d        y 7 k# 1 sw Y   y xY ww)Nr,   r-   c                 p   K   |t        j                  i t        j                  dddigi      g      S wr0   r7   r;   s      r   r?   z-test_async_token_refresh.<locals>.side_effect   ?     ###W{/C.D$EFG    36TrR   rB   rC   r   r   r3   rF   rS   rG   )r   r?   r
   rH   rI   r   ri   r1   rJ   r   rK   r2   r5   rT   s        @r   test_async_token_refreshro      s     
 +&& ),((< 	QD)EZZ%%4401 5  H !###x~~!###>>!  K///##O48PPPP	Q 	Q	Q 	Qs/   6C+8C1C2A!C	C+CC($C+c                   K   t        d      }d dfd	}|| _        t        j                  |t              5  t        d      }|j                  j                  j                  |dg       d {   }t        |j                        dk(  sJ |j                  d	   j                  d
k(  sJ j                  d   dk(  sJ 	 d d d        y 7 Z# 1 sw Y   y xY ww)Nr,   r-   c                 p   K   |t        j                  i t        j                  dddigi      g      S wr0   r7   r;   s      r   r?   z-test_async_quota_project.<locals>.side_effect   rm   rn   rY   rZ   rB   rC   r   r   r3   r[   rG   )r   r?   r
   rH   rI   r   ri   r1   rJ   rK   r2   r5   rT   s        @r   test_async_quota_projectrr      s     
 +&& ),((< M^<EZZ%%4401 5  H x~~!###>>!  K///##$9:nLLLM MM Ms/   6C8C1C2AC	CCCCc                   K   t        d      }dd}|| _        t        j                  |t              5  |j
                  j                  j                  t               ddg       d {   }t        |j                        dk(  sJ |j                  d   j                  d	k(  sJ |j                  d
   j                  dk(  sJ 	 d d d        y 7 d# 1 sw Y   y xY ww)Nr,   r-   c           	      p   K   t        j                  i t        j                  dddiddigi      g      S wr_   r7   ra   s      r   r?   z-test_async_multiple_uris.<locals>.side_effect   sA     ##JJ5+"68L!MNO
 s   46rB   rb   rC   r	   r   r3   r   r`   rG   rh   rc   s       r   test_async_multiple_urisru      s     
 +&& ),((< 
0ZZ%%44..
 5  H x~~!###>>!  K///>>!  K///
0 
0
0 
0s/   2C5C)C*AC	CCCC)__doc__r9   unittestr   google.authr   httpxpytest r   r   r   r
   Credentialsr   patchobjectBaseApiClientrO   rV   r\   rd   markasynciorj   ro   rr   ru    r   r   <module>r      s%  " "   #      k-- . ;,,oML NL2 ;,,oMQ NQ4 ;,,oMM NM2 ;,,oM0 N04 4t  0 0* 4t  Q Q4 4t  M M2 4t  0 0r   