a
    !fe                     @   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G d
d deZG dd deZ	dS )    Nc                   @   s   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)S )*
TestLoggertest-projectzlogger-namec                 C   s   ddl m} |S )Nr   Logger)gcloud.logging.loggerr   )selfr    r   [/var/www/html/python-backend/venv/lib/python3.9/site-packages/gcloud/logging/test_logger.py_getTargetClass   s    zTestLogger._getTargetClassc                 O   s   |   |i |S Nr
   )r   argskwr   r   r	   _makeOne   s    zTestLogger._makeOnec                 C   s   t  }t| j|}| j| j|d}| |j| j | |j|u  | |j	| j | |j
d| j| jf  | |jd| j| jf  | |jd  d S )Nclientprojects/%s/logs/%s/projects/%s/logs/%sobject_ClientPROJECTr   LOGGER_NAMEassertEqualname
assertTruer   projectZ	full_namepathlabels)r   connr   loggerr   r   r	   test_ctor_defaults   s    



zTestLogger.test_ctor_defaultsc                 C   s   ddd}t  }t| j|}| j| j||d}| |j| j | |j|u  | |j	| j | |j
d| j| jf  | |jd| j| jf  | |j| d S )NbarquxfooZbazr   r   r   r   r   )r   LABELSr   r   r    r   r   r	   test_ctor_explicit+   s    




zTestLogger.test_ctor_explicitc                 C   sj   ddl m} t }t| j|}| j| j|d}| }| t	|| | |j
|u  | |j|u  d S Nr   Batchr   r   r+   r   r   r   r   r   batchr   
isinstancer    r   )r   r+   r   r   r    r-   r   r   r	   test_batch_w_bound_client9   s    z$TestLogger.test_batch_w_bound_clientc                 C   s~   ddl m} t }t }t| j|}t| j|}| j| j|d}||}| t	|| | |j
|u  | |j|u  d S r)   r,   )r   r+   Zconn1Zconn2client1client2r    r-   r   r   r	   test_batch_w_alternate_clientC   s    
z(TestLogger.test_batch_w_alternate_clientc                 C   sl   d}d| j | jf |ddidg}t| j }t  }|_| j| j|d}|| | |j|d d d f d S )NTEXTr   typeglobal)logNametextPayloadresourcer   	r   r   r   _DummyLoggingAPIlogging_apir   log_textr   _write_entries_called_with)r   r3   ENTRIESr   apir    r   r   r	   #test_log_text_w_str_implicit_clientO   s    


z.TestLogger.test_log_text_w_str_implicit_clientc                 C   sx   d}ddi}d| j | jf |ddi|dg}t| j }t  }|_| j| j||d}|| | |j|d d d f d S )	Nr3   r%   spamr   r4   r5   )r6   r7   r8   r   r&   r9   )r   r3   DEFAULT_LABELSr>   r   r?   r    r   r   r	   test_log_text_w_default_labelsb   s&    	



z)TestLogger.test_log_text_w_default_labelsc                 C   s   d}ddi}ddd}d}d}d	}d
}d}|||d}	d| j | jf |ddi||||	dg}
t| j }t| j }t  }|_| j| j||d}|j||||||	d | |j|
d d d f d S )Nr3   r%   rA   r"   r#   r$   IIDCRITICALPOST https://api.example.com/endpoint500ZrequestMethodZ
requestUrlstatusr   r4   r5   )r6   r7   r8   r   insertIdseverityhttpRequestr&   r   r   	insert_idrL   http_requestr9   )r   r3   rB   r'   rD   SEVERITYMETHODURISTATUSREQUESTr>   r0   r1   r?   r    r   r   r	   ?test_log_text_w_unicode_explicit_client_labels_severity_httpreqx   sF    





zJTestLogger.test_log_text_w_unicode_explicit_client_labels_severity_httpreqc                 C   sr   ddd}d| j | jf |ddidg}t| j }t  }|_| j| j|d}|| | |j|d d d f d S )	NMESSAGEcloudymessageweatherr   r4   r5   )r6   jsonPayloadr8   r   	r   r   r   r:   r;   r   
log_structr   r=   )r   STRUCTr>   r   r?   r    r   r   r	   !test_log_struct_w_implicit_client   s    



z,TestLogger.test_log_struct_w_implicit_clientc                 C   s~   ddd}ddi}d| j | jf |ddi|d	g}t| j }t  }|_| j| j||d
}|| | |j|d d d f d S )NrW   rX   rY   r%   rA   r   r4   r5   )r6   r\   r8   r   r&   r]   )r   r_   rB   r>   r   r?   r    r   r   r	    test_log_struct_w_default_labels   s&    
	



z+TestLogger.test_log_struct_w_default_labelsc                 C   s   ddd}ddi}ddd}d	}d
}d}d}d}|||d}	d| j | jf |ddi||||	dg}
t| j }t| j }t  }|_| j| j||d}|j||||||	d | |j|
d d d f d S )NrW   rX   rY   r%   rA   r"   r#   r$   rD   rE   rF   rG   rH   rI   r   r4   r5   )r6   r\   r8   r   rK   rL   rM   r&   rN   r]   )r   r_   rB   r'   rD   rQ   rR   rS   rT   rU   r>   r0   r1   r?   r    r   r   r	   9test_log_struct_w_explicit_client_labels_severity_httpreq   sH    






zDTestLogger.test_log_struct_w_explicit_client_labels_severity_httpreqc           
      C   s   dd l }ddlm} ddlm}m} |d|ddid}d| j| jf |||d	d
idg}t	| j}t
  }|_| j| j|d}	|	| | |j|d d d f d S )Nr   MessageToJsonStructValuer%   TZ
bool_valuefieldsr   r4   r5   )r6   protoPayloadr8   r   jsongoogle.protobuf.json_formatrd   google.protobuf.struct_pb2rf   rg   r   r   loadsr   r:   r;   r   	log_protor   r=   )
r   rm   rd   rf   rg   rZ   r>   r   r?   r    r   r   r	    test_log_proto_w_implicit_client   s$    


z+TestLogger.test_log_proto_w_implicit_clientc                 C   s   dd l }ddlm} ddlm}m} |d|ddid}ddi}d	| j| jf |||d
di|dg}t	| j}t
  }	|_| j| j||d}
|
| | |	j|d d d f d S )Nr   rc   re   r%   Trh   ri   rA   r   r4   r5   )r6   rk   r8   r   r&   rl   )r   rm   rd   rf   rg   rZ   rB   r>   r   r?   r    r   r   r	   test_log_proto_w_default_labels  s,    	



z*TestLogger.test_log_proto_w_default_labelsc                 C   s   dd l }ddlm} ddlm}m} |d|ddid}ddi}d	d
d}d}d}	d}
d}d}|
||d}d| j| jf |||ddi|||	|dg}t	| j}t	| j}t
  }|_| j| j||d}|j|||||	|d | |j|d d d f d S )Nr   rc   re   r%   Trh   ri   rA   r"   r#   r$   rD   rE   rF   rG   rH   rI   r   r4   r5   )r6   rk   r8   r   rK   rL   rM   r&   rN   rl   )r   rm   rd   rf   rg   rZ   rB   r'   rD   rQ   rR   rS   rT   rU   r>   r0   r1   r?   r    r   r   r	   8test_log_proto_w_explicit_client_labels_severity_httpreq  sN    





zCTestLogger.test_log_proto_w_explicit_client_labels_severity_httpreqc                 C   sJ   t | jd}t  }|_| j| j|d}|  | |j| j| jf d S Nr   r   	r   r   r:   r;   r   r   deleter   _logger_delete_called_with)r   r   r?   r    r   r   r	   test_delete_w_bound_clientG  s    
z%TestLogger.test_delete_w_bound_clientc                 C   sZ   t | jd}t | jd}t  }|_| j| j|d}|j|d | |j| j| jf d S ru   rw   )r   r0   r1   r?   r    r   r   r	   test_delete_w_alternate_clientQ  s    
z)TestLogger.test_delete_w_alternate_clientc                 C   sz   d d| j | jf d d d d}d}t| j }||_| j| j|d}| \}}| t|d | || | |j| d S )NzlogName=projects/%s/logs/%sZprojectsfilter_Zorder_byZ	page_sizeZ
page_tokenTOKENr   r   )	r   r   r   _tokenr   list_entriesr   len_listed)r   LISTEDr~   r   r    entriestokenr   r   r	   test_list_entries_defaults\  s     

z%TestLogger.test_list_entries_defaultsc                 C   s   ddl m} d}d}d}d}d}ddgd|| j| jf |||d	}t| j}| j| j|d
}	|	j||g||||d	\}
}| t|
d | |d  | |j	| d S )Nr   )
DESCENDINGPROJECT1PROJECT2zresource.type:globalr~   *   z"%s AND logName=projects/%s/logs/%sr|   r   )
Zgcloud.loggingr   r   r   r   r   r   r   r   r   )r   r   r   r   ZFILTERr~   Z	PAGE_SIZEr   r   r    r   r   r   r   r	   test_list_entries_explicitn  s.    


z%TestLogger.test_list_entries_explicitN)__name__
__module____qualname__r   r   r
   r   r!   r(   r/   r2   r@   rC   rV   r`   ra   rb   rr   rs   rt   rz   r{   r   r   r   r   r   r	   r      s*   
&'*
r   c                   @   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S )	TestBatchr   c                 C   s   ddl m} |S )Nr   r*   )r   r+   )r   r+   r   r   r	   r
     s    zTestBatch._getTargetClassc                 O   s   |   |i |S r   r   )r   r   kwargsr   r   r	   r     s    zTestBatch._makeOnec                 C   sT   t  }t| jd}| ||}| |j|u  | |j|u  | t|j	d d S )Nrv   r   )
_Loggerr   r   r   r   r    r   r   r   r   r   r    r   r-   r   r   r	   r!     s    zTestBatch.test_ctor_defaultsc              	   C   sR   d}t | jt d}t }| j||d}|| | |jd|d d d d fg d S )NThis is the entry textr   
connectionr   textr   r   r   r   r   r<   r   r   )r   r3   r   r    r-   r   r   r	   test_log_text_defaults  s    
z TestBatch.test_log_text_defaultsc              	   C   s   d}ddd}d}d}d}d}d	}|||d
}t | jt d}	t }
| j|
|	d}|j|||||d | |jd|||||fg d S )Nr   r"   r#   r$   rD   rE   rF   rG   rH   rI   r   r   r   rO   rL   rP   r   r   )r   r3   r'   rD   rQ   rR   rS   rT   rU   r   r    r-   r   r   r	   test_log_text_explicit  s(    
z TestBatch.test_log_text_explicitc              	   C   sX   ddd}t | jt d}t }| j||d}|| | |jd|d d d d fg d S )NMessage textpartly cloudyrY   r   r   structr   r   r   r   r   r^   r   r   )r   r_   r   r    r-   r   r   r	   test_log_struct_defaults  s    

z"TestBatch.test_log_struct_defaultsc              	   C   s   ddd}ddd}d}d}d	}d
}d}|||d}t | jt d}	t }
| j|
|	d}|j|||||d | |jd|||||fg d S )Nr   r   rY   r"   r#   r$   rD   rE   rF   rG   rH   rI   r   r   r   r   r   )r   r_   r'   rD   rQ   rR   rS   rT   rU   r   r    r-   r   r   r	   test_log_struct_explicit  s(    


z"TestBatch.test_log_struct_explicitc              	   C   sr   ddl m}m} |d|ddid}t| jt d}t }| j||d}|| | 	|j
d	|d d d d fg d S )
Nr   re   r%   Trh   ri   r   r   protoro   rf   rg   r   r   r   r   r   rq   r   r   )r   rf   rg   rZ   r   r    r-   r   r   r	   test_log_proto_defaults  s    
z!TestBatch.test_log_proto_defaultsc              	   C   s   ddl m}m} |d|ddid}ddd	}d
}d}d}d}d}	|||	d}
t| jt d}t }| j||d}|j|||||
d | 	|j
d|||||
fg d S )Nr   re   r%   Trh   ri   r"   r#   r$   rD   rE   rF   rG   rH   rI   r   r   r   r   r   )r   rf   rg   rZ   r'   rD   rQ   rR   rS   rT   rU   r   r    r-   r   r   r	   test_log_proto_explicit  s*    

z!TestBatch.test_log_proto_explicitc                 C   sd   t  }t| jt d}| ||}|jd | t |	  W d    n1 sV0    Y  d S )Nr   )ZbogusZBOGUSNNNN)
r   r   r   r   r   r   appendassertRaises
ValueErrorcommitr   r   r   r	    test_commit_w_invalid_entry_type  s    z*TestBatch.test_commit_w_invalid_entry_typec                 C   s  dd l }ddlm} ddlm}m} d}|dd}|d|dd	id
}d}d}	d}
ddi}||d||	d||||
dg}t| jd}t	  }|_
t }| j||d}|j||d |j||	d |j||
d |  | t|jg  | |j||j|d f d S )Nr   rc   re   r   r   rY   r%   Trh   ri   IID1IID2IID3r4   r5   )r7   rK   )r\   rK   )rk   rK   rv   r   rO   )rm   rn   rd   ro   rf   rg   rp   r   r   r:   r;   r   r   r<   r^   rq   r   r   listr   r=   r   )r   rm   rd   rf   rg   r3   r_   rZ   r   r   r   RESOURCEr>   r   r?   r    r-   r   r   r	   test_commit_w_bound_client  s:    
z$TestBatch.test_commit_w_bound_clientc                 C   sR  dd l }ddlm} ddlm}m} ddlm} d}|dd}|d|d	d
id}ddi}	ddd}
d}d}d}d}|||d}t| j	d}t| j	d}t
  }|_|d||	d}ddi}||
d||d||||dg}| j||d}|j||
d |j||d |j||d |j|d | t|jg  | |j||j||	f d S ) Nr   rc   re   r   r   r   rY   r%   Trh   ri   rA   r"   r#   r$   rE   rF   rG   rH   rI   rv   logger_namer   r4   r5   )r7   r   )r\   rL   )rk   rM   r   rL   rP   )rm   rn   rd   ro   rf   rg   r   r   r   r   r:   r;   rp   r   r<   r^   rq   r   r   r   r   r=   r   )r   rm   rd   rf   rg   r   r3   r_   rZ   rB   r'   rQ   rR   rS   rT   rU   r0   r1   r?   r    r   r>   r-   r   r   r	   test_commit_w_alternate_client  sN    
z(TestBatch.test_commit_w_alternate_clientc                 C   s`  dd l }ddlm} ddlm}m} ddlm} d}|dd}|d|d	d
id}ddi}	ddd}
d}d}d}d}|||d}t| j	d}t
  }|_|d||	d}ddi}||d||
d||||dg}| j||d}|:}|j||d |j||
d |j||d W d    n1 s(0    Y  | t|jg  | |j||j||	f d S ) Nr   rc   re   r   r   r   rY   r%   Trh   ri   rA   r"   r#   r$   rE   rF   rG   rH   rI   rv   r   r   r4   r5   )r7   rM   )r\   r   )rk   rL   r   r   r   )rm   rn   rd   ro   rf   rg   r   r   r   r   r:   r;   rp   r   r<   r^   rq   r   r   r   r=   r   )r   rm   rd   rf   rg   r   r3   r_   rZ   rB   r'   rQ   rR   rS   rT   rU   r   r?   r    r   r>   r-   otherr   r   r	   test_context_mgr_successK  sJ    

.z"TestBatch.test_context_mgr_successc                 C   sL  ddl m}m} d}|dd}ddd}d	}d
}d}d}	d}
||	|
d}|d|ddid}t| jd}t  }|_t }d|d |d d fd|d d |d fd||d d |fg}| j||d}z\|B}|j	||d |j
||d |j|||d t W d    n1 s0    Y  W n ty&   Y n0 | t|j| | |jd  d S )Nr   re   r   r   rY   r"   r#   r$   rD   rE   rF   rG   rH   rI   r%   Trh   ri   rv   r   r   r   r   r   r   )r   rP   )ro   rf   rg   r   r   r:   r;   r   r   r<   r^   rq   _Bugoutr   r   r   r=   )r   rf   rg   r3   r_   r'   rD   rQ   rR   rS   rT   rU   rZ   r   r?   r    ZUNSENTr-   r   r   r   r	   test_context_mgr_failureu  s@    

*z"TestBatch.test_context_mgr_failureN)r   r   r   r   r
   r   r!   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r     s   		
!,*r   c                   @   s   e Zd ZdZdddZdS )r   NNAMEr   c                 C   s   d||f | _ d S )Nr   )r   )r   r   r   r   r   r	   __init__  s    z_Logger.__init__)r   r   )r   r   r   r   r   r   r   r   r	   r     s   r   c                   @   s"   e Zd ZdZdddZdd ZdS )r:   Nc                 C   s   ||||f| _ d S r   )r=   )r   r   r   r8   r   r   r   r	   write_entries  s    z_DummyLoggingAPI.write_entriesc                 C   s   ||f| _ d S r   )ry   )r   r   r   r   r   r	   logger_delete  s    z_DummyLoggingAPI.logger_delete)NNN)r   r   r   r=   r   r   r   r   r   r	   r:     s
     
r:   c                   @   s*   e Zd Zd ZZdZdddZdd ZdS )r   Nr   c                 C   s   || _ || _d S r   r   )r   r   r   r   r   r	   r     s    z_Client.__init__c                 K   s   || _ | j| jfS r   )r   _entriesr   )r   r   r   r   r	   r     s    z_Client.list_entries)N)r   r   r   r   r   r   r   r   r   r   r   r	   r     s   
r   c                   @   s   e Zd ZdS )r   N)r   r   r   r   r   r   r	   r     s   r   )
Z	unittest2ZTestCaser   r   r   r   r:   r   	Exceptionr   r   r   r   r	   <module>   s     w  