o
    i                      @   sz  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 dejZejje	jddddd Zejje	jddddd Zejje	jddddd Zejje	jddddd Zejjejje	jddddd Zejjejje	jddddd Zejjejje	jddddd Zejjejje	jddddd  ZdS )!zTest files register method.    N)mock)credentials   )_api_client)Client)types   )pytest_helperc                       s>   e Zd Zd fdd	Zedd Zedd	 Zd
d Z  ZS )FakeCredentials
fake_tokenFNc                    s&   t    || _|| _|| _d| _d S )Nr   )super__init__token_expired_quota_project_idrefresh_count)selfr   expiredquota_project_id	__class__ d/home/ubuntu/transcripts/venv/lib/python3.10/site-packages/google/genai/tests/files/test_register.pyr   "   s
   

zFakeCredentials.__init__c                 C      | j S N)r   r   r   r   r   r   )      zFakeCredentials.expiredc                 C   r   r   )r   r   r   r   r   r   -   r   z FakeCredentials.quota_project_idc                 C   s   |  j d7  _ d| _d| _d S )N   refreshed_tokenF)r   r   r   )r   requestr   r   r   refresh1   s   
zFakeCredentials.refresh)r   FN)	__name__
__module____qualname__r   propertyr   r   r    __classcell__r   r   r   r   r
       s    

r
   _request_onceT)autospecc                    s   t dd}d  d fdd	}|| _t|t1 |jjtdddgd	}t|jd
ks-J |jd j	dks7J  j
d dks@J W d    d S 1 sKw   Y  d S )N	dummy_keyapi_keyFc                    $   | t ji tdddigigdS Nfilesuri	files/abcheadersresponse_streamr   HttpResponsejsondumpsr   http_requeststreamcaptured_requestr   r   side_effect<   
   z&test_simple_token.<locals>.side_effect
test_token)r    gs://test-bucket/test-file-1.txtauthurisr   r   r/   authorizationzBearer test_tokenF)r   r<   r	   exception_if_vertex
ValueErrorr-   register_filesr
   lenr.   r1   mock_requestclientr<   responser   r:   r   test_simple_token7   s   
"rM   c                    s   t dd}d  d fdd	}|| _t|t: tdd}|jj|dgd	}|jd
ks-J t	|jd
ks6J |jd j
dks@J  jd dksIJ W d    d S 1 sTw   Y  d S )Nr(   r)   Fc                    r+   r,   r3   r7   r:   r   r   r<   V   r=   z'test_token_refresh.<locals>.side_effectTr   r?   r@   r   r   r/   rC   Bearer refreshed_tokenrD   )r   r<   r	   rE   rF   r
   r-   rG   r   rH   r.   r1   rJ   rK   r<   credsrL   r   r:   r   test_token_refreshQ   s   

"rR   c                    s   t dd}d  d fdd	}|| _t|t3 tdd}|jj|dgd	}t|jd
ks/J |jd j	dks9J  j
d dksBJ W d    d S 1 sMw   Y  d S )Nr(   r)   Fc                    r+   r,   r3   r7   r:   r   r   r<   q   r=   z'test_quota_project.<locals>.side_effecttest_projectr   r?   r@   r   r   r/   x-goog-user-projectrD   )r   r<   r	   rE   rF   r
   r-   rG   rH   r.   r1   rP   r   r:   r   test_quota_projectl   s   

"rV   c                 C   s   t dd}ddd}|| _t|t1 |jjt ddgd}t|jd	ks(J |jd
 j	dks2J |jd j	dks<J W d    d S 1 sGw   Y  d S )Nr(   r)   Fc                 S   s&   t ji tdddiddigigdS Nr-   r.   r/   	files/defr0   r3   r7   r   r   r   r<      s
   z'test_multiple_uris.<locals>.side_effectr?    gs://test-bucket/test-file-2.txtr@   r   r   r/   r   rX   rD   )
r   r<   r	   rE   rF   r-   rG   r
   rH   r.   rI   r   r   r   test_multiple_uris   s   

"rZ   _async_request_oncec                    s   t dd}ddd}|| _t|t* |jjjt dgdI d H }t	|jdks,J |jd	 j
d
ks6J W d    d S 1 sAw   Y  d S )Nr(   r)   Fc                    s"   t ji tdddigigdS r,   r3   r7   r   r   r   r<      s
   z&test_async_single.<locals>.side_effectr?   r@   r   r   r/   rD   r   r<   r	   rE   rF   aior-   rG   r
   rH   r.   rI   r   r   r   test_async_single   s   

"r^   c                    s   t dd}d  d fdd	}|| _t|t> tdd}|jjj|dgd	I d H }|j	d
ks2J t
|jd
ks;J |jd jdksEJ  jd dksNJ W d    d S 1 sYw   Y  d S )Nr(   r)   Fc                    &   | t ji tdddigigdS r,   r3   r7   r:   r   r   r<         z-test_async_token_refresh.<locals>.side_effectTrN   r?   r@   r   r   r/   rC   rO   rD   )r   r<   r	   rE   rF   r
   r]   r-   rG   r   rH   r.   r1   rP   r   r:   r   test_async_token_refresh   s    

"ra   c                    s   t dd}d  d fdd	}|| _t|t7 tdd}|jjj|dgd	I d H }t	|jd
ks4J |jd j
dks>J  jd dksGJ W d    d S 1 sRw   Y  d S )Nr(   r)   Fc                    r_   r,   r3   r7   r:   r   r   r<      r`   z-test_async_quota_project.<locals>.side_effectrS   rT   r?   r@   r   r   r/   rU   rD   )r   r<   r	   rE   rF   r
   r]   r-   rG   rH   r.   r1   rP   r   r:   r   test_async_quota_project   s   

"rb   c                    s   t dd}ddd}|| _t|t5 |jjjt ddgdI d H }t	|jd	ks-J |jd
 j
dks7J |jd j
dksAJ W d    d S 1 sLw   Y  d S )Nr(   r)   Fc                    s(   t ji tdddiddigigdS rW   r3   r7   r   r   r   r<      s   z-test_async_multiple_uris.<locals>.side_effectr?   rY   r@   r   r   r/   r   rX   rD   r\   rI   r   r   r   test_async_multiple_uris   s   

"rc   )__doc__r5   unittestr   google.authr   httpxpytest r   r   r   r	   Credentialsr
   patchobjectBaseApiClientrM   rR   rV   rZ   markasyncior^   ra   rb   rc   r   r   r   r   <module>   sN   



