
    hj                         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                            e	j        dd          d             Zej                            e	j        dd          d             Zej                            e	j        dd          d             Zej                            e	j        dd          d             Zej        j        ej                            e	j        dd          d                         Zej        j        ej                            e	j        dd          d                         Zej        j        ej                            e	j        dd          d                         Zej        j        ej                            e	j        dd          d                         ZdS )zTest files register method.    N)mock)credentials   )_api_client)Client)types   )pytest_helperc                   R     e Zd Zd fd	Zed             Zed             Zd Z xZS )	FakeCredentials
fake_tokenFNc                     t                                                       || _        || _        || _        d| _        d S )Nr   )super__init__token_expired_quota_project_idrefresh_count)selfr   expiredquota_project_id	__class__s       j/var/www/app.qaans.com/backend/venv/lib/python3.11/site-packages/google/genai/tests/files/test_register.pyr   zFakeCredentials.__init__"   s=    	GG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                 B    | xj         dz  c_         d| _        d| _        d S )N   refreshed_tokenF)r   r   r   )r   requests     r   refreshzFakeCredentials.refresh1   s(    !"DJDMMMr   )r   FN)	__name__
__module____qualname__r   propertyr   r   r#   __classcell__)r   s   @r   r   r       s                8 " " 8"      r   r   _request_onceT)autospecc                    t          d          }d dfd	}|| _        t          j        |t                    5  |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            d S # 1 swxY w Y   d S )N	dummy_keyapi_keyFc                 d    |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<   C    ##W{/C.D$EF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   sQ   +&&&&      ),(<< L L|**<00001 +  H
 x~!####>! K////#O48KKKKKKL L L L L L L L L L L L L L L L L Ls   A1B::B>B>c                    t          d          }d dfd	}|| _        t          j        |t                    5  t          d          }|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            d S # 1 swxY w Y   d S )Nr,   r-   Fc                 d    |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   sj   +&&&&      ),(<< 	Q 	QD)))E|**01 +  H !####x~!####>! K////#O48PPPPPP	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Qs   B C		CCc                    t          d          }d dfd	}|| _        t          j        |t                    5  t          d          }|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            d S # 1 swxY w Y   d S )Nr,   r-   Fc                 d    |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   sV   +&&&&      ),(<< M M^<<<E|**01 +  H x~!####>! K////#$9:nLLLLLM M M M M M M M M M M M M M M M M Ms   A3B<<C C c                    t          d          }dd}|| _        t          j        |t                    5  |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            d S # 1 swxY w Y   d S )Nr,   r-   Fc           	      d    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   sE    #J5+"68L!MNO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 
0|**..
 +  H x~!####>! K////>! K/////
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0s   A5B99B= B=_async_request_oncec                 t  K   t          d          }d
d}|| _        t          j        |t                    5  |j        j                            t                      dg           d {V }t          |j                  dk    sJ |j        d         j
        d	k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr,   r-   Fc                 b   K   t          j        i t          j        dddigi          g          S r0   r7   ra   s      r   r?   z&test_async_single.<locals>.side_effect   s@      #W{/C.D$EFFG   r   rB   rC   r    r   r3   rG   r   r?   r
   rH   rI   aior1   rJ   r   rK   r2   rc   s       r   test_async_singlerj      s4     
 +&&&&    ),(<< 0 0Z%4401 5        H
 x~!####>! K/////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   A'B--B14B1c                   K   t          d          }d dfd	}|| _        t          j        |t                    5  t          d          }|j        j                            |dg           d {V }|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            d S # 1 swxY w Y   d S )Nr,   r-   Fc                 h   K   |t          j        i t          j        dddigi          g          S r0   r7   r;   s      r   r?   z-test_async_token_refresh.<locals>.side_effect   G      ##W{/C.D$EFFG   r   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_refreshrn      s     
 +&&&&      ),(<< 	Q 	QD)))EZ%4401 5        H !####x~!####>! K////#O48PPPPPP	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Qs   BCCCc                   K   t          d          }d dfd	}|| _        t          j        |t                    5  t          d          }|j        j                            |dg           d {V }t          |j                  d	k    sJ |j        d
         j
        dk    sJ j        d         dk    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr,   r-   Fc                 h   K   |t          j        i t          j        dddigi          g          S r0   r7   r;   s      r   r?   z-test_async_quota_project.<locals>.side_effect   rm   r   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_projectrq      s}     
 +&&&&      ),(<< M M^<<<EZ%4401 5        H x~!####>! K////#$9:nLLLLLM M M M M M M M M M M M M M M M M Ms   A>C		CCc                   K   t          d          }dd}|| _        t          j        |t                    5  |j        j                            t                      ddg           d {V }t          |j                  dk    sJ |j        d	         j
        d
k    sJ |j        d         j
        dk    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr,   r-   Fc           	      h   K   t          j        i t          j        dddiddigi          g          S r_   r7   ra   s      r   r?   z-test_async_multiple_uris.<locals>.side_effect   sI      #J5+"68L!MNOO
   r   rB   rb   rC   r	   r   r3   r    r`   rG   rh   rc   s       r   test_async_multiple_urisrt      sT     
 +&&&&    ),(<< 
0 
0Z%44..
 5        H x~!####>! K////>! K/////
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0s   B CC
C
)__doc__r9   unittestr   google.authr   httpxpytest r   r   r   r
   Credentialsr   patchobjectBaseApiClientrO   rV   r\   rd   markasynciorj   rn   rq   rt    r   r   <module>r      s  " " !        # # # # # #                              k-   . ;,oMML L NML2 ;,oMMQ Q NMQ4 ;,oMMM M NMM2 ;,oMM0 0 NM04 4t   0 0  0* 4t   Q Q  Q4 4t   M M  M2 4t   0 0  0 0 0r   