a
    ù!fÚy  ã                   @   sP   d dl Z G dd„ de jƒ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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 )ÚTestAccessGrantc                 C   s   ddl m} |S )Nr   ©ÚAccessGrant)Úgcloud.bigquery.datasetr   )Úselfr   © r   ú]/var/www/html/python-backend/venv/lib/python3.9/site-packages/gcloud/bigquery/test_dataset.pyÚ_getTargetClass   s    zTestAccessGrant._getTargetClassc                 O   s   |   ¡ |i |¤ŽS ©N©r	   ©r   ÚargsÚkwr   r   r   Ú_makeOne   s    zTestAccessGrant._makeOnec                 C   s<   |   ddd¡}|  |jd¡ |  |jd¡ |  |jd¡ d S ©NÚOWNERÚuserByEmailúphred@example.com)r   ÚassertEqualÚroleÚentity_typeÚ	entity_id)r   Úgrantr   r   r   Útest_ctor_defaults   s    z"TestAccessGrant.test_ctor_defaultsc                 C   s<   |   t¡ |  d dd ¡ W d   ƒ n1 s.0    Y  d S )NÚunknown©ÚassertRaisesÚ
ValueErrorr   )r   r   r   r   Útest_ctor_bad_entity_type!   s    z)TestAccessGrant.test_ctor_bad_entity_typec                 C   sD   d}d}|   t¡ |  ||d ¡ W d   ƒ n1 s60    Y  d S )NÚREADERÚviewr   ©r   r   r   r   r   r   Útest_ctor_view_with_role%   s    z(TestAccessGrant.test_ctor_view_with_rolec                 C   sJ   d }d}t ƒ }|  |||¡}|  |j|¡ |  |j|¡ |  |j|¡ d S )Nr    )Úobjectr   r   r   r   r   )r   r   r   r   r   r   r   r   Útest_ctor_view_success+   s    z&TestAccessGrant.test_ctor_view_successc                 C   sD   d }d}|   t¡ |  ||d ¡ W d   ƒ n1 s60    Y  d S )Nr   r   r!   r   r   r   Útest_ctor_nonview_without_role4   s    z.TestAccessGrant.test_ctor_nonview_without_rolec                 C   s,   |   ddd¡}|   ddd¡}|  ||¡ d S )Nr   r   r   ÚWRITER©r   ZassertNotEqual©r   r   Úotherr   r   r   Útest___eq___role_mismatch:   s    z)TestAccessGrant.test___eq___role_mismatchc                 C   s,   |   ddd¡}|   ddd¡}|  ||¡ d S )Nr   r   r   ÚgroupByEmailr'   r(   r   r   r   Ú test___eq___entity_type_mismatch?   s    z0TestAccessGrant.test___eq___entity_type_mismatchc                 C   s,   |   ddd¡}|   ddd¡}|  ||¡ d S )Nr   r   r   úbharney@example.comr'   r(   r   r   r   Útest___eq___entity_id_mismatchD   s    z.TestAccessGrant.test___eq___entity_id_mismatchc                 C   s,   |   ddd¡}|   ddd¡}|  ||¡ d S r   )r   r   r(   r   r   r   Útest___eq___hitI   s    zTestAccessGrant.test___eq___hitN)Ú__name__Ú
__module__Ú__qualname__r	   r   r   r   r"   r$   r%   r*   r,   r.   r/   r   r   r   r   r      s   	r   c                   @   sl  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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/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9d:„ Z d;d<„ Z!d=d>„ Z"d?d@„ Z#dAdB„ Z$dCdD„ Z%dEdF„ Z&dGdH„ Z'dIdJ„ Z(dKdL„ Z)dMdN„ Z*dOdP„ Z+dQdR„ Z,dSdT„ Z-dUdV„ Z.dWdX„ Z/dYS )ZÚTestDatasetÚprojectzdataset-namec                 C   s   ddl m} |S )Nr   )ÚDataset)r   r5   )r   r5   r   r   r   r	   S   s    zTestDataset._getTargetClassc                 O   s   |   ¡ |i |¤ŽS r
   r   r   r   r   r   r   W   s    zTestDataset._makeOnec                 C   sT   dd l }ddlm} d| _|j  | j¡j|d| _d| _d| j| j	f | _
d| _d S )Nr   )ÚUTCgNbÀë¥lÕA)ÚtzinfoÚETAGú%s:%sz#http://example.com/path/to/resource)ÚdatetimeZgcloud._helpersr6   ÚWHEN_TSÚutcfromtimestampÚreplaceÚWHENr8   ÚPROJECTÚDS_NAMEÚDS_IDÚRESOURCE_URL)r   r:   r6   r   r   r   Ú_setUpConstantsZ   s    ÿzTestDataset._setUpConstantsc                 C   sb   |   ¡  d}d}| jd | j| jdœ| j| j| jd d| jd|dœd|dœd	d
dœdddœgdœS )Nr   úgroup-name@lists.example.comiè  ©Ú	projectIdÚ	datasetIdZUSr   ©r   r   ©r   r+   r&   ÚprojectWriters©r   ÚspecialGroupr   ÚprojectReaders)ÚcreationTimeÚdatasetReferenceÚetagÚidÚlastModifiedTimeÚlocationÚselfLinkÚaccess)rC   r;   r?   r@   r8   rA   rB   )r   Ú
USER_EMAILÚGROUP_EMAILr   r   r   Ú_makeResourcee   s     ü÷zTestDataset._makeResourcec           	      C   s¦   g }|d D ]6}|  d¡}t| ¡ ƒD ]\}}| |||dœ¡ q&q|  t|ƒt|ƒ¡ t||ƒD ]>\}}|  |j|d ¡ |  |j|d ¡ |  |j	|d ¡ qbd S )NrU   r   )r   r   r   r   r   )
ÚpopÚsortedÚitemsÚappendr   ÚlenÚzipr   r   r   )	r   Úaccess_grantsÚresourceZr_grantsZr_grantr   r   r   Za_grantr   r   r   Ú_verifyAccessGrantsy   s    
þzTestDataset._verifyAccessGrantsc                 C   s´   |   |j| j¡ d|v r*|   |j| j¡ n|   |jd ¡ d|v rR|   |j| j¡ n|   |jd ¡ d|v rz|   |j| j¡ n|   |jd ¡ d|v r¢|   |j| j	¡ n|   |jd ¡ d S )NrN   rP   rR   rT   )
r   Ú
dataset_idrA   Úcreatedr>   rP   r8   ÚmodifiedÚ	self_linkrB   ©r   Údatasetr`   r   r   r   Ú!_verifyReadonlyResourcePropertiesˆ   s    z-TestDataset._verifyReadonlyResourcePropertiesc                 C   s¢   |   ||¡ d|v r.|  |jt| d¡ƒ¡ n|  |jd ¡ |  |j| d¡¡ |  |j| d¡¡ |  |j| d¡¡ d|v r|  |j	|¡ n|  |j	g ¡ d S )NÚdefaultTableExpirationMsÚdescriptionÚfriendlyNamerS   rU   )
rh   r   Údefault_table_expiration_msÚintÚgetrj   Úfriendly_namerS   ra   r_   rf   r   r   r   Ú_verifyResourceProperties   s    ÿz%TestDataset._verifyResourcePropertiesc                 C   sò   t | jƒ}|  | j|¡}|  |j| j¡ |  |j|u ¡ |  |j|j¡ |  |j	d| j| jf ¡ |  |j
g ¡ |  |jd ¡ |  |jd ¡ |  |jd ¡ |  |jd ¡ |  |jd ¡ |  |jd ¡ |  |jd ¡ |  |jd ¡ |  |jd ¡ d S )Nz/projects/%s/datasets/%s)Ú_Clientr?   r   r@   r   ÚnameÚ
assertTrueÚ_clientr4   Úpathr_   rc   rb   rP   rd   re   rl   rj   ro   rS   ©r   Úclientrg   r   r   r   Ú	test_ctor¯   s&    
þzTestDataset.test_ctorc                 C   sN   t | jƒ}|  | j|¡}|  t¡ tƒ |_W d   ƒ n1 s@0    Y  d S r
   )rq   r?   r   r@   r   Ú	TypeErrorr#   r_   rv   r   r   r   Ú!test_access_roles_setter_non_listÅ   s    
z-TestDataset.test_access_roles_setter_non_listc                 C   sj   ddl m} t| jƒ}|  | j|¡}|dddƒ}|  t¡ |tƒ g|_	W d   ƒ n1 s\0    Y  d S )Nr   r   r   r   r   )
r   r   rq   r?   r   r@   r   r   r#   r_   )r   r   rw   rg   Úphredr   r   r   Ú&test_access_roles_setter_invalid_fieldË   s    
z2TestDataset.test_access_roles_setter_invalid_fieldc                 C   s\   ddl m} t| jƒ}|  | j|¡}|dddƒ}|dddƒ}||g|_|  |j||g¡ d S )Nr   r   r   r   r   r-   )r   r   rq   r?   r   r@   r_   r   )r   r   rw   rg   r{   Zbharneyr   r   r   Útest_access_roles_setterÓ   s    

z$TestDataset.test_access_roles_setterc                 C   sL   t | jƒ}|  | j|¡}|  t¡ d|_W d   ƒ n1 s>0    Y  d S )NZbogus)rq   r?   r   r@   r   r   rl   rv   r   r   r   Ú1test_default_table_expiration_ms_setter_bad_valueÜ   s    
z=TestDataset.test_default_table_expiration_ms_setter_bad_valuec                 C   s0   t | jƒ}|  | j|¡}d|_|  |jd¡ d S ©Né90  )rq   r?   r   r@   rl   r   rv   r   r   r   Ú'test_default_table_expiration_ms_setterâ   s    
z3TestDataset.test_default_table_expiration_ms_setterc                 C   sL   t | jƒ}|  | j|¡}|  t¡ d|_W d   ƒ n1 s>0    Y  d S r   )rq   r?   r   r@   r   r   rj   rv   r   r   r   Ú!test_description_setter_bad_valueè   s    
z-TestDataset.test_description_setter_bad_valuec                 C   s0   t | jƒ}|  | j|¡}d|_|  |jd¡ d S )NÚDESCRIPTION)rq   r?   r   r@   rj   r   rv   r   r   r   Útest_description_setterî   s    
z#TestDataset.test_description_setterc                 C   sL   t | jƒ}|  | j|¡}|  t¡ d|_W d   ƒ n1 s>0    Y  d S r   )rq   r?   r   r@   r   r   ro   rv   r   r   r   Ú#test_friendly_name_setter_bad_valueô   s    
z/TestDataset.test_friendly_name_setter_bad_valuec                 C   s0   t | jƒ}|  | j|¡}d|_|  |jd¡ d S )NZFRIENDLY)rq   r?   r   r@   ro   r   rv   r   r   r   Útest_friendly_name_setterú   s    
z%TestDataset.test_friendly_name_setterc                 C   sL   t | jƒ}|  | j|¡}|  t¡ d|_W d   ƒ n1 s>0    Y  d S r   )rq   r?   r   r@   r   r   rS   rv   r   r   r   Útest_location_setter_bad_value   s    
z*TestDataset.test_location_setter_bad_valuec                 C   s0   t | jƒ}|  | j|¡}d|_|  |jd¡ d S )NÚLOCATION)rq   r?   r   r@   rS   r   rv   r   r   r   Útest_location_setter  s    
z TestDataset.test_location_setterc                 C   sZ   |   ¡  t| jƒ}i }|  ¡ }|  t¡ |j||d W d   ƒ n1 sL0    Y  d S ©N©rw   )rC   rq   r?   r	   r   ÚKeyErrorÚfrom_api_repr)r   rw   ÚRESOURCEÚklassr   r   r   Ú#test_from_api_repr_missing_identity  s    
z/TestDataset.test_from_api_repr_missing_identityc                 C   sh   |   ¡  t| jƒ}d| j| jf | j| jdœdœ}|  ¡ }|j||d}|  |j|u ¡ |  ||¡ d S )Nr9   rE   )rQ   rO   r‹   )	rC   rq   r?   r@   r	   r   rs   rt   rp   ©r   rw   rŽ   r   rg   r   r   r   Útest_from_api_repr_bare  s    
þþz#TestDataset.test_from_api_repr_barec                 C   sH   t | jƒ}|  ¡ }|  ¡ }|j||d}|  |j|u ¡ |  ||¡ d S rŠ   )rq   r?   rX   r	   r   rs   rt   rp   r‘   r   r   r   Útest_from_api_repr_w_properties#  s    
z+TestDataset.test_from_api_repr_w_propertiesc                 C   s^   dddœg}t | jƒ}| j| j|d}|  t¡ | |¡ W d   ƒ n1 sP0    Y  d S )Nr   ÚUNKNOWN)r   r   r‹   ©rq   r?   r   r@   r   r   Z_parse_access_grants)r   ÚACCESSrw   rg   r   r   r   Ú/test__parse_access_grants_w_unknown_entity_type+  s    ÿ
z;TestDataset.test__parse_access_grants_w_unknown_entity_typec                 C   sd   d}dd|dœg}t | jƒ}| j| j|d}|  t¡ | |¡ W d   ƒ n1 sV0    Y  d S )Nr   r   rM   )r   rL   r   r‹   r•   )r   rV   r–   rw   rg   r   r   r   Ú&test__parse_access_grants_w_extra_keys4  s    ýÿ
z2TestDataset.test__parse_access_grants_w_extra_keysc                 C   s²   d| j  }|  ¡ }t|ƒ}t| j |d}| j| j|d}| ¡  |  t|j	ƒd¡ |j	d }|  |d d¡ |  |d d	| ¡ d
| j | jdœi}|  |d |¡ |  
||¡ d S )Núprojects/%s/datasets©r4   Ú
connectionr‹   é   r   ÚmethodÚPOSTru   ú/%srO   rE   Údata)r?   rX   Ú_Connectionrq   r   r@   Úcreater   r]   Ú
_requestedrp   ©r   ÚPATHrŽ   Úconnrw   rg   ÚreqÚSENTr   r   r   Útest_create_w_bound_clientB  s    

þz&TestDataset.test_create_w_bound_clientc              
   C   s–  ddl m} d| j }d}d}d}d}|  ¡ }||d< ||d	< tƒ }t| j|d
}	t|ƒ}
t| j|
d
}| j| j|	d}||_||_	ddddœ}|dd|ƒ|dd|ƒ|dddƒ|dddƒ|dddƒ|d d|ƒg|_
|j|d |  t|jƒd¡ |  t|
jƒd¡ |
jd }|  |d d¡ |  |d d| ¡ | j| jd œ||d|d!œd|d"œddd#œddd$œddd$œd|igd%œ}|  |d& |¡ |  ||¡ d S )'Nr   r   r™   r   rD   rƒ   ÚTITLErj   rk   rš   r‹   zmy-projzstarry-skiesznorthern-hemisphere)rF   rG   ÚtableIdr   r   r+   r   Údomainzfoo.comrL   rM   r&   rJ   r    rœ   r   rž   ru   rŸ   rE   rH   rI   )r   r¬   rK   )rO   rj   rk   rU   r    )r   r   r?   rX   r¡   rq   r   r@   ro   rj   r_   r¢   r   r]   r£   rp   )r   r   r¥   rV   rW   rƒ   rª   rŽ   Úconn1ÚCLIENT1Úconn2ÚCLIENT2rg   ZVIEWr§   r¨   r   r   r   Útest_create_w_alternate_clientV  s`    
ý





ú	
þúùz*TestDataset.test_create_w_alternate_clientc                 C   sÆ   d| j f }|  ¡ }|d= |d= d | _t|ƒ}t| j |d}| j| j|d}| ¡  |  t	|j
ƒd¡ |j
d }|  |d d	¡ |  |d
 d| ¡ d| j | jdœi}|  |d |¡ |  ||¡ d S )Nr™   rN   rR   rš   r‹   rœ   r   r   rž   ru   rŸ   rO   rE   r    )r?   rX   r>   r¡   rq   r   r@   r¢   r   r]   r£   rp   r¤   r   r   r   Ú'test_create_w_missing_output_properties  s$    
þz3TestDataset.test_create_w_missing_output_propertiesc                 C   sš   d| j | jf }tƒ }t| j |d}| j| j|d}|  | ¡ ¡ |  t|j	ƒd¡ |j	d }|  |d d¡ |  |d d	| ¡ |  |d
 ddi¡ d S )Núprojects/%s/datasets/%srš   r‹   rœ   r   r   ÚGETru   rŸ   Úquery_paramsÚfieldsrQ   )
r?   r@   r¡   rq   r   ZassertFalseÚexistsr   r]   r£   ©r   r¥   r¦   rw   rg   r§   r   r   r   Útest_exists_miss_w_bound_client¨  s    
z+TestDataset.test_exists_miss_w_bound_clientc                 C   sÆ   d| j | jf }tƒ }t| j |d}ti ƒ}t| j |d}| j| j|d}|  |j|d¡ |  t|j	ƒd¡ |  t|j	ƒd¡ |j	d }|  |d d¡ |  |d d	| ¡ |  |d
 ddi¡ d S )Nr³   rš   r‹   r   rœ   r   r´   ru   rŸ   rµ   r¶   rQ   )
r?   r@   r¡   rq   r   rs   r·   r   r]   r£   ©r   r¥   r­   r®   r¯   r°   rg   r§   r   r   r   Ú"test_exists_hit_w_alternate_client¶  s    
z.TestDataset.test_exists_hit_w_alternate_clientc                 C   s–   d| j | jf }|  ¡ }t|ƒ}t| j |d}| j| j|d}| ¡  |  t|j	ƒd¡ |j	d }|  |d d¡ |  |d d	| ¡ |  
||¡ d S )
Nr³   rš   r‹   rœ   r   r   r´   ru   rŸ   ©r?   r@   rX   r¡   rq   r   Úreloadr   r]   r£   rp   )r   r¥   rŽ   r¦   rw   rg   r§   r   r   r   Útest_reload_w_bound_clientÇ  s    
z&TestDataset.test_reload_w_bound_clientc           	      C   sÀ   d| j | jf }|  ¡ }tƒ }t| j |d}t|ƒ}t| j |d}| j| j|d}|j|d |  t|j	ƒd¡ |  t|j	ƒd¡ |j	d }|  |d d¡ |  |d d	| ¡ |  
||¡ d S )
Nr³   rš   r‹   r   rœ   r   r´   ru   rŸ   r¼   )	r   r¥   rŽ   r­   r®   r¯   r°   rg   r§   r   r   r   Útest_reload_w_alternate_clientÖ  s    
z*TestDataset.test_reload_w_alternate_clientc                 C   sh   |   ¡ }t|ƒ}t| j|d}| j| j|d}|  t¡ |jdd W d   ƒ n1 sZ0    Y  d S )Nrš   r‹   ZBOGUS)rl   )	rX   r¡   rq   r?   r   r@   r   r   Úpatch)r   rŽ   r¦   rw   rg   r   r   r   Útest_patch_w_invalid_expirationè  s    z+TestDataset.test_patch_w_invalid_expirationc           
      C   sÎ   d| j | jf }d}d}|  ¡ }||d< ||d< t|ƒ}t| j |d}| j| j|d}|j||d |  t|j	ƒd	¡ |j	d
 }|  |d d¡ ||dœ}	|  |d |	¡ |  |d d| ¡ |  
||¡ d S )Nr³   rƒ   rª   rj   rk   rš   r‹   )rj   ro   rœ   r   r   ÚPATCH)rj   rk   r    ru   rŸ   )r?   r@   rX   r¡   rq   r   rÀ   r   r]   r£   rp   ©
r   r¥   rƒ   rª   rŽ   r¦   rw   rg   r§   r¨   r   r   r   Útest_patch_w_bound_clientñ  s&    
þz%TestDataset.test_patch_w_bound_clientc                 C   sú   d| j | jf }d}d}|  ¡ }t|ƒ|d< ||d< tƒ }t| j |d}t|ƒ}t| j |d}| j| j|d}	|	j|||d |  t	|j
ƒd	¡ |  t	|j
ƒd
¡ |j
d	 }
|  |
d d¡ |  |
d d| ¡ ||dœ}|  |
d |¡ |  |	|¡ d S )Nr³   r€   ÚEUri   rS   rš   r‹   )rw   rl   rS   r   rœ   r   rÂ   ru   rŸ   )ri   rS   r    )r?   r@   rX   Ústrr¡   rq   r   rÀ   r   r]   r£   rp   ©r   r¥   ZDEF_TABLE_EXPrˆ   rŽ   r­   r®   r¯   r°   rg   r§   r¨   r   r   r   Útest_patch_w_alternate_client	  s2    þ
þz)TestDataset.test_patch_w_alternate_clientc           
      C   sà   d| j | jf }d}d}|  ¡ }||d< ||d< t|ƒ}t| j |d}| j| j|d}||_||_| ¡  |  	t
|jƒd¡ |jd	 }|  	|d
 d¡ | j | jdœ||dœ}	|  	|d |	¡ |  	|d d| ¡ |  ||¡ d S )Nr³   rƒ   rª   rj   rk   rš   r‹   rœ   r   r   ÚPUTrE   )rO   rj   rk   r    ru   rŸ   )r?   r@   rX   r¡   rq   r   rj   ro   Úupdater   r]   r£   rp   rÃ   r   r   r   Útest_update_w_bound_client&  s,    
üz&TestDataset.test_update_w_bound_clientc                 C   s
  d| j | jf }d}d}|  ¡ }d|d< ||d< tƒ }t| j |d}t|ƒ}t| j |d}| j| j|d}	||	_||	_|	j|d |  	t
|jƒd¡ |  	t
|jƒd	¡ |jd }
|  	|
d
 d¡ |  	|
d d| ¡ | j | jdœdddœ}|  	|
d |¡ |  |	|¡ d S )Nr³   r€   rÅ   ri   rS   rš   r‹   r   rœ   r   rÉ   ru   rŸ   rE   )rO   ri   rS   r    )r?   r@   rX   r¡   rq   r   rl   rS   rÊ   r   r]   r£   rp   rÇ   r   r   r   Útest_update_w_alternate_clientB  s2    
üz*TestDataset.test_update_w_alternate_clientc                 C   s‚   d| j | jf }ti ƒ}t| j |d}| j| j|d}| ¡  |  t|jƒd¡ |jd }|  |d d¡ |  |d d	| ¡ d S )
Nr³   rš   r‹   rœ   r   r   ÚDELETEru   rŸ   ©	r?   r@   r¡   rq   r   Údeleter   r]   r£   r¸   r   r   r   Útest_delete_w_bound_clienta  s    
z&TestDataset.test_delete_w_bound_clientc                 C   s¬   d| j | jf }tƒ }t| j |d}ti ƒ}t| j |d}| j| j|d}|j|d |  t|jƒd¡ |  t|jƒd¡ |jd }|  |d d¡ |  |d d	| ¡ d S )
Nr³   rš   r‹   r   rœ   r   rÍ   ru   rŸ   rÎ   rº   r   r   r   Útest_delete_w_alternate_clientn  s    
z*TestDataset.test_delete_w_alternate_clientc                 C   sž   t i ƒ}t| j|d}| j| j|d}| ¡ \}}|  |g ¡ |  |d ¡ |  t|jƒd¡ |jd }|  |d d¡ d| j| jf }|  |d d	| ¡ d S )
Nrš   r‹   rœ   r   r   r´   úprojects/%s/datasets/%s/tablesru   rŸ   )	r¡   rq   r?   r   r@   Úlist_tablesr   r]   r£   )r   r¦   rw   rg   ÚtablesÚtokenr§   r¥   r   r   r   Útest_list_tables_empty~  s    
z"TestDataset.test_list_tables_emptyc                 C   sd  ddl m} d}d}d| j| jf }d}|dd| j| j|f || j| jd	œd
dœdd| j| j|f || j| jd	œd
dœgdœ}t|ƒ}t| j|d}| j| j|d}	|	 ¡ \}
}|  t	|
ƒt	|d ƒ¡ t
|
|d ƒD ]<\}}|  t||ƒ¡ |  |j|d ¡ |  |j|d ¡ qÖ|  ||¡ |  t	|jƒd¡ |jd }|  |d d¡ |  |d d| ¡ d S )Nr   ©ÚTableÚ	table_oneÚ	table_tworÒ   ÚTOKENzbigquery#tableú%s:%s.%s©r«   rG   rF   ÚTABLE©ÚkindrQ   ZtableReferenceÚtype)ZnextPageTokenrÔ   rš   r‹   rÔ   rQ   rá   rœ   r   r´   ru   rŸ   ©Úgcloud.bigquery.tablerØ   r?   r@   r¡   rq   r   rÓ   r   r]   r^   rs   Ú
isinstanceZtable_idZ
table_typer£   ©r   rØ   ZTABLE_1ZTABLE_2r¥   rÛ   ZDATAr¦   rw   rg   rÔ   rÕ   ÚfoundÚexpectedr§   r   r   r   Útest_list_tables_defaults‹  sL    þûþûùþ
z%TestDataset.test_list_tables_defaultsc                 C   s~  ddl m} d}d}d| j| jf }d}ddd	| j| j|f || j| jd
œddœdd	| j| j|f || j| jd
œddœgi}t|ƒ}t| j|d}| j| j|d}	|	jd|d\}
}|  t	|
ƒt	|d ƒ¡ t
|
|d ƒD ]<\}}|  t||ƒ¡ |  |j|d ¡ |  |j|d ¡ qÚ|  |d ¡ |  t	|jƒd¡ |jd }|  |d d¡ |  |d d| ¡ |  |d d|dœ¡ d S )Nr   r×   rÙ   rÚ   rÒ   rÛ   rÔ   zbigquery#datasetrÜ   rÝ   rÞ   rß   rš   r‹   é   )Zmax_resultsZ
page_tokenrQ   rá   rœ   r   r´   ru   rŸ   rµ   )Z
maxResultsZ	pageTokenrâ   rå   r   r   r   Útest_list_tables_explicit¶  sR    þûþûùÿ

ÿz%TestDataset.test_list_tables_explicitc                 C   s|   ddl m} ti ƒ}t| j|d}| j| j|d}| d¡}|  t	||ƒ¡ |  
|jd¡ |  |j|u ¡ |  
|jg ¡ d S )Nr   r×   rš   r‹   Ú
table_name)rã   rØ   r¡   rq   r?   r   r@   Útablers   rä   r   rr   Ú_datasetÚschema)r   rØ   r¦   rw   rg   rì   r   r   r   Útest_table_wo_schemaâ  s    
z TestDataset.test_table_wo_schemac           	      C   s°   ddl m} ddl m} ti ƒ}t| j|d}| j| j|d}|dddd	}|d
ddd	}|jd||gd}|  	t
||ƒ¡ |  |jd¡ |  	|j|u ¡ |  |j||g¡ d S )Nr   )ÚSchemaFieldr×   rš   r‹   Ú	full_nameÚSTRINGZREQUIRED)ÚmodeÚageZINTEGERrë   )rî   )rã   rð   rØ   r¡   rq   r?   r   r@   rì   rs   rä   r   rr   rí   rî   )	r   rð   rØ   r¦   rw   rg   rñ   rô   rì   r   r   r   Útest_table_w_schemaí  s    zTestDataset.test_table_w_schemaN)0r0   r1   r2   r?   r@   r	   r   rC   rX   ra   rh   rp   rx   rz   r|   r}   r~   r   r‚   r„   r…   r†   r‡   r‰   r   r’   r“   r—   r˜   r©   r±   r²   r¹   r»   r¾   r¿   rÁ   rÄ   rÈ   rË   rÌ   rÐ   rÑ   rÖ   rè   rê   rï   rõ   r   r   r   r   r3   O   sZ   		9	+,r3   c                   @   s   e Zd Zddd„ZdS )rq   r4   Nc                 C   s   || _ || _d S r
   rš   )r   r4   r›   r   r   r   Ú__init__þ  s    z_Client.__init__)r4   N)r0   r1   r2   rö   r   r   r   r   rq   ü  s   rq   c                   @   s   e Zd Zdd„ Zdd„ ZdS )r¡   c                 G   s   || _ g | _d S r
   )Ú
_responsesr£   )r   Ú	responsesr   r   r   rö     s    z_Connection.__init__c                 K   sV   ddl m} | j |¡ z | jd | jdd …  }| _W n   |dƒ‚Y n0 |S d S )Nr   )ÚNotFoundrœ   Zmiss)Zgcloud.exceptionsrù   r£   r\   r÷   )r   r   rù   Úresponser   r   r   Úapi_request	  s     z_Connection.api_requestN)r0   r1   r2   rö   rû   r   r   r   r   r¡     s   r¡   )Z	unittest2ZTestCaser   r3   r#   rq   r¡   r   r   r   r   Ú<module>   s   =     2