U
    h                     @  s   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ dd	d
ddddddZG dd dejZG dd dejZedkre  dS )    )annotations)mock)absltest)
exceptions)text)
text_model)modelNstr
str | Nonefloat | None
int | Nonetext.Completionpromptr   temperaturecandidate_countreturnc              
   C  s2   t j| |||d|  did|id|id|igdS )NoutputZ_1)r   r   r   r   
candidates)r   Z
Completionr   r   r   r    r   P/tmp/pip-unpacked-wheel-doshhd5e/google/generativeai/notebook/text_model_test.py_fake_generator   s    r   c                   @  s(   e Zd ZdZdddddddd	d
ZdS )	TestModelz1A TextModel, but with _generate_text stubbed out.Nr	   r
   r   r   r   r   c                 K  s   t ||||dS )Nr   )r   )selfr   r   r   r   kwargsr   r   r   _generate_text3   s    zTestModel._generate_text)NNN)__name__
__module____qualname____doc__r   r   r   r   r   r   0   s
      r   c                   @  s   e Zd Zdd Zdd ZdS )TextModelTestCasec                 C  s   t  }|d}| |jd d | |jd  | |jd  | |jd  tjddd	d
}|d|}| |jd d | |jd d | |jd d | |jd d	 d S )Nzprompt goes inr   zprompt goes in_1         Z
model_namegzG?   )r   r   r   )r   
call_modelassertEqualZtext_resultsZassertIsNone	model_libZModelArguments)r   r   resultargsr   r   r   test_generate_textE   s     
  z$TextModelTestCase.test_generate_textc              	   C  sN   t  }tj|d"}tdtjg|_|d}W 5 Q R X | 	|j
d d S )Nr   z
Over quotazphew it workedr#   )r   r   patchobjectr   ZResourceExhaustedDEFAULTZside_effectr&   r'   Z
call_count)r   r   Zerroneous_generator_r   r   r   
test_retryW   s    zTextModelTestCase.test_retryN)r   r   r   r+   r0   r   r   r   r   r!   C   s   r!   __main__)NNN)
__future__r   Zunittestr   Zabsl.testingr   Zgoogle.api_corer   Zgoogle.generativeair   Zgoogle.generativeai.notebookr   Z google.generativeai.notebook.libr   r(   r   Z	TextModelr   ZTestCaser!   r   mainr   r   r   r   <module>   s      "