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 jeƒZG dd	„ d	e jeƒZG d
d„ de jeƒZG dd„ de jeƒZG dd„ deƒZ	G dd„ deƒZ
G dd„ deƒZdS )é    Nc                   @   sT   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S )ÚTest_UDFResourcesPropertyc                 C   s   ddl m} |S )Nr   )ÚUDFResourcesProperty)Úgcloud.bigquery.jobr   )Úselfr   © r   úY/var/www/html/python-backend/venv/lib/python3.9/site-packages/gcloud/bigquery/test_job.pyÚ_getTargetClass   s    z)Test_UDFResourcesProperty._getTargetClassc                 O   s   |   ¡ |i |¤ŽS ©N©r   ©r   ÚargsÚkwr   r   r   Ú_makeOne   s    z"Test_UDFResourcesProperty._makeOnec                    s$   |   ¡ ‰ G ‡ fdd„dtƒ}ˆ |fS )Nc                       s   e Zd ZdZ” ZdS )z>Test_UDFResourcesProperty._descriptor_and_klass.<locals>._Testr   N)Ú__name__Ú
__module__Ú__qualname__Ú_udf_resourcesÚudf_resourcesr   ©Ú
descriptorr   r   Ú_Test   s   r   )r   Úobject)r   r   r   r   r   Ú_descriptor_and_klass   s    z/Test_UDFResourcesProperty._descriptor_and_klassc                 C   s    |   ¡ \}}|  |j|u ¡ d S r	   )r   Ú
assertTruer   )r   r   Úklassr   r   r   Útest_class_getter$   s    z+Test_UDFResourcesProperty.test_class_getterc                 C   s$   |   ¡ \}}|ƒ }|  |jg ¡ d S r	   )r   ÚassertEqualr   ©r   Ú_r   Úinstancer   r   r   Útest_instance_getter_empty(   s    z4Test_UDFResourcesProperty.test_instance_getter_emptyc                 C   sJ   ddl m} d}|d|ƒg}|  ¡ \}}|ƒ }t|ƒ|_|  |j|¡ d S ©Nr   ©ÚUDFResourceúgs://some-bucket/js/lib.jsÚresourceUri)r   r#   r   Útupler   r   r   ©r   r#   ÚRESOURCE_URIr   r   r   r   r   r   r   Ú%test_instance_getter_w_non_empty_list-   s    
z?Test_UDFResourcesProperty.test_instance_getter_w_non_empty_listc                 C   sL   ddl m} d}|d|ƒg}|  ¡ \}}|ƒ }||_g |_|  |jg ¡ d S r!   )r   r#   r   r   r   r   r'   r   r   r   Ú!test_instance_setter_w_empty_list7   s    z;Test_UDFResourcesProperty.test_instance_setter_w_empty_listc                 C   sF   ddl m} d}|d|ƒg}|  ¡ \}}|ƒ }||_|  |j|¡ d S r!   )r   r#   r   r   r   r'   r   r   r   Ú test_instance_setter_w_valid_udfC   s    z:Test_UDFResourcesProperty.test_instance_setter_w_valid_udfc                 C   sV   |   ¡ \}}|ƒ }|  t¡ dg|_W d   ƒ n1 s:0    Y  |  |jg ¡ d S )NZfoo)r   ÚassertRaisesÚ
ValueErrorr   r   r   r   r   r   Útest_instance_setter_w_bad_udfsN   s
    &z9Test_UDFResourcesProperty.test_instance_setter_w_bad_udfsN)r   r   r   r   r   r   r   r    r)   r*   r+   r.   r   r   r   r   r      s   	
r   c                   @   sJ   e Zd ZdZdZdZdZdZdd„ Zdd	„ Z	ddd„Z
dd„ Zdd„ ZdS )Ú_BaseÚprojectzhttp://example.com/source1.csvZdatset_nameZ
table_nameZjob_namec                 O   s   |   ¡ |i |¤ŽS r	   r
   r   r   r   r   r   _   s    z_Base._makeOnec                 C   sZ   dd l }ddlm} d| _|j  | j¡j|d| _d| _d| j| j	f | _
d| _d| _d S )	Nr   ©ÚUTCgNbÀë¥lÕA©ÚtzinfoÚETAGú%s:%sz#http://example.com/path/to/resourceúphred@example.com)ÚdatetimeÚgcloud._helpersr2   ÚWHEN_TSÚutcfromtimestampÚreplaceÚWHENr5   ÚPROJECTÚJOB_NAMEÚJOB_IDÚRESOURCE_URLÚ
USER_EMAIL)r   r8   r2   r   r   r   Ú_setUpConstantsb   s    ÿz_Base._setUpConstantsFc                 C   s|   |   ¡  | ji id| jd | ji i| j| j| j| jdœ| j| jdœ}|sL|r^| jd |d d< |rx| jd d |d d< |S )NÚcreationTimeéè  ©Ú	projectIdZjobId)ÚconfigurationÚ
statisticsÚetagÚidÚjobReferenceÚselfLinkÚ
user_emailrI   Ú	startTimeÚendTime)	rC   ÚJOB_TYPEr:   r5   r@   r>   r?   rA   rB   )r   ÚstartedÚendedÚresourcer   r   r   Ú_makeResourcen   s&    ÿ
þþïz_Base._makeResourcec                 C   s‚   |   |jd ¡ |   |jd ¡ |   |jd ¡ |   |jd ¡ |   |jd ¡ |   |jd ¡ |   |jd ¡ |   |jd ¡ |   |j	d ¡ d S r	   )
r   rJ   Ú	self_linkrN   ÚcreatedrR   rS   Úerror_resultÚerrorsÚstate)r   Újobr   r   r   Ú _verifyInitialReadonlyPropertiesŒ   s    z&_Base._verifyInitialReadonlyPropertiesc                 C   s  ddl m} | di ¡}d|v r2|  |j| j¡ n|  |jd ¡ d|v rZ|  |j| j¡ n|  |jd ¡ d|v rŒ|  |j| j|dd ¡ n|  |jd ¡ d	|v r´|  |j| j	¡ n|  |jd ¡ d
|v rÜ|  |j
| j¡ n|  |j
d ¡ d|v r|  |j| j¡ n|  |jd ¡ d S )Nr   )Ú	timedeltarI   rD   rO   rP   rE   )ÚsecondsrJ   rM   rN   )r8   r]   Úgetr   rW   r=   rR   rS   rJ   r5   rV   rA   rN   rB   )r   r[   rT   r]   rI   r   r   r   Ú!_verifyReadonlyResourcePropertiesœ   s(    
z'_Base._verifyReadonlyResourcePropertiesN)FF)r   r   r   r>   ÚSOURCE1ÚDS_NAMEÚ
TABLE_NAMEr?   r   rC   rU   r\   r`   r   r   r   r   r/   X   s   
r/   c                       sÞ   e Zd ZdZdd„ Z‡ fdd„Zd3‡ f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‡  ZS )4ÚTestLoadTableFromStorageJobÚloadc                 C   s   ddl m} |S )Nr   )ÚLoadTableFromStorageJob)r   rf   )r   rf   r   r   r   r   Ã   s    z+TestLoadTableFromStorageJob._getTargetClassc                    s*   t t| ƒ ¡  d| _d| _d| _d| _d S )Né   é90  é [  éY  )Úsuperrd   rC   ÚINPUT_FILESÚINPUT_BYTESÚOUTPUT_BYTESÚOUTPUT_ROWS©r   ©Ú	__class__r   r   rC   Ç   s
    z+TestLoadTableFromStorageJob._setUpConstantsFc                    s   t t| ƒ ||¡}|d d }| jg|d< | j| j| jdœ|d< |rŒ| j|d d d< | j|d d d< | j	|d d d	< | j
|d d d
< |S )NrH   re   Ú
sourceUris©rG   Ú	datasetIdÚtableIdÚdestinationTablerI   Ú
inputFilesÚinputFileBytesÚoutputBytesÚ
outputRows)rk   rd   rU   ra   r>   rb   rc   rl   rm   rn   ro   ©r   rR   rS   rT   Úconfigrq   r   r   rU   Î   s    
ÿý
z)TestLoadTableFromStorageJob._makeResourcec                 C   sˆ   d|v r|   |j|d ¡ n|  |jd u ¡ d|v rH|   |j|d ¡ n|  |jd u ¡ d|v rt|   |j|d ¡ n|  |jd u ¡ d S )NÚallowJaggedRowsÚallowQuotedNewlinesÚignoreUnknownValues)r   Úallow_jagged_rowsr   Úallow_quoted_newlinesÚignore_unknown_values©r   r[   r}   r   r   r   Ú_verifyBooleanConfigPropertiesá   s    ÿÿÿz:TestLoadTableFromStorageJob._verifyBooleanConfigPropertiesc                 C   s´   d|v r|   |j|d ¡ n|  |jd u ¡ d|v rH|   |j|d ¡ n|  |jd u ¡ d|v rt|   |j|d ¡ n|  |jd u ¡ d|v r |   |j|d ¡ n|  |jd u ¡ d S )NÚcreateDispositionÚencodingÚsourceFormatÚwriteDisposition)r   Úcreate_dispositionr   r‡   Úsource_formatÚwrite_dispositionr„   r   r   r   Ú_verifyEnumConfigPropertiesò   s(    ÿÿÿÿz7TestLoadTableFromStorageJob._verifyEnumConfigPropertiesc                 C   sD  |   ||¡ | di ¡ d¡}|  ||¡ |  ||¡ |  |j|d ¡ |d }|  |jj|d ¡ |  |jj|d ¡ |  |jj	|d ¡ d|v r¨|  |j
|d ¡ n|  |j
d u ¡ d	|v rÔ|  |j|d	 ¡ n|  |jd u ¡ d
|v r|  |j|d
 ¡ n|  |jd u ¡ d|v r0|  |j|d ¡ n|  |jd u ¡ d S )NrH   re   rs   rw   rG   ru   rv   ÚfieldDelimiterÚmaxBadRecordsÚquoteÚskipLeadingRows)r`   r_   r…   r   r   Úsource_urisÚdestinationr0   Údataset_nameÚnameÚfield_delimiterr   Úmax_bad_recordsÚquote_characterÚskip_leading_rows©r   r[   rT   r}   Ú	table_refr   r   r   Ú_verifyResourceProperties  s:    ÿÿ
ÿ
ÿz5TestLoadTableFromStorageJob._verifyResourcePropertiesc                 C   sŠ  t | jƒ}tƒ }|  | j|| jg|¡}|  |j|u ¡ |  t	|j
ƒ| jg¡ |  |j|u ¡ |  |j| j¡ |  |jd| j| jf ¡ |  |jg ¡ |  |¡ |  |jd ¡ |  |jd ¡ |  |jd ¡ |  |jd ¡ |  |jd u ¡ |  |jd u ¡ |  |jd u ¡ |  |jd u ¡ |  |jd u ¡ |  |jd u ¡ |  |jd u ¡ |  |jd u ¡ |  |jd u ¡ |  |jd u ¡ |  |jd u ¡ d S ©Nz/projects/%s/jobs/%s) Ú_Clientr>   Ú_Tabler   r?   ra   r   r“   r   Úlistr’   Ú_clientÚjob_typerQ   ÚpathÚschemar\   Úinput_file_bytesÚinput_filesÚoutput_bytesÚoutput_rowsr   r‚   rŠ   r‡   r–   rƒ   r—   r˜   r™   r‹   rŒ   ©r   ÚclientÚtabler[   r   r   r   Ú	test_ctor,  s8    
þ
z%TestLoadTableFromStorageJob.test_ctorc                 C   sl   ddl m} t| jƒ}tƒ }|dddd}|dddd}| j| j|| jg|||gd	}|  |j	||g¡ d S )
Nr   ©ÚSchemaFieldÚ	full_nameÚSTRINGÚREQUIRED©ÚmodeÚageÚINTEGER©r¤   )
Úgcloud.bigquery.tabler®   rž   r>   rŸ   r   r?   ra   r   r¤   )r   r®   rª   r«   r¯   r´   r[   r   r   r   Útest_ctor_w_schemaN  s    
ÿz.TestLoadTableFromStorageJob.test_ctor_w_schemac                 C   s\   t | jƒ}tƒ }|  | j|| jg|¡}|  t¡ tƒ |_	W d   ƒ n1 sN0    Y  d S r	   )
rž   r>   rŸ   r   r?   ra   r,   Ú	TypeErrorr   r¤   r©   r   r   r   Útest_schema_setter_non_listX  s
    
z7TestLoadTableFromStorageJob.test_schema_setter_non_listc                 C   sz   ddl m} t| jƒ}tƒ }|  | j|| jg|¡}|dddd}|  t	¡ |t
ƒ g|_W d   ƒ n1 sl0    Y  d S )Nr   r­   r¯   r°   r±   r²   )r·   r®   rž   r>   rŸ   r   r?   ra   r,   r-   r   r¤   )r   r®   rª   r«   r[   r¯   r   r   r   Ú test_schema_setter_invalid_field_  s    
z<TestLoadTableFromStorageJob.test_schema_setter_invalid_fieldc                 C   sn   ddl m} t| jƒ}tƒ }|  | j|| jg|¡}|dddd}|dddd}||g|_|  	|j||g¡ d S )	Nr   r­   r¯   r°   r±   r²   r´   rµ   )
r·   r®   rž   r>   rŸ   r   r?   ra   r¤   r   )r   r®   rª   r«   r[   r¯   r´   r   r   r   Útest_schema_setterh  s    

z.TestLoadTableFromStorageJob.test_schema_setterc              	   C   sT  dd l }ddlm} ddlm} |j dddddd	|d
}|j dddddd|d
}|j dddddd|d
}d| j| jf }d| j| jf }d}	dddddœ}
t| jƒ}tƒ }|  | j|| j	g|¡}d|j
d< ||j
d< ||j
d< |	|j
d< i  }|j
d< ||ƒ|d< ||ƒ|d< ||ƒ|d< i  }|d< d |d!< d"|d#< d$|d%< d&|d'< |  |jd¡ |  |j|¡ |  |j|	¡ |  |j|¡ |  |j|¡ |  |j|¡ |  |jd ¡ |  |jd"¡ |  |jd$¡ |  |jd&¡ i  }|j
d(< |  |jd ¡ |  |jd ¡ |  |jd ¡ |
|d)< |
g|d*< d+|d,< |  |j|
¡ |  |j|
g¡ |  |jd+¡ d S )-Nr   r1   )Ú_millisiß  é   é   é   é   é   r3   é/   é   é   r6   z&http://example.com/projects/%s/jobs/%sr7   ÚDEBUGZLOCATIONZMESSAGEZREASON)Z	debugInfoÚlocationÚmessageÚreasonr5   rJ   rK   rM   rN   rI   rD   rO   rP   re   rh   ry   é   rx   ri   rz   rj   r{   ÚstatusZerrorResultrY   ZSTATErZ   )r8   r9   r2   r½   r>   r?   rž   rŸ   r   ra   Z_propertiesr   rJ   rV   rN   rW   rR   rS   r¥   r¦   r§   r¨   rX   rY   rZ   )r   r8   r2   r½   ÚCREATEDZSTARTEDZENDEDr@   ÚURLZEMAILZERROR_RESULTrª   r«   r[   rI   Z
load_statsrË   r   r   r   Útest_props_set_by_serverr  sh    ÿý





z4TestLoadTableFromStorageJob.test_props_set_by_serverc                 C   sZ   |   ¡  t| jƒ}i }|  ¡ }|  t¡ |j||d W d   ƒ n1 sL0    Y  d S ©N©rª   ©rC   rž   r>   r   r,   ÚKeyErrorÚfrom_api_repr©r   rª   ÚRESOURCEr   r   r   r   Ú#test_from_api_repr_missing_identity°  s    
z?TestLoadTableFromStorageJob.test_from_api_repr_missing_identityc                 C   sv   |   ¡  t| jƒ}d| j| jf | j| jdœdœ}|  ¡ }|  t¡ |j||d W d   ƒ n1 sh0    Y  d S ©Nr6   rF   )rK   rL   rÐ   ©	rC   rž   r>   rb   r?   r   r,   rÒ   rÓ   rÔ   r   r   r   Ú!test_from_api_repr_missing_config¸  s    
þþz=TestLoadTableFromStorageJob.test_from_api_repr_missing_configc                 C   s|   |   ¡  t| jƒ}| j| j| jdœd| jg| j| j| jdœdœidœ}|  ¡ }|j	||d}|  
|j|u ¡ |  ||¡ d S )NrF   re   rt   ©rs   rw   ©rK   rL   rH   rÐ   )rC   rž   r>   r@   r?   ra   rb   rc   r   rÓ   r   r¡   rœ   ©r   rª   rÕ   r   r[   r   r   r   Útest_from_api_repr_bareÆ  s&    
þýþÿúz3TestLoadTableFromStorageJob.test_from_api_repr_barec                 C   sH   t | jƒ}|  ¡ }|  ¡ }|j||d}|  |j|u ¡ |  ||¡ d S rÏ   ©rž   r>   rU   r   rÓ   r   r¡   rœ   ©r   rª   rÕ   r   Údatasetr   r   r   Útest_from_api_repr_w_propertiesß  s    
z;TestLoadTableFromStorageJob.test_from_api_repr_w_propertiesc           	      C   sø   d| j  }|  ¡ }|d d= |d= |d= |d= t|ƒ}t| j |d}tƒ }|  | j|| jg|¡}| ¡  |  	t
|jƒd¡ |jd	 }|  	|d
 d¡ |  	|d d| ¡ | j | jdœd| jg| j | j| jdœdœidœ}|  	|d |¡ |  ||¡ d S )Núprojects/%s/jobsrI   rD   rJ   rM   rN   ©r0   Ú
connectionrÊ   r   ÚmethodÚPOSTr£   ú/%srF   re   rt   rÚ   ©rL   rH   Údata)r>   rU   Ú_Connectionrž   rŸ   r   r?   ra   Úbeginr   ÚlenÚ
_requestedrb   rc   rœ   )	r   ÚPATHrÕ   Úconnrª   r«   r[   ÚreqÚSENTr   r   r   Útest_begin_w_bound_clientç  s:    


þýþÿûz5TestLoadTableFromStorageJob.test_begin_w_bound_clientc                 C   s¼  ddl m} d| j }| jdd}| jg| j| j| jdœddddd	dd
dddddddddœddddœgidœ}||d d< tƒ }t| j|d}t|ƒ}t| j|d}t	ƒ }	|dddd}
|dddd}| j
| j|	| jg||
|gd}d|_d|_d|_d|_d	|_d|_d
|_d|_d|_d|_d|_|j|d |  t|jƒd¡ |  t|jƒd¡ |jd }|  |d d¡ |  |d d | ¡ | j| jd!œd|id"œ}|  |d# |¡ |  ||¡ d S )$Nr   r­   râ   T©rS   rt   ÚCREATE_NEVERz
ISO-8559-1ú|éd   ú'rÊ   ZCSVÚWRITE_TRUNCATEÚfieldsr¯   r°   r±   )r•   Útyper³   r´   rµ   )rs   rw   r~   r   r†   r‡   rŽ   r€   r   r   r‘   rˆ   r‰   r¤   rH   re   rã   r²   r¶   rÐ   rå   ræ   r£   rç   rF   rè   ré   )r·   r®   r>   rU   ra   rb   rc   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Õ   ZLOAD_CONFIGURATIONÚconn1Úclient1Úconn2Úclient2r«   r¯   r´   r[   rð   rñ   r   r   r   Útest_begin_w_alternate_client  sx    
ý

þîÿ
þÿû	z9TestLoadTableFromStorageJob.test_begin_w_alternate_clientc                 C   s¦   d| j | jf }tƒ }t| j |d}tƒ }|  | j|| jg|¡}|  | ¡ ¡ |  	t
|jƒd¡ |jd }|  	|d d¡ |  	|d d| ¡ |  	|d	 d
di¡ d S ©Núprojects/%s/jobs/%srã   rÊ   r   rå   ÚGETr£   rç   Úquery_paramsrù   rK   )r>   r?   rê   rž   rŸ   r   ra   ÚassertFalseÚexistsr   rì   rí   )r   rî   rï   rª   r«   r[   rð   r   r   r   Útest_exists_miss_w_bound_clientR  s    
z;TestLoadTableFromStorageJob.test_exists_miss_w_bound_clientc           	      C   sÒ   d| j | jf }tƒ }t| j |d}ti ƒ}t| j |d}tƒ }|  | j|| jg|¡}|  |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  r£   rç   r  rù   rK   )r>   r?   rê   rž   rŸ   r   ra   r   r  r   rì   rí   )	r   rî   rû   rü   rý   rþ   r«   r[   rð   r   r   r   Ú"test_exists_hit_w_alternate_clienta  s    
z>TestLoadTableFromStorageJob.test_exists_hit_w_alternate_clientc                 C   s¢   d| j | jf }|  ¡ }t|ƒ}t| j |d}tƒ }|  | j|| jg|¡}| ¡  |  	t
|jƒd¡ |jd }|  	|d d¡ |  	|d d| ¡ |  ||¡ d S ©	Nr  rã   rÊ   r   rå   r  r£   rç   ©r>   r?   rU   rê   rž   rŸ   r   ra   Úreloadr   rì   rí   rœ   ©r   rî   rÕ   rï   rª   r«   r[   rð   r   r   r   Útest_reload_w_bound_clients  s    
z6TestLoadTableFromStorageJob.test_reload_w_bound_clientc           
      C   sÌ   d| j | jf }|  ¡ }tƒ }t| j |d}t|ƒ}t| j |d}tƒ }|  | j|| jg|¡}|j|d |  	t
|jƒd¡ |  	t
|jƒd¡ |jd }	|  	|	d d¡ |  	|	d d	| ¡ |  ||¡ d S ©
Nr  rã   rÐ   r   rÊ   rå   r  r£   rç   r
  ©
r   rî   rÕ   rû   rü   rý   rþ   r«   r[   rð   r   r   r   Útest_reload_w_alternate_clientƒ  s    
z:TestLoadTableFromStorageJob.test_reload_w_alternate_clientc                 C   s¢   d| j | jf }|  ¡ }t|ƒ}t| j |d}tƒ }|  | j|| jg|¡}| ¡  |  	t
|jƒd¡ |jd }|  	|d d¡ |  	|d d| ¡ |  ||¡ d S )	Núprojects/%s/jobs/%s/cancelrã   rÊ   r   rå   ræ   r£   rç   ©r>   r?   rU   rê   rž   rŸ   r   ra   Úcancelr   rì   rí   rœ   r  r   r   r   Útest_cancel_w_bound_client–  s    
z6TestLoadTableFromStorageJob.test_cancel_w_bound_clientc           
      C   sÌ   d| j | jf }|  ¡ }tƒ }t| j |d}t|ƒ}t| j |d}tƒ }|  | j|| jg|¡}|j|d |  	t
|jƒd¡ |  	t
|jƒd¡ |jd }	|  	|	d d¡ |  	|	d d	| ¡ |  ||¡ d S )
Nr  rã   rÐ   r   rÊ   rå   ræ   r£   rç   r  r  r   r   r   Útest_cancel_w_alternate_client¦  s    
z:TestLoadTableFromStorageJob.test_cancel_w_alternate_client)FF)r   r   r   rQ   r   rC   rU   r…   r   rœ   r¬   r¸   rº   r»   r¼   rÎ   rÖ   rÙ   rÝ   rá   rò   rÿ   r  r  r  r  r  r  Ú__classcell__r   r   rq   r   rd   À   s2   $"
	
>&Erd   c                       s’   e Zd ZdZdZdZdd„ Zd!‡ f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‡  ZS )"ÚTestCopyJobÚcopyÚsource_tableÚdestination_tablec                 C   s   ddl m} |S )Nr   )ÚCopyJob)r   r  )r   r  r   r   r   r   ¿  s    zTestCopyJob._getTargetClassFc                    sP   t t| ƒ ||¡}|d d }| j| j| jdœg|d< | j| j| jdœ|d< |S )NrH   r  rt   ÚsourceTablesrw   )rk   r  rU   r>   rb   ÚSOURCE_TABLEÚDESTINATION_TABLEr|   rq   r   r   rU   Ã  s    
ÿýý
zTestCopyJob._makeResourcec                 C   s*  |   ||¡ | di ¡ d¡}|d }|  |jj|d ¡ |  |jj|d ¡ |  |jj|d ¡ |d }|  t|ƒt|jƒ¡ t	||jƒD ]>\}}|  |j|d ¡ |  |j|d ¡ |  |j|d ¡ qŒd|v rè|  |j
|d ¡ n|  |j
d u ¡ d	|v r|  |j|d	 ¡ n|  |jd u ¡ d S )
NrH   r  rw   rG   ru   rv   r  r†   r‰   )r`   r_   r   r“   r0   r”   r•   rì   ÚsourcesÚziprŠ   r   rŒ   )r   r[   rT   r}   r›   r  r«   r   r   r   rœ   Ô  s,    ÿ
ÿz%TestCopyJob._verifyResourcePropertiesc                 C   sº   t | jƒ}t| jƒ}t| jƒ}|  | j||g|¡}|  |j|u ¡ |  	|j
|g¡ |  |j|u ¡ |  	|j| j¡ |  	|jd| j| jf ¡ |  |¡ |  |jd u ¡ |  |jd u ¡ d S r   )rž   r>   rŸ   r  r  r   r?   r   r“   r   r  r¡   r¢   rQ   r£   r\   rŠ   rŒ   )r   rª   Úsourcer“   r[   r   r   r   r¬   ñ  s    


þ
zTestCopyJob.test_ctorc                 C   sZ   |   ¡  t| jƒ}i }|  ¡ }|  t¡ |j||d W d   ƒ n1 sL0    Y  d S rÏ   rÑ   rÔ   r   r   r   rÖ     s    
z/TestCopyJob.test_from_api_repr_missing_identityc                 C   sv   |   ¡  t| jƒ}d| j| jf | j| jdœdœ}|  ¡ }|  t¡ |j||d W d   ƒ n1 sh0    Y  d S r×   rØ   rÔ   r   r   r   rÙ     s    
þþz-TestCopyJob.test_from_api_repr_missing_configc                 C   sˆ   |   ¡  t| jƒ}| j| j| jdœd| j| j| jdœg| j| j| jdœdœidœ}|  ¡ }|j	||d}|  
|j|u ¡ |  ||¡ d S )NrF   r  rt   ©r  rw   rÛ   rÐ   )rC   rž   r>   r@   r?   rb   r  r  r   rÓ   r   r¡   rœ   rÜ   r   r   r   rÝ     s,    
þýýúÿúz#TestCopyJob.test_from_api_repr_barec                 C   sH   t | jƒ}|  ¡ }|  ¡ }|j||d}|  |j|u ¡ |  ||¡ d S rÏ   rÞ   rß   r   r   r   rá   7  s    
z+TestCopyJob.test_from_api_repr_w_propertiesc           
      C   s  d| j  }|  ¡ }|d d= |d= |d= |d= t|ƒ}t| j |d}t| jƒ}t| jƒ}|  | j||g|¡}| 	¡  |  
t|jƒd¡ |jd	 }|  
|d
 d¡ |  
|d d| ¡ | j | jdœd| j | j| jdœg| j | j| jdœdœidœ}	|  
|d |	¡ |  ||¡ d S )Nrâ   rI   rD   rJ   rM   rN   rã   rÊ   r   rå   ræ   r£   rç   rF   r  rt   r"  rè   ré   )r>   rU   rê   rž   rŸ   r  r  r   r?   rë   r   rì   rí   rb   rœ   )
r   rî   rÕ   rï   rª   r!  r“   r[   rð   rñ   r   r   r   rò   ?  sB    




þýýúÿûz%TestCopyJob.test_begin_w_bound_clientc                 C   sB  d| j  }| jdd}| j | j| jdœg| j | j| jdœdddœ}||d d	< tƒ }t| j |d
}t|ƒ}t| j |d
}t| jƒ}t| jƒ}	|  | j	|	|g|¡}
d|
_
d|
_|
j|d |  t|jƒd¡ |  t|jƒd¡ |jd }|  |d d¡ |  |d d| ¡ | j | j	dœd	|idœ}|  |d |¡ |  |
|¡ d S )Nrâ   Tró   rt   rô   rø   )r  rw   r†   r‰   rH   r  rã   rÐ   r   rÊ   rå   ræ   r£   rç   rF   rè   ré   )r>   rU   rb   r  r  rê   rž   rŸ   r   r?   rŠ   rŒ   rë   r   rì   rí   rœ   )r   rî   rÕ   ZCOPY_CONFIGURATIONrû   rü   rý   rþ   r!  r“   r[   rð   rñ   r   r   r   rÿ   j  sJ    
ýýô


þÿû	z)TestCopyJob.test_begin_w_alternate_clientc                 C   s²   d| j | jf }tƒ }t| j |d}t| jƒ}t| jƒ}|  | j||g|¡}|  | 	¡ ¡ |  
t|jƒd¡ |jd }|  
|d d¡ |  
|d d| ¡ |  
|d	 d
di¡ d S 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  š  s    


z+TestCopyJob.test_exists_miss_w_bound_clientc           
      C   sÞ   d| j | jf }tƒ }t| j |d}ti ƒ}t| j |d}t| jƒ}t| jƒ}|  | j||g|¡}|  |j	|d¡ |  
t|jƒd¡ |  
t|jƒd¡ |jd }	|  
|	d d¡ |  
|	d d	| ¡ |  
|	d
 ddi¡ d S 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  ª  s    


z.TestCopyJob.test_exists_hit_w_alternate_clientc           	      C   s®   d| j | jf }|  ¡ }t|ƒ}t| j |d}t| jƒ}t| jƒ}|  | j||g|¡}| 	¡  |  
t|jƒd¡ |jd }|  
|d d¡ |  
|d d| ¡ |  ||¡ d S r	  ©r>   r?   rU   rê   rž   rŸ   r  r  r   r  r   rì   rí   rœ   )	r   rî   rÕ   rï   rª   r!  r“   r[   rð   r   r   r   r  ½  s    


z&TestCopyJob.test_reload_w_bound_clientc                 C   sØ   d| j | jf }|  ¡ }tƒ }t| j |d}t|ƒ}t| j |d}t| jƒ}t| jƒ}|  | j||g|¡}	|	j	|d |  
t|jƒd¡ |  
t|jƒd¡ |jd }
|  
|
d d¡ |  
|
d d	| ¡ |  |	|¡ d S r  r#  )r   rî   rÕ   rû   rü   rý   rþ   r!  r“   r[   rð   r   r   r   r  Î  s     


z*TestCopyJob.test_reload_w_alternate_client)FF)r   r   r   rQ   r  r  r   rU   rœ   r¬   rÖ   rÙ   rÝ   rá   rò   rÿ   r  r  r  r  r  r   r   rq   r   r  º  s"   +0r  c                       s’   e Zd ZdZdZdZdd„ Zd!‡ f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‡  ZS )"ÚTestExtractTableToStorageJobÚextractr  zgs://bucket_name/object_namec                 C   s   ddl m} |S )Nr   )ÚExtractTableToStorageJob)r   r&  )r   r&  r   r   r   r   è  s    z,TestExtractTableToStorageJob._getTargetClassFc                    sD   t t| ƒ ||¡}|d d }| j| j| jdœ|d< | jg|d< |S )NrH   r%  rt   ÚsourceTableÚdestinationUris)rk   r$  rU   r>   rb   r  ÚDESTINATION_URIr|   rq   r   r   rU   ì  s    
ÿý
z*TestExtractTableToStorageJob._makeResourcec                 C   s*  |   ||¡ | di ¡ d¡}|  |j|d ¡ |d }|  |jj|d ¡ |  |jj|d ¡ |  |jj|d ¡ d|v r|  |j|d ¡ n|  	|jd u ¡ d	|v r¼|  |j
|d	 ¡ n|  	|j
d u ¡ d
|v rè|  |j|d
 ¡ n|  	|jd u ¡ d|v r|  |j|d ¡ n|  	|jd u ¡ d S )NrH   r%  r(  r'  rG   ru   rv   ÚcompressionÚdestinationFormatrŽ   ÚprintHeader)r`   r_   r   Údestination_urisr!  r0   r”   r•   r*  r   Údestination_formatr–   Úprint_headerrš   r   r   r   rœ   ø  s6    ÿÿÿ
ÿz6TestExtractTableToStorageJob._verifyResourcePropertiesc                 C   sÒ   t | jƒ}t| jƒ}|  | j|| jg|¡}|  |j|¡ |  |j	| jg¡ |  
|j|u ¡ |  |j| j¡ |  |jd| j| jf ¡ |  |¡ |  
|jd u ¡ |  
|jd u ¡ |  
|jd u ¡ |  
|jd u ¡ d S r   )rž   r>   rŸ   r  r   r?   r)  r   r!  r-  r   r¡   r¢   rQ   r£   r\   r*  r.  r–   r/  )r   rª   r!  r[   r   r   r   r¬     s$    

ÿþ
z&TestExtractTableToStorageJob.test_ctorc                 C   sZ   |   ¡  t| jƒ}i }|  ¡ }|  t¡ |j||d W d   ƒ n1 sL0    Y  d S rÏ   rÑ   rÔ   r   r   r   rÖ   1  s    
z@TestExtractTableToStorageJob.test_from_api_repr_missing_identityc                 C   sv   |   ¡  t| jƒ}d| j| jf | j| jdœdœ}|  ¡ }|  t¡ |j||d W d   ƒ n1 sh0    Y  d S r×   rØ   rÔ   r   r   r   rÙ   9  s    
þþz>TestExtractTableToStorageJob.test_from_api_repr_missing_configc                 C   s|   |   ¡  t| jƒ}| j| j| jdœd| j| j| jdœ| jgdœidœ}|  ¡ }|j	||d}|  
|j|u ¡ |  ||¡ d S )NrF   r%  rt   ©r'  r(  rÛ   rÐ   )rC   rž   r>   r@   r?   rb   r  r)  r   rÓ   r   r¡   rœ   rÜ   r   r   r   rÝ   G  s&    
þýúÿúz4TestExtractTableToStorageJob.test_from_api_repr_barec                 C   sH   t | jƒ}|  ¡ }|  ¡ }|j||d}|  |j|u ¡ |  ||¡ d S rÏ   rÞ   rß   r   r   r   rá   `  s    
z<TestExtractTableToStorageJob.test_from_api_repr_w_propertiesc           	      C   sü   d| j  }|  ¡ }|d d= |d= |d= |d= t|ƒ}t| j |d}t| jƒ}|  | j|| jg|¡}| 	¡  |  
t|jƒd¡ |jd	 }|  
|d
 d¡ |  
|d d| ¡ | j | jdœd| j | j| jdœ| jgdœidœ}|  
|d |¡ |  ||¡ d S )Nrâ   rI   rD   rJ   rM   rN   rã   rÊ   r   rå   ræ   r£   rç   rF   r%  rt   r0  rè   ré   )r>   rU   rê   rž   rŸ   r  r   r?   r)  rë   r   rì   rí   rb   rœ   )	r   rî   rÕ   rï   rª   r!  r[   rð   rñ   r   r   r   rò   h  s>    


ÿ
þýúÿûz6TestExtractTableToStorageJob.test_begin_w_bound_clientc                 C   s>  d| j  }| jdd}| j | j| jdœ| jgddddd	œ}||d
 d< tƒ }t| j |d}t|ƒ}t| j |d}t| jƒ}|  | j	|| jg|¡}	d|	_
d|	_d|	_d|	_|	j|d |  t|jƒd¡ |  t|jƒd¡ |jd }
|  |
d d¡ |  |
d d| ¡ | j | j	dœd|idœ}|  |
d |¡ |  |	|¡ d S )Nrâ   Tró   rt   ZGZIPZNEWLINE_DELIMITED_JSONrõ   F)r'  r(  r*  r+  rŽ   r,  rH   r%  rã   rÐ   r   rÊ   rå   ræ   r£   rç   rF   rè   ré   )r>   rU   rb   r  r)  rê   rž   rŸ   r   r?   r*  r.  r–   r/  rë   r   rì   rí   rœ   )r   rî   rÕ   ZEXTRACT_CONFIGURATIONrû   rü   rý   rþ   r!  r[   rð   rñ   r   r   r   rÿ     sN    
ýö
ÿ
þÿû	z:TestExtractTableToStorageJob.test_begin_w_alternate_clientc                 C   sª   d| j | jf }tƒ }t| j |d}t| jƒ}|  | j|| jg|¡}|  | 	¡ ¡ |  
t|jƒd¡ |jd }|  
|d d¡ |  
|d d| ¡ |  
|d	 d
di¡ d S 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  ¿  s    
ÿ
z<TestExtractTableToStorageJob.test_exists_miss_w_bound_clientc           	      C   sÖ   d| j | jf }tƒ }t| j |d}ti ƒ}t| j |d}t| jƒ}|  | j|| jg|¡}|  |j	|d¡ |  
t|jƒd¡ |  
t|jƒd¡ |jd }|  
|d d¡ |  
|d d	| ¡ |  
|d
 ddi¡ d S 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  Ï  s     
ÿ
z?TestExtractTableToStorageJob.test_exists_hit_w_alternate_clientc                 C   s¦   d| j | jf }|  ¡ }t|ƒ}t| j |d}t| jƒ}|  | j|| jg|¡}| 	¡  |  
t|jƒd¡ |jd }|  
|d d¡ |  
|d d| ¡ |  ||¡ d S r	  ©r>   r?   rU   rê   rž   rŸ   r  r   r)  r  r   rì   rí   rœ   )r   rî   rÕ   rï   rª   r!  r[   rð   r   r   r   r  â  s    
ÿ
z7TestExtractTableToStorageJob.test_reload_w_bound_clientc           
      C   sÐ   d| j | jf }|  ¡ }tƒ }t| j |d}t|ƒ}t| j |d}t| jƒ}|  | j|| jg|¡}|j	|d |  
t|jƒd¡ |  
t|jƒd¡ |jd }	|  
|	d d¡ |  
|	d d	| ¡ |  ||¡ d S r  r1  )
r   rî   rÕ   rû   rü   rý   rþ   r!  r[   rð   r   r   r   r  ó  s"    
ÿ
z;TestExtractTableToStorageJob.test_reload_w_alternate_client)FF)r   r   r   rQ   r  r)  r   rU   rœ   r¬   rÖ   rÙ   rÝ   rá   rò   rÿ   r  r  r  r  r  r   r   rq   r   r$  ã  s"   $'0r$  c                       s¢   e Zd ZdZdZdZdd„ Zd%‡ f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‡  ZS )&ÚTestQueryJobÚqueryzselect count(*) from personsr  c                 C   s   ddl m} |S )Nr   )ÚQueryJob)r   r4  )r   r4  r   r   r   r     s    zTestQueryJob._getTargetClassFc                    s,   t t| ƒ ||¡}|d d }| j|d< |S )NrH   r3  )rk   r2  rU   ÚQUERYr|   rq   r   r   rU     s    
ÿ
zTestQueryJob._makeResourcec                 C   s´   d|v r|   |j|d ¡ n|  |jd u ¡ d|v rH|   |j|d ¡ n|  |jd u ¡ d|v rt|   |j|d ¡ n|  |jd u ¡ d|v r |   |j|d ¡ n|  |jd u ¡ d S )NÚallowLargeResultsÚflattenResultsÚuseQueryCacheÚuseLegacySql)r   Úallow_large_resultsr   Úflatten_resultsÚuse_query_cacheÚuse_legacy_sqlr„   r   r   r   Ú _verifyBooleanResourceProperties  s(    ÿÿÿÿz-TestQueryJob._verifyBooleanResourcePropertiesc                 C   s4  |   ||¡ | di ¡ d¡}|  ||¡ d|v rF|  |j|d ¡ n|  |jd u ¡ d|v r„|j}|j|jdœ}|  ||d ¡ n|  |jd u ¡ d|v rÆ|j	}|j|j
|jdœ}|  ||d ¡ n|  |j	d u ¡ d|v rò|  |j|d ¡ n|  |jd u ¡ d	|v r |  |j|d	 ¡ n|  |jd u ¡ d S )
NrH   r3  r†   ÚdefaultDataset©rG   ru   rw   rt   Úpriorityr‰   )r`   r_   r>  r   rŠ   r   Údefault_datasetr0   r•   r“   r”   rA  rŒ   )r   r[   rT   r}   rà   Zds_refr«   Ztb_refr   r   r   rœ   /  sB    ÿþýÿ
ÿz&TestQueryJob._verifyResourcePropertiesc                 C   s  t | jƒ}|  | j| j|¡}|  |j| j¡ |  |j|u ¡ |  |j	| j
¡ |  |jd| j| jf ¡ |  |¡ |  |jd u ¡ |  |jd u ¡ |  |jd u ¡ |  |jd u ¡ |  |jd u ¡ |  |jd u ¡ |  |jd u ¡ |  |jd u ¡ |  |jd u ¡ d S r   )rž   r>   r   r?   r5  r   r3  r   r¡   r¢   rQ   r£   r\   r:  rŠ   rB  r“   r;  rA  r<  r=  rŒ   )r   rª   r[   r   r   r   r¬   X  s&    
þ
zTestQueryJob.test_ctorc                 C   sZ   |   ¡  t| jƒ}i }|  ¡ }|  t¡ |j||d W d   ƒ n1 sL0    Y  d S rÏ   rÑ   rÔ   r   r   r   rÖ   o  s    
z0TestQueryJob.test_from_api_repr_missing_identityc                 C   sv   |   ¡  t| jƒ}d| j| jf | j| jdœdœ}|  ¡ }|  t¡ |j||d W d   ƒ n1 sh0    Y  d S r×   rØ   rÔ   r   r   r   rÙ   w  s    
þþz.TestQueryJob.test_from_api_repr_missing_configc                 C   sj   |   ¡  t| jƒ}| j| j| jdœdd| jiidœ}|  ¡ }|j||d}|  |j	|u ¡ |  
||¡ d S )NrF   r3  rÛ   rÐ   )rC   rž   r>   r@   r?   r5  r   rÓ   r   r¡   rœ   rÜ   r   r   r   rÝ   …  s    
þ
ÿú
z$TestQueryJob.test_from_api_repr_barec                 C   sf   t | jƒ}|  ¡ }| j| j| jdœ|d d d< |  ¡ }|j||d}|  |j|u ¡ |  	||¡ d S )Nrt   rH   r3  rw   rÐ   )
rž   r>   rU   rb   r  r   rÓ   r   r¡   rœ   rß   r   r   r   rá   —  s    
ýz,TestQueryJob.test_from_api_repr_w_propertiesc                 C   sê   d| j  }|  ¡ }|d d= |d= |d= |d= t|ƒ}t| j |d}|  | j| j|¡}| ¡  |  |j	g ¡ |  t
|jƒd¡ |jd	 }|  |d
 d¡ |  |d d| ¡ | j | jdœdd| jiidœ}|  |d |¡ |  ||¡ d S )Nrâ   rI   rD   rJ   rM   rN   rã   rÊ   r   rå   ræ   r£   rç   rF   r3  rè   ré   )r>   rU   rê   rž   r   r?   r5  rë   r   r   rì   rí   rœ   )r   rî   rÕ   rï   rª   r[   rð   rñ   r   r   r   rò   ¤  s2    


þÿÿûz&TestQueryJob.test_begin_w_bound_clientc                 C   sŒ  ddl m} ddl m} d| j }d}d}| jdd}| jdd	| j|d
œ| j||dœddddddœ
}||d d< tƒ }t| j|d}	t|ƒ}
t| j|
d}|  | j	| j|	¡}|||	ƒ}|||ƒ}d|_
d	|_||_||_d|_d|_d|_d|_d|_|j|d |  t|jƒd¡ |  t|
jƒd¡ |
jd }|  |d d¡ |  |d d| ¡ | j| j	dœd|idœ}|  |d |¡ |  ||¡ d S )Nr   ©ÚDataset©ÚTablerâ   ÚTABLEÚDATASETTró   rô   r@  rt   ZINTERACTIVErø   )
r3  r6  r†   r?  rw   r7  rA  r8  r9  r‰   rH   r3  rã   rÐ   rÊ   rå   ræ   r£   rç   rF   rè   ré   )Úgcloud.bigquery.datasetrD  rF  r>   rU   r5  rê   rž   r   r?   r:  rŠ   rB  r“   r;  rA  r<  r=  rŒ   rë   r   rì   rí   rœ   )r   rD  rF  rî   rG  rb   rÕ   ZQUERY_CONFIGURATIONrû   rü   rý   rþ   r[   rà   r«   rð   rñ   r   r   r   rÿ   Ä  sj    
þýï


þÿû	z*TestQueryJob.test_begin_w_alternate_clientc           
      C   s  ddl m} d}d| j }|  ¡ }|d d= |d= |d= |d	= t|ƒ}t| j|d
}| j| j| j||d|ƒgd}| 	¡  |  
t|jƒd¡ |jd }|  
|d d¡ |  
|d d| ¡ |  
|j|d|ƒg¡ | j| jdœd| jd|igdœidœ}	|  
|d |	¡ |  ||¡ d S )Nr   r"   r$   râ   rI   rD   rJ   rM   rN   rã   r%   )r   rÊ   rå   ræ   r£   rç   rF   r3  )r3  ZuserDefinedFunctionResourcesrè   ré   )r   r#   r>   rU   rê   rž   r   r?   r5  rë   r   rì   rí   r   rœ   )
r   r#   r(   rî   rÕ   rï   rª   r[   rð   rñ   r   r   r   Ú!test_begin_w_bound_client_and_udf  sB    

ÿÿ

ÿþýÿûz.TestQueryJob.test_begin_w_bound_client_and_udfc                 C   sœ   d| j | jf }tƒ }t| j |d}|  | j| j|¡}|  | ¡ ¡ |  t	|j
ƒd¡ |j
d }|  |d d¡ |  |d d| ¡ |  |d	 d
di¡ d S r   )r>   r?   rê   rž   r   r5  r  r  r   rì   rí   )r   rî   rï   rª   r[   rð   r   r   r   r  .  s    
z,TestQueryJob.test_exists_miss_w_bound_clientc                 C   sÈ   d| j | jf }tƒ }t| j |d}ti ƒ}t| j |d}|  | j| j|¡}|  |j|d¡ |  t	|j
ƒd¡ |  t	|j
ƒd¡ |j
d }|  |d d¡ |  |d d	| ¡ |  |d
 ddi¡ d S r  )r>   r?   rê   rž   r   r5  r   r  r   rì   rí   )r   rî   rû   rü   rý   rþ   r[   rð   r   r   r   r  <  s    
z/TestQueryJob.test_exists_hit_w_alternate_clientc                 C   sà   ddl m} ddl m} d| j| jf }d}d}|  ¡ }t|ƒ}t| j|d}|  | j| j	|¡}	|||ƒ}
|||
ƒ}||	_
|	 ¡  |  |	j
d ¡ |  t|jƒd¡ |jd }|  |d	 d
¡ |  |d d| ¡ |  |	|¡ d S )Nr   rC  rE  r  rH  Ú
dest_tablerã   rÊ   rå   r  r£   rç   )rI  rD  rF  r>   r?   rU   rê   rž   r   r5  r“   r  r   rì   rí   rœ   )r   rD  rF  rî   rb   Ú
DEST_TABLErÕ   rï   rª   r[   rà   r«   rð   r   r   r   r  M  s&    


z'TestQueryJob.test_reload_w_bound_clientc                 C   sè   d| j | jf }d}d}|  ¡ }|d d }| j ||dœ|d< tƒ }t| j |d}t|ƒ}t| j |d}	|  | j| j|¡}
|
j|	d	 |  t	|j
ƒd
¡ |  t	|j
ƒd¡ |j
d
 }|  |d d¡ |  |d d| ¡ |  |
|¡ d S )Nr  rH  rK  rH   r3  rt   rw   rã   rÐ   r   rÊ   rå   r  r£   rç   )r>   r?   rU   rê   rž   r   r5  r  r   rì   rí   rœ   )r   rî   rb   rL  rÕ   Zq_configrû   rü   rý   rþ   r[   rð   r   r   r   r  f  s*    ý

z+TestQueryJob.test_reload_w_alternate_client)FF)r   r   r   rQ   r5  r  r   rU   r>  rœ   r¬   rÖ   rÙ   rÝ   rá   rò   rÿ   rJ  r  r  r  r  r  r   r   rq   r   r2    s&   ) A)r2  c                   @   s   e Zd Zddd„Zdd„ ZdS )rž   r0   Nc                 C   s   || _ || _d S r	   rã   )r   r0   rä   r   r   r   Ú__init__ƒ  s    z_Client.__init__c                 C   s   ddl m} ||| dS )Nr   rC  rÐ   )rI  rD  )r   r•   rD  r   r   r   rà   ‡  s    z_Client.dataset)r0   N)r   r   r   rM  rà   r   r   r   r   rž     s   
rž   c                   @   s:   e Zd Zd
dd„Zedd„ ƒZedd„ ƒZedd	„ ƒZdS )rŸ   Nc                 C   s
   || _ d S r	   )Ú_name)r   r•   r   r   r   rM  Ž  s    z_Table.__init__c                 C   s   | j d ur| j S tjS r	   )rN  rd   rc   rp   r   r   r   r•   ‘  s    
z_Table.namec                 C   s   t jS r	   )rd   r>   rp   r   r   r   r0   —  s    z_Table.projectc                 C   s   t jS r	   )rd   rb   rp   r   r   r   r”   ›  s    z_Table.dataset_name)N)r   r   r   rM  Úpropertyr•   r0   r”   r   r   r   r   rŸ   Œ  s   


rŸ   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   rM  ¢  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.exceptionsrR  rí   ÚappendrP  )r   r   rR  Úresponser   r   r   Úapi_request¦  s     z_Connection.api_requestN)r   r   r   rM  rU  r   r   r   r   rê      s   rê   )Z	unittest2ZTestCaser   r   r/   rd   r  r$  r2  rž   rŸ   rê   r   r   r   r   Ú<module>   s$   Fh   }  +  '  {