a
    !f]/                     @   s.   d dl Z G dd de jZG dd deZdS )    Nc                   @   s   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zd S )!
TestClientzabc-123-my-keyc                 C   s   ddl m} |S )Nr   )Client)gcloud.translate.clientr   )selfr    r   ]/var/www/html/python-backend/venv/lib/python3.9/site-packages/gcloud/translate/test_client.py_getTargetClass   s    zTestClient._getTargetClassc                 O   s   |   |i |S N)r   )r   argskwr   r   r   _makeOne   s    zTestClient._makeOnec                 C   sr   ddl m} ddlm} t }| j| j|d}| t|j	| | 
|j	j | |j	j|u  | |j| d S )Nr   
ConnectionENGLISH_ISO_639)http)gcloud.translate.connectionr   r   r   objectr   KEY
assertTrue
isinstance
connectionassertIsNonecredentialsr   assertEqualtarget_language)r   r   r   r   clientr   r   r   	test_ctor   s    zTestClient.test_ctorc                 C   sl   ddl m} t }d}| j| j||d}| t|j| | |jj	 | |jj
|u  | |j| d S )Nr   r   es)r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   targetr   r   r   r   test_ctor_non_default(   s    z TestClient.test_ctor_non_defaultc                 C   s   ddl m} | | j}dddddddd	dg}d
d|ii}t| }|_| }| || | t|j	d |j	d }| |d d | |d d | |d | j|d d S )Nr   r   enZEnglishlanguagenameaf	AfrikaansamAmharicdata	languages   methodGETpath
/languagesquery_paramskeyr   )
r   r   r   r   _Connectionr   get_languagesr   len
_requested)r   r   r   	supportedr)   connresultreqr   r   r   test_get_languages3   s(    


zTestClient.test_get_languagesc                 C   s   | j | jd d}ddiddiddig}dd|ii}t| }|_| }| || | t|jd |jd	 }| |d
 d | |d d | |d d| ji d S )N)r   r#   r!   r%   r'   r)   r*   r+   r   r,   r-   r.   r/   r0   r2   r   r   r3   r   r4   r   r5   r6   )r   r   r7   r)   r8   r9   r:   r   r   r   test_get_languages_no_targetN   s"    
z'TestClient.test_get_languages_no_targetc                 C   s   |  | j}d}dddddddddg}dd	|ii}t| }|_||}| || | t|jd
 |jd }| |d d | |d d | |d | j|d d S )Nr!   ZSpanishr"   r%   r&   r'   r(   r)   r*   r+   r   r,   r-   r.   r/   r0   r1   r<   )r   r   r   r7   r)   r8   r9   r:   r   r   r   "test_get_languages_explicit_targetf   s(    



z-TestClient.test_get_languages_explicit_targetc                 C   s   |  | j}d}ti  }|_| t || W d    n1 sH0    Y  | t|j	d |j	d }| |d d | |d d d| jfd	|
d
fg}| |d | d S )Ntakoyr+   r   r,   r-   r.   /detectr2   qutf-8r0   )r   r   r3   r   assertRaises
ValueErrordetect_languager   r5   r6   encoder   r   valuer8   r:   r0   r   r   r   test_detect_language_bad_result   s    (
z*TestClient.test_detect_language_bad_resultc           	      C   s   |  | j}d}d|ddd}dd|ggii}t| }|_||}| || | t|jd |jd	 }| |d
 d | |d d d| jfd|dfg}| |d | d S )Nr?   g      ?ruF
confidenceinputr#   
isReliabler)   
detectionsr+   r   r,   r-   r.   r@   r2   rA   rB   r0   	r   r   r3   r   rE   r   r5   r6   rF   )	r   r   rH   Z	detectionr)   r8   r9   r:   r0   r   r   r   !test_detect_language_single_value   s,    

z,TestClient.test_detect_language_single_valuec                 C   s   |  | j}d}d|ddd}d}d|ddd}d	d
|g|ggii}t| }|_|||g}| |||g | t|jd |jd }	| |	d d | |	d d d| jfd|dfd|dfg}
| |	d |
 d S )Nu   façadeg{ՙ1?Fr!   )rL   rM   rN   r#   zs'il vous plaitg[[!?frr)   rO   r+   r   r,   r-   r.   r@   r2   rA   rB   r0   rP   )r   r   value1
detection1value2
detection2r)   r8   r9   r:   r0   r   r   r   $test_detect_language_multiple_values   s@    
z/TestClient.test_detect_language_multiple_valuesc                 C   s   |  | j}d}d|ddd}d|ddd}dd	||ggii}t||_| t || W d    n1 sr0    Y  d S )
NZsoyg@`(?r   FrK   g"~j?r!   r)   rO   )r   r   r3   r   rC   rD   rE   )r   r   rH   rT   rV   r)   r   r   r   %test_detect_language_multiple_results   s&    

z0TestClient.test_detect_language_multiple_resultsc                 C   s   |  | j}d}ti  }|_| t || W d    n1 sH0    Y  | t|j	d |j	d }| |d d | |d d d| jfd	d
|
dfg}| |d | d S )Nhvala tir+   r   r,   r-   r.    r2   r   r!   rA   rB   r0   )r   r   r3   r   rC   rD   	translater   r5   r6   rF   rG   r   r   r   test_translate_bad_result   s    (
z$TestClient.test_translate_bad_resultc           	      C   s   |  | j}d}dd|d}dd|gii}t| }|_||}| || | t|jd |jd }| |d	 d
 | |d d d| jfdd|dfg}| |d | d S )NrY   hr	thank youZdetectedSourceLanguagetranslatedTextrM   r)   translationsr+   r   r,   r-   r.   rZ   r2   r[   rA   rB   r0   	r   r   r3   r   r\   r   r5   r6   rF   )	r   r   rH   translationr)   r8   r9   r:   r0   r   r   r   test_translate_defaults  s,    

z"TestClient.test_translate_defaultsc                 C   s   |  | j}d}dd|d}d}dd|d}dd||gii}t| }|_|||g}| |||g | t|jd	 |jd
 }	| |	d d | |	d d d| jfdd|dfd|dfg}
| |	d |
 d S )NrY   r^   r_   r`   Dankoneor)   rb   r+   r   r,   r-   r.   rZ   r2   r[   rA   rB   r0   rc   )r   r   rS   Ztranslation1rU   Ztranslation2r)   r8   r9   r:   r0   r   r   r   test_translate_multiple%  s8    
z"TestClient.test_translate_multiplec                 C   s   |  | j}d}d}d}d|d}dd|gii}t| }|_d}d	}	|j||||	|d
}
| |
| | t|jd |jd }| |d d | |d d d| jfd|fd|dfd|fd|	fd|fg}| |d | d S )Nr_   rg   r!   rf   )ra   rM   r)   rb   Z123text)r   source_languageformat_Zcustomization_idsr+   r   r,   r-   r.   rZ   r2   r   rA   rB   cidformatsourcer0   rc   )r   r   rH   r   rj   rd   r)   r8   rl   rk   r9   r:   r0   r   r   r   test_translate_explicitJ  s>    
z"TestClient.test_translate_explicitN)__name__
__module____qualname__r   r   r   r   r    r;   r=   r>   rI   rQ   rW   rX   r]   re   rh   ro   r   r   r   r   r      s    )%r   c                   @   s   e Zd Zdd Zdd ZdS )r3   c                 G   s   || _ g | _d S r	   )
_responsesr6   )r   	responsesr   r   r   __init__s  s    z_Connection.__init__c                 K   s,   | j | | jd | jdd   }| _|S )Nr   r+   )r6   appendrs   )r   r   responser   r   r   api_requestw  s    z_Connection.api_requestN)rp   rq   rr   ru   rx   r   r   r   r   r3   q  s   r3   )Z	unittest2ZTestCaser   r   r3   r   r   r   r   <module>   s     a