a
    ù!fûQ  ã                   @   st   d dl Z G dd„ de jƒZG dd„ de jƒ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                   @   s,   e Zd ZdZdZdd„ Zdd„ Zdd„ Zd	S )
ÚTestConnectionÚprojectú"logName:syslog AND severity>=ERRORc                 C   s   ddl m} |S )Nr   )Ú
Connection)Úgcloud.logging.connectionr   )Úselfr   © r   ú_/var/www/html/python-backend/venv/lib/python3.9/site-packages/gcloud/logging/test_connection.pyÚ_getTargetClass   s    zTestConnection._getTargetClassc                 O   s   |   ¡ |i |¤ŽS ©N©r
   ©r   ÚargsÚkwr   r   r	   Ú_makeOne   s    zTestConnection._makeOnec                 C   s.   t ƒ }|  |¡}|  ¡ }|  |jj|j¡ d S r   )Ú_Credentialsr   r
   ÚassertEqualÚcredentialsÚ_scopesZSCOPE)r   ÚcredsÚconnÚklassr   r   r	   Útest_default_url   s    
zTestConnection.test_default_urlN)Ú__name__Ú
__module__Ú__qualname__ÚPROJECTÚFILTERr
   r   r   r   r   r   r	   r      s
   r   c                   @   sl   e Zd ZdZdZdZdZdZdd„ Zdd	„ Z	d
d„ Z
edd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTest_LoggingAPIr   zentries:listzentries:writeÚLOGGER_NAMEr   c                 C   s   ddl m} |S )Nr   )Ú_LoggingAPI)r   r    )r   r    r   r   r	   r
   -   s    zTest_LoggingAPI._getTargetClassc                 O   s   |   ¡ |i |¤ŽS r   r   r   r   r   r	   r   1   s    zTest_LoggingAPI._makeOnec                 C   s$   t ƒ }|  |¡}|  |j|u ¡ d S r   ©Úobjectr   Ú
assertTrueÚ_connection©r   Ú
connectionÚapir   r   r	   Ú	test_ctor4   s    
zTest_LoggingAPI.test_ctorc                  C   s<   ddl m }  ddlm} ddlm} |  ¡ j|d}||ƒS )Nr   )Údatetime)ÚUTC)Ú_datetime_to_rfc3339_w_nanos)Útzinfo)r)   Zgcloud._helpersr*   Zgcloud.logging.test_entriesr+   ÚutcnowÚreplace)r)   r*   r+   ZNOWr   r   r	   Ú_make_timestamp9   s
    zTest_LoggingAPI._make_timestampc                 C   sÌ   |   ¡ }d}d}d| jgi}d}||ddi|d| j| jf dœg|d	œ}t|ƒ}|  |¡}| | jg¡\}	}
|  |	|d
 ¡ |  |
|¡ |  |jd d¡ d| j }|  |jd |¡ |  |jd |¡ d S )NÚIIDÚTEXTÚ
projectIdsÚTOKENÚtypeÚglobalúprojects/%s/logs/%s)ÚtextPayloadÚinsertIdÚresourceÚ	timestampÚlogName)ÚentriesÚnextPageTokenr<   ÚmethodÚPOSTú/%sÚpathÚdata)	r/   r   r   Ú_Connectionr   Úlist_entriesr   Ú_called_withÚLIST_ENTRIES_PATH)r   Ú	TIMESTAMPr0   r1   ÚSENTr3   ÚRETURNEDr   r'   r<   ÚtokenrA   r   r   r	   Útest_list_entries_no_pagingA   s4    ÿÿÿù
õ

z+Test_LoggingAPI.test_list_entries_no_pagingc              	   C   s0  ddl m} d}d}|  ¡ }d}d}ddd	œ}| ¡ }d
|d< d}	d}
||g| j||
|	dœ}d||ddi|d| j| jf dœ||ddi|d| j| jf dœgi}t|ƒ}|  |¡}|j	||g| j||
|	d\}}|  
||d ¡ |  
|d ¡ |  
|jd d¡ d| j }|  
|jd |¡ |  
|jd |¡ d S )Nr   )Ú
DESCENDINGÚPROJECT1ÚPROJECT2ÚIID1ÚIID2ZMESSAGEzpartly cloudy)ÚmessageÚweatherz#type.googleapis.com/testing.examplez@typer3   é*   )r2   ÚfilterZorderByÚpageSizeÚ	pageTokenr<   r4   r5   r6   )ÚjsonPayloadr8   r9   r:   r;   )ZprotoPayloadr8   r9   r:   r;   )ZprojectsÚfilter_Zorder_byÚ	page_sizeÚ
page_tokenr>   r?   r@   rA   rB   )Zgcloud.loggingrL   r/   Úcopyr   r   r   rC   r   rD   r   rE   rF   )r   rL   rM   rN   rG   rO   rP   ZPAYLOADZPROTO_PAYLOADr3   Ú	PAGE_SIZErH   rI   r   r'   r<   rJ   rA   r   r   r	   Útest_list_entries_w_pagingc   sd    
ûÿÿù
ÿÿù÷ÿ

þ

z*Test_LoggingAPI.test_list_entries_w_pagingc                 C   sŒ   d}|ddid| j | jf dœ}d|gi}ti ƒ}|  |¡}| |g¡ |  |jd d¡ d	| j }|  |jd
 |¡ |  |jd |¡ d S )Nr1   r4   r5   r6   )r7   r9   r;   r<   r>   r?   r@   rA   rB   ©r   r   rC   r   Zwrite_entriesr   rE   ÚWRITE_ENTRIES_PATH)r   r1   ZENTRYrH   r   r'   rA   r   r   r	   Útest_write_entries_singleš   s"    ÿÿû	ÿ

z)Test_LoggingAPI.test_write_entries_singlec                 C   s¶   d}d| j | jf }ddi}dddœ}d|i}d	d
dii}|||||gdœ}ti ƒ}|  |¡}	|	 ||g|||¡ |  |jd d¡ d| j }
|  |jd |
¡ |  |jd |¡ d S )Nr1   r6   r4   r5   ZquxÚeggs)ZbazZspamr7   rW   ZfooÚbar)r;   r9   Úlabelsr<   r>   r?   r@   rA   rB   r^   )r   r1   ZLOG_NAMEZRESOURCEZLABELSZENTRY1ZENTRY2rH   r   r'   rA   r   r   r	   Útest_write_entries_multiple±   s.    ÿþÿÿü

z+Test_LoggingAPI.test_write_entries_multiplec                 C   sZ   d| j | jf }ti ƒ}|  |¡}| | j | j¡ |  |jd d¡ |  |jd |¡ d S )Nz/projects/%s/logs/%sr>   ÚDELETErA   )r   r   rC   r   Zlogger_deleter   rE   )r   rA   r   r'   r   r   r	   Útest_logger_deleteÑ   s    
z"Test_LoggingAPI.test_logger_deleteN)r   r   r   r   rF   r_   r   r   r
   r   r(   Ústaticmethodr/   rK   r]   r`   rd   rf   r   r   r   r	   r   %   s   
"7 r   c                   @   sš   e Zd ZdZdZdef ZdZdeef 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!S )"ÚTest_SinksAPIr   r   zprojects/%s/sinksZ	sink_namezprojects/%s/sinks/%szfaux.googleapis.com/destinationc                 C   s   ddl m} |S )Nr   )Ú	_SinksAPI)r   ri   )r   ri   r   r   r	   r
   å   s    zTest_SinksAPI._getTargetClassc                 O   s   |   ¡ |i |¤ŽS r   r   r   r   r   r	   r   é   s    zTest_SinksAPI._makeOnec                 C   s$   t ƒ }|  |¡}|  |j|u ¡ d S r   r!   r%   r   r   r	   r(   ì   s    
zTest_SinksAPI.test_ctorc                 C   s¢   d}| j | j| jdœg|dœ}t|ƒ}|  |¡}| | j¡\}}|  ||d ¡ |  ||¡ |  |jd d¡ d| j	f }|  |jd |¡ |  |jd	 i ¡ d S )
Nr3   ©ÚnamerT   Údestination)Úsinksr=   rm   r>   ÚGETr@   rA   Úquery_params©
Ú	SINK_PATHr   ÚDESTINATION_URIrC   r   Z
list_sinksr   r   rE   ÚLIST_SINKS_PATH)r   r3   rI   r   r'   rm   rJ   rA   r   r   r	   Útest_list_sinks_no_pagingñ   s     ýú
z'Test_SinksAPI.test_list_sinks_no_pagingc           	      C   s°   d}d}d| j | j| jdœgi}t|ƒ}|  |¡}|j| j||d\}}|  ||d ¡ |  |d ¡ |  |jd d¡ d| j	f }|  |jd	 |¡ |  |jd
 ||dœ¡ d S )Nr3   rS   rm   rj   ©rY   rZ   r>   rn   r@   rA   ro   ©rU   rV   rp   )	r   r3   r\   rI   r   r'   rm   rJ   rA   r   r   r	   Útest_list_sinks_w_paging  s*    ýÿ
ÿ
ÿz&Test_SinksAPI.test_list_sinks_w_pagingc                 C   s¼   ddl m} | j| j| jdœ}tƒ }d|_|  |¡}|  |¡( | 	| j
| j| j| j¡ W d   ƒ n1 sl0    Y  |  |jd d¡ d| j
f }|  |jd |¡ |  |jd	 |¡ d S )
Nr   ©ÚConflictrj   Tr>   r?   ú/projects/%s/sinksrA   rB   )Úgcloud.exceptionsry   Ú	SINK_NAMEr   rr   rC   Ú_raise_conflictr   ÚassertRaisesÚsink_creater   r   rE   ©r   ry   rH   r   r'   rA   r   r   r	   Útest_sink_create_conflict!  s"    ý
þ"z'Test_SinksAPI.test_sink_create_conflictc                 C   s‚   | j | j| jdœ}ti ƒ}|  |¡}| | j| j | j| j¡ |  |jd d¡ d| jf }|  |jd |¡ |  |jd |¡ d S )Nrj   r>   r?   rz   rA   rB   )	r|   r   rr   rC   r   r   r   r   rE   ©r   rH   r   r'   rA   r   r   r	   Útest_sink_create_ok6  s    ý
ÿz!Test_SinksAPI.test_sink_create_okc                 C   sŽ   ddl m} tƒ }|  |¡}|  |¡  | | j| j¡ W d   ƒ n1 sL0    Y  |  |j	d d¡ d| j| jf }|  |j	d |¡ d S )Nr   ©ÚNotFoundr>   rn   ú/projects/%s/sinks/%srA   )
r{   r…   rC   r   r~   Úsink_getr   r|   r   rE   ©r   r…   r   r'   rA   r   r   r	   Útest_sink_get_missG  s    
.z Test_SinksAPI.test_sink_get_missc                 C   sx   | j | j| jdœ}t|ƒ}|  |¡}| | j| j¡}|  ||¡ |  |j	d d¡ d| j| jf }|  |j	d |¡ d S )Nrj   r>   rn   r†   rA   )
rq   r   rr   rC   r   r‡   r   r|   r   rE   ©r   ZRESPONSEr   r'   ÚresponserA   r   r   r	   Útest_sink_get_hitS  s    ý
zTest_SinksAPI.test_sink_get_hitc                 C   sº   ddl m} | j| j| jdœ}tƒ }|  |¡}|  |¡( | | j	| j| j| j¡ W d   ƒ n1 sf0    Y  |  
|jd d¡ d| j	| jf }|  
|jd |¡ |  
|jd |¡ d S )	Nr   r„   rj   r>   ÚPUTr†   rA   rB   )r{   r…   r|   r   rr   rC   r   r~   Úsink_updater   r   rE   ©r   r…   rH   r   r'   rA   r   r   r	   Útest_sink_update_missc  s     ý
þ"z#Test_SinksAPI.test_sink_update_missc                 C   s†   | j | j| jdœ}ti ƒ}|  |¡}| | j| j | j| j¡ |  |jd d¡ d| j| j f }|  |jd |¡ |  |jd |¡ d S )Nrj   r>   r   r†   rA   rB   )	r|   r   rr   rC   r   rŽ   r   r   rE   r‚   r   r   r	   Útest_sink_update_hitw  s    ý
ÿz"Test_SinksAPI.test_sink_update_hitc                 C   sŽ   ddl m} tƒ }|  |¡}|  |¡  | | j| j¡ W d   ƒ n1 sL0    Y  |  |j	d d¡ d| j| jf }|  |j	d |¡ d S )Nr   r„   r>   re   r†   rA   )
r{   r…   rC   r   r~   Úsink_deleter   r|   r   rE   rˆ   r   r   r	   Útest_sink_delete_missˆ  s    
.z#Test_SinksAPI.test_sink_delete_missc                 C   sZ   t i ƒ}|  |¡}| | j| j¡ |  |jd d¡ d| j| jf }|  |jd |¡ d S )Nr>   re   r†   rA   )rC   r   r’   r   r|   r   rE   ©r   r   r'   rA   r   r   r	   Útest_sink_delete_hit”  s    
z"Test_SinksAPI.test_sink_delete_hitN)r   r   r   r   r   rs   r|   rq   rr   r
   r   r(   rt   rw   r   rƒ   r‰   rŒ   r   r‘   r“   r•   r   r   r   r	   rh   Ü   s&   
rh   c                   @   s’   e Zd ZdZdZdef ZdZdeef 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S ) ÚTest_MetricsAPIr   r   zprojects/%s/metricsZmetric_namezprojects/%s/metrics/%sÚDESCRIPTIONc                 C   s   ddl m} |S )Nr   )Ú_MetricsAPI)r   r˜   )r   r˜   r   r   r	   r
   ¨  s    zTest_MetricsAPI._getTargetClassc                 O   s   |   ¡ |i |¤ŽS r   r   r   r   r   r	   r   ¬  s    zTest_MetricsAPI._makeOnec                 C   sŒ   d}| j | jdœg|dœ}t|ƒ}|  |¡}| | j¡\}}|  ||d ¡ |  ||¡ |  |jd d¡ d| jf }|  |jd |¡ d S )	Nr3   ©rk   rT   )Úmetricsr=   rš   r>   rn   r@   rA   ©	ÚMETRIC_PATHr   rC   r   Zlist_metricsr   r   rE   ÚLIST_METRICS_PATH)r   r3   rI   r   r'   rš   rJ   rA   r   r   r	   Útest_list_metrics_no_paging¯  s    þû
z+Test_MetricsAPI.test_list_metrics_no_pagingc           	      C   s¬   d}d}d| j | jdœgi}t|ƒ}|  |¡}|j| j||d\}}|  ||d ¡ |  |d ¡ |  |jd d¡ d| jf }|  |jd	 |¡ |  |jd
 ||dœ¡ d S )Nr3   rS   rš   r™   ru   r>   rn   r@   rA   ro   rv   r›   )	r   r3   r\   rI   r   r'   rš   rJ   rA   r   r   r	   Útest_list_metrics_w_pagingÄ  s(    þÿ
ÿ
ÿz*Test_MetricsAPI.test_list_metrics_w_pagingc                 C   s¼   ddl m} | j| j| jdœ}tƒ }d|_|  |¡}|  |¡( | 	| j
| j| j| j¡ W d   ƒ n1 sl0    Y  |  |jd d¡ d| j
f }|  |jd |¡ |  |jd	 |¡ d S )
Nr   rx   ©rk   rT   ÚdescriptionTr>   r?   ú/projects/%s/metricsrA   rB   )r{   ry   ÚMETRIC_NAMEr   r—   rC   r}   r   r~   Úmetric_creater   r   rE   r€   r   r   r	   Útest_metric_create_conflictÜ  s"    ý
þ"z+Test_MetricsAPI.test_metric_create_conflictc                 C   s‚   | j | j| jdœ}ti ƒ}|  |¡}| | j| j | j| j¡ |  |jd d¡ d| jf }|  |jd |¡ |  |jd |¡ d S )Nr    r>   r?   r¢   rA   rB   )	r£   r   r—   rC   r   r¤   r   r   rE   r‚   r   r   r	   Útest_metric_create_okñ  s    ý
ÿz%Test_MetricsAPI.test_metric_create_okc                 C   sŽ   ddl m} tƒ }|  |¡}|  |¡  | | j| j¡ W d   ƒ n1 sL0    Y  |  |j	d d¡ d| j| jf }|  |j	d |¡ d S )Nr   r„   r>   rn   ú/projects/%s/metrics/%srA   )
r{   r…   rC   r   r~   Ú
metric_getr   r£   r   rE   rˆ   r   r   r	   Útest_metric_get_miss  s    
.z$Test_MetricsAPI.test_metric_get_missc                 C   sx   | j | j| jdœ}t|ƒ}|  |¡}| | j| j ¡}|  ||¡ |  |jd d¡ d| j| j f }|  |jd |¡ d S )Nr    r>   rn   r§   rA   )	r£   r   r—   rC   r   r¨   r   r   rE   rŠ   r   r   r	   Útest_metric_get_hit  s    ý
z#Test_MetricsAPI.test_metric_get_hitc                 C   sº   ddl m} | j| j| jdœ}tƒ }|  |¡}|  |¡( | | j	| j| j| j¡ W d   ƒ n1 sf0    Y  |  
|jd d¡ d| j	| jf }|  
|jd |¡ |  
|jd |¡ d S )	Nr   r„   r    r>   r   r§   rA   rB   )r{   r…   r£   r   r—   rC   r   r~   Úmetric_updater   r   rE   r   r   r   r	   Útest_metric_update_miss  s     ý
þ"z'Test_MetricsAPI.test_metric_update_missc                 C   s†   | j | j| jdœ}ti ƒ}|  |¡}| | j| j | j| j¡ |  |jd d¡ d| j| j f }|  |jd |¡ |  |jd |¡ d S )Nr    r>   r   r§   rA   rB   )	r£   r   r—   rC   r   r«   r   r   rE   r‚   r   r   r	   Útest_metric_update_hit2  s    ý
ÿz&Test_MetricsAPI.test_metric_update_hitc                 C   sŽ   ddl m} tƒ }|  |¡}|  |¡  | | j| j¡ W d   ƒ n1 sL0    Y  |  |j	d d¡ d| j| jf }|  |j	d |¡ d S )Nr   r„   r>   re   r§   rA   )
r{   r…   rC   r   r~   Úmetric_deleter   r£   r   rE   rˆ   r   r   r	   Útest_metric_delete_missC  s    
.z'Test_MetricsAPI.test_metric_delete_missc                 C   sZ   t i ƒ}|  |¡}| | j| j¡ |  |jd d¡ d| j| jf }|  |jd |¡ d S )Nr>   re   r§   rA   )rC   r   r®   r   r£   r   rE   r”   r   r   r	   Útest_metric_delete_hitO  s    
z&Test_MetricsAPI.test_metric_delete_hitN)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$   
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   )r   )r   Úscoper   r   r	   Úcreate_scopedb  s    z_Credentials.create_scoped)r   r   r   r   rg   r±   r³   r   r   r   r	   r   Z  s   
r   c                   @   s$   e Zd ZdZdZdd„ Zdd„ ZdS )rC   NFc                 G   s
   || _ d S r   )Ú
_responses)r   Ú	responsesr   r   r	   Ú__init__l  s    z_Connection.__init__c                 K   sl   ddl m} ddl m} || _| jr,|dƒ‚z | jd | jdd …  }| _W n tyf   |dƒ‚Y n0 |S )Nr   rx   r„   Zoopsé   Zmiss)r{   ry   r…   rE   r}   r´   Ú
IndexError)r   r   ry   r…   r‹   r   r   r	   Úapi_requesto  s     z_Connection.api_request)r   r   r   rE   r}   r¶   r¹   r   r   r   r	   rC   g  s   rC   )	Z	unittest2ZTestCaser   r   rh   r–   r"   r   rC   r   r   r   r	   Ú<module>   s    8 D <