a
    ù!f@#  ã                   @   s>   d dl Z G dd„ de jƒZG dd„ deƒZG dd„ deƒZdS )é    Nc                   @   sd   e Zd 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S )Ú
TestClientÚPROJECTz	zone-namec                 C   s   ddl m} |S )Nr   )ÚClient)Zgcloud.dns.clientr   )Úselfr   © r   úW/var/www/html/python-backend/venv/lib/python3.9/site-packages/gcloud/dns/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   sd   ddl m} tƒ }tƒ }| j| j||d}|  t|j|ƒ¡ |  |jj	|u ¡ |  |jj
|u ¡ d S )Nr   )Ú
Connection)ÚprojectÚcredentialsÚhttp)Zgcloud.dns.connectionr   Ú_CredentialsÚobjectr   r   Ú
assertTrueÚ
isinstanceÚ
connectionr   r   )r   r   Úcredsr   Úclientr   r   r   Ú	test_ctor   s    
ÿzTestClient.test_ctorc                 C   sæ   d| j f }d}d}d}d}d}d}dt|ƒt|ƒt|ƒt|ƒt|ƒt|ƒd	œi}td
d„ |d  ¡ D ƒƒ}	tƒ }
|  | j |
¡}t|ƒ }|_| ¡ }|  	||	¡ |  	t
|jƒd¡ |jd }|  	|d d¡ |  	|d d| ¡ d S )Núprojects/%séÒ  é   éY  éÈ  é7  é2	 Úquota©ÚmanagedZonesZresourceRecordsPerRrsetZrrsetsPerManagedZoneZrrsetAdditionsPerChangeZrrsetDeletionsPerChangeZtotalRrdataSizePerChangec                 S   s   g | ]\}}|t |ƒf‘qS r   ©Úint©Ú.0ÚkeyÚvaluer   r   r   Ú
<listcomp>:   s   ÿz3TestClient.test_quotas_defaults.<locals>.<listcomp>é   r   ÚmethodÚGETÚpathú/%s)r   ÚstrÚdictÚitemsr   r   Ú_Connectionr   ÚquotasÚassertEqualÚlenÚ
_requested)r   ÚPATHÚMANAGED_ZONESÚRRS_PER_RRSETÚRRSETS_PER_ZONEÚRRSET_ADDITIONSÚRRSET_DELETIONSÚ
TOTAL_SIZEÚDATAÚ	CONVERTEDr   r   Úconnr3   Úreqr   r   r   Útest_quotas_defaults(   s8    úÿ

ÿ
zTestClient.test_quotas_defaultsc                 C   s  d| j f }d}d}d}d}d}d}dt|ƒt|ƒt|ƒt|ƒt|ƒt|ƒd	œi}td
d„ |d  ¡ D ƒƒ}	d|d  ¡ i}
d|
d d< tƒ }|  | j |¡}t|
ƒ }|_| 	¡ }|  
||	¡ |  
t|jƒd¡ |jd }|  
|d d¡ |  
|d d| ¡ d S )Nr   r   r   r   r   r   r   r    r!   c                 S   s   g | ]\}}|t |ƒf‘qS r   r#   r%   r   r   r   r)   [   s   ÿz5TestClient.test_quotas_w_kind_key.<locals>.<listcomp>z	dns#quotaÚkindr*   r   r+   r,   r-   r.   )r   r/   r0   r1   Úcopyr   r   r2   r   r3   r4   r5   r6   )r   r7   r8   r9   r:   r;   r<   r=   r>   r?   Z	WITH_KINDr   r   r@   r3   rA   r   r   r   Útest_quotas_w_kind_keyI   s<    úÿ

ÿ
z!TestClient.test_quotas_w_kind_keyc                 C   sJ  ddl m} d}d}d}d}d}d}d	| jf }d
}	|	d|||dœd|||dœgdœ}
tƒ }|  | j|¡}t|
ƒ }|_| ¡ \}}|  t	|ƒt	|
d ƒ¡ t
||
d ƒD ]N\}}|  t||ƒ¡ |  |j|d ¡ |  |j|d ¡ |  |j|d ¡ qª|  ||	¡ |  t	|jƒd¡ |jd }|  |d d¡ |  |d d| ¡ d S )Nr   ©ÚManagedZoneÚ123Úzone_oneúone.example.comÚ234Úzone_twoútwo.example.comúprojects/%s/managedZonesÚTOKENúdns#managedZone©rC   ÚidÚnameÚdnsName)ZnextPageTokenr"   r"   rR   rS   rT   r*   r+   r,   r-   r.   ©Úgcloud.dns.zonerG   r   r   r   r2   r   Z
list_zonesr4   r5   Úzipr   r   Úzone_idrS   Údns_namer6   ©r   rG   ZID_1ZZONE_1ZDNS_1ZID_2ZZONE_2ZDNS_2r7   rO   r>   r   r   r@   ZzonesÚtokenÚfoundÚexpectedrA   r   r   r   Útest_list_zones_defaultsl   sJ    ýýûþ
z#TestClient.test_list_zones_defaultsc                 C   sd  ddl m} d}d}d}d}d}d}d	| jf }d
}	dd|||dœd|||dœgi}
tƒ }|  | j|¡}t|
ƒ }|_|jd|	d\}}|  t	|ƒt	|
d ƒ¡ t
||
d ƒD ]N\}}|  t||ƒ¡ |  |j|d ¡ |  |j|d ¡ |  |j|d ¡ q®|  |d ¡ |  t	|jƒd¡ |jd }|  |d d¡ |  |d d| ¡ |  |d d|	dœ¡ d S )Nr   rF   rH   rI   rJ   rK   rL   rM   rN   rO   r"   rP   rQ   é   )Zmax_resultsZ
page_tokenrR   rS   rT   r*   r+   r,   r-   r.   Zquery_params)Z
maxResultsZ	pageTokenrU   rZ   r   r   r   Útest_list_zones_explicit–   sP    ýýûÿ

ÿz#TestClient.test_list_zones_explicitc                 C   sˆ   ddl m} d}d}tƒ }|  | j|¡}| | j||¡}|  t||ƒ¡ |  	|j
| j¡ |  	|j|¡ |  	|j|¡ |  |j|u ¡ d S )Nr   rF   ÚDESCRIPTIONútest.example.com©rV   rG   r   r   r   ÚzoneÚ	ZONE_NAMEr   r   r4   rS   rY   ÚdescriptionZ_client)r   rG   ra   ÚDNS_NAMEr   r   rd   r   r   r   Útest_zone_explicitÁ   s    zTestClient.test_zone_explicitc                 C   s‚   ddl m} d}tƒ }|  | j|¡}| | j|¡}|  t||ƒ¡ |  	|j
| j¡ |  	|j|¡ |  	|j|¡ |  |j|u ¡ d S )Nr   rF   rb   rc   )r   rG   rg   r   r   rd   r   r   r   Ú#test_zone_w_dns_name_wo_descriptionÎ   s    z.TestClient.test_zone_w_dns_name_wo_descriptionc                 C   s|   ddl m} tƒ }|  | j|¡}| | j¡}|  t||ƒ¡ |  	|j
| j¡ |  	|jd ¡ |  	|jd ¡ |  |j|u ¡ d S )Nr   rF   rc   )r   rG   r   r   rd   r   r   r   Útest_zone_wo_dns_nameÚ   s    z TestClient.test_zone_wo_dns_nameN)Ú__name__Ú
__module__Ú__qualname__r   re   r   r   r   rB   rE   r^   r`   rh   ri   rj   r   r   r   r   r      s   
!#*+r   c                   @   s$   e Zd ZdZedd„ ƒZdd„ ZdS )r   Nc                   C   s   dS )NTr   r   r   r   r   Úcreate_scoped_requiredê   s    z#_Credentials.create_scoped_requiredc                 C   s
   || _ | S r	   )Ú_scopes)r   Úscoper   r   r   Úcreate_scopedî   s    z_Credentials.create_scoped)rk   rl   rm   ro   Ústaticmethodrn   rq   r   r   r   r   r   æ   s   
r   c                   @   s   e Zd Zdd„ Zdd„ ZdS )r2   c                 G   s   || _ g | _d S r	   )Ú
_responsesr6   )r   Ú	responsesr   r   r   Ú__init__õ   s    z_Connection.__init__c                 K   s,   | j  |¡ | jd | jdd …  }| _|S )Nr   r*   )r6   Úappendrs   )r   r   Úresponser   r   r   Úapi_requestù   s    z_Connection.api_requestN)rk   rl   rm   ru   rx   r   r   r   r   r2   ó   s   r2   )Z	unittest2ZTestCaser   r   r   r2   r   r   r   r   Ú<module>   s    U