a
    ù!f‹E  ã                   @   s^   d dl 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ZdZd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d0d1„ Zd2S )3Ú
TestClientÚPROJECTÚLOGGER_NAMEÚ	SINK_NAMEú"logName:syslog AND severity>=ERRORzfaux.googleapis.com/destinationZmetric_nameÚDESCRIPTIONc                 C   s   ddl m} |S )Nr   )ÚClient)Zgcloud.logging.clientr   )Úselfr   © r
   ú[/var/www/html/python-backend/venv/lib/python3.9/site-packages/gcloud/logging/test_client.pyÚ_getTargetClass   s    zTestClient._getTargetClassc                 O   s   |   ¡ |i |¤ŽS ©N)r   )r	   ÚargsÚkwr
   r
   r   Ú_makeOne!   s    zTestClient._makeOnec                 C   s*   t ƒ }| j| j|d}|  |j| j¡ d S )N©ÚprojectÚcredentials)Ú_Credentialsr   r   ÚassertEqualr   )r	   ÚcredsÚclientr
   r
   r   Ú	test_ctor$   s    zTestClient.test_ctorc                 C   s¬   ddl m} ddlm} ddlm} | j| jtƒ d}t	ƒ  }|_
||dd |j}W d   ƒ n1 sj0    Y  |  t||ƒ¡ |  |j|u ¡ |j}|  ||u ¡ d S )Nr   )Ú_LoggingAPI©r   ©Ú_Monkey©r   F©Ú_USE_GAX)Úgcloud.logging.connectionr   Úgcloud.loggingr   Úgcloud._testingr   r   r   r   ÚobjectÚ
connectionÚlogging_apiÚ
assertTrueÚ
isinstanceÚ_connection)r	   r   ÚMUTr   r   ÚconnÚapiÚagainr
   r
   r   Útest_logging_api_wo_gax)   s    $z"TestClient.test_logging_api_wo_gaxc           	         sÀ   ddl m} ddlm} tƒ ‰g ‰ ‡ ‡fdd„}G dd„ dtƒ}tƒ }| j| j|d}||d	||d
 |j}W d   ƒ n1 s‚0    Y  |  	||¡ |  
|jˆu ¡ |j}|  
||u ¡ d S )Nr   r   r   c                     s   ˆ   | |f¡ ˆS r   ©Úappend©r   r   ©Z_called_withÚwrappedr
   r   Ú_generated_api@   s    z9TestClient.test_logging_api_w_gax.<locals>._generated_apic                   @   s   e Zd Zdd„ ZdS )z9TestClient.test_logging_api_w_gax.<locals>._GaxLoggingAPIc                 S   s
   || _ d S r   ©Ú_wrapped©r	   r5   r
   r
   r   Ú__init__F   s    zBTestClient.test_logging_api_w_gax.<locals>._GaxLoggingAPI.__init__N©Ú__name__Ú
__module__Ú__qualname__r7   r
   r
   r
   r   Ú_GaxLoggingAPID   s   r<   r   T)r   ZGeneratedLoggingAPIZGAXLoggingAPI)r!   r   r"   r   r#   r   r   r   r%   ÚassertIsInstancer&   r5   )	r	   r)   r   r3   r<   r   r   r+   r,   r
   r1   r   Útest_logging_api_w_gax9   s$    ý$z!TestClient.test_logging_api_w_gaxc                 C   s¬   ddl m} ddlm} ddlm} | j| jtƒ d}t	ƒ  }|_
||dd |j}W d   ƒ n1 sj0    Y  |  t||ƒ¡ |  |j|u ¡ |j}|  ||u ¡ d S )Nr   )Ú	_SinksAPIr   r   r   Fr   )r    r?   r!   r   r"   r   r   r   r   r#   r$   Ú	sinks_apir&   r'   r(   )r	   r?   r)   r   r   r*   r+   r,   r
   r
   r   Útest_sinks_api_wo_gaxX   s    $z TestClient.test_sinks_api_wo_gaxc           	         sÀ   ddl m} ddlm} tƒ ‰g ‰ ‡ ‡fdd„}G dd„ dtƒ}tƒ }| j| j|d}||d	||d
 |j}W d   ƒ n1 s‚0    Y  |  	||¡ |  
|jˆu ¡ |j}|  
||u ¡ d S )Nr   r   r   c                     s   ˆ   | |f¡ ˆS r   r.   r0   r1   r
   r   r3   o   s    z7TestClient.test_sinks_api_w_gax.<locals>._generated_apic                   @   s   e Zd Zdd„ ZdS )z5TestClient.test_sinks_api_w_gax.<locals>._GaxSinksAPIc                 S   s
   || _ d S r   r4   r6   r
   r
   r   r7   u   s    z>TestClient.test_sinks_api_w_gax.<locals>._GaxSinksAPI.__init__Nr8   r
   r
   r
   r   Ú_GaxSinksAPIs   s   rB   r   T)r   ZGeneratedSinksAPIZGAXSinksAPI)r!   r   r"   r   r#   r   r   r   r@   r=   r&   r5   )	r	   r)   r   r3   rB   r   r   r+   r,   r
   r1   r   Útest_sinks_api_w_gaxh   s$    ý$zTestClient.test_sinks_api_w_gaxc                 C   s¬   ddl m} ddlm} ddlm} | j| jtƒ d}t	ƒ  }|_
||dd |j}W d   ƒ n1 sj0    Y  |  t||ƒ¡ |  |j|u ¡ |j}|  ||u ¡ d S )Nr   )Ú_MetricsAPIr   r   r   Fr   )r    rD   r!   r   r"   r   r   r   r   r#   r$   Úmetrics_apir&   r'   r(   )r	   rD   r)   r   r   r*   r+   r,   r
   r
   r   Útest_metrics_api_wo_gax‡   s    $z"TestClient.test_metrics_api_wo_gaxc           	         sÀ   ddl m} ddlm} tƒ ‰g ‰ ‡ ‡fdd„}G dd„ dtƒ}tƒ }| j| j|d}||d	||d
 |j}W d   ƒ n1 s‚0    Y  |  	||¡ |  
|jˆu ¡ |j}|  
||u ¡ d S )Nr   r   r   c                     s   ˆ   | |f¡ ˆS r   r.   r0   r1   r
   r   r3   ž   s    z9TestClient.test_metrics_api_w_gax.<locals>._generated_apic                   @   s   e Zd Zdd„ ZdS )z9TestClient.test_metrics_api_w_gax.<locals>._GaxMetricsAPIc                 S   s
   || _ d S r   r4   r6   r
   r
   r   r7   ¤   s    zBTestClient.test_metrics_api_w_gax.<locals>._GaxMetricsAPI.__init__Nr8   r
   r
   r
   r   Ú_GaxMetricsAPI¢   s   rG   r   T)r   ZGeneratedMetricsAPIZGAXMetricsAPI)r!   r   r"   r   r#   r   r   r   rE   r=   r&   r5   )	r	   r)   r   r3   rG   r   r   r+   r,   r
   r1   r   Útest_metrics_api_w_gax—   s$    ý$z!TestClient.test_metrics_api_w_gaxc                 C   sr   ddl m} tƒ }| j| j|d}| | j¡}|  t||ƒ¡ |  	|j
| j¡ |  |j|u ¡ |  	|j| j¡ d S )Nr   ©ÚLoggerr   )Úgcloud.logging.loggerrJ   r   r   r   Úloggerr   r&   r'   r   Únamer   r   )r	   rJ   r   r   rL   r
   r
   r   Útest_logger¶   s    zTestClient.test_loggerc                 C   sX   d}t ƒ }|  ||¡}i }|  t¡  | di i|¡ W d   ƒ n1 sJ0    Y  d S )Nr   ZunknownPayload)r   r   ÚassertRaisesÚ
ValueErrorZ_entry_from_resource)r	   r   r   r   Úloggersr
   r
   r   Ú&test__entry_from_resource_unknown_typeÀ   s    z1TestClient.test__entry_from_resource_unknown_typec                 C   s  ddl m} d}d}d}||ddid| j| jf d	œg}tƒ }| j| j|d
}tƒ  }|_||f|_| 	¡ \}	}
|  
t|	ƒd¡ |	d }|  t||ƒ¡ |  
|j|¡ |  
|j|¡ |j}|  
|j| j¡ |  |j|u ¡ |  
|j| j¡ |  
|
|¡ |  
|j| jgd d d d f¡ d S )Nr   )Ú	TextEntryÚIIDÚTEXTÚTOKENÚtypeÚglobalúprojects/%s/logs/%s)ZtextPayloadÚinsertIdÚresourceÚlogNamer   é   )Úgcloud.logging.entriesrS   r   r   r   r   Ú_DummyLoggingAPIÚ_logging_apiÚ_list_entries_responseÚlist_entriesr   Úlenr&   r'   Ú	insert_idÚpayloadrL   rM   r   r   Ú_list_entries_called_with)r	   rS   rT   rU   rV   ÚENTRIESr   r   r+   ÚentriesÚtokenÚentryrL   r
   r
   r   Útest_list_entries_defaultsÈ   s>    ÿÿú	
þz%TestClient.test_list_entries_defaultsc                 C   s   ddl m} ddlm} ddlm} ddlm} d}d}d}d	}d
}	dddœ}
|
 ¡ }d|d< d}d}|
|ddid| j| j	f dœ||	ddid| j| j	f dœg}| j
| jtƒ d}tƒ  }|_|d f|_|j||g||||d\}}|  t|ƒd¡ |d }|  t||ƒ¡ |  |j|¡ |  |j|
¡ |j}|  t||ƒ¡ |  |j| j	¡ |  |j|u ¡ |  |j| j¡ |d }|  t||ƒ¡ |  |j|	¡ |  |j|¡ |j}|  |j| j	¡ |  |j|u ¡ |  |j| j¡ |  |d j|d ju ¡ |  |d ¡ |  |j||g||||f¡ d S )Nr   )Ú
DESCENDING)ÚProtobufEntry)ÚStructEntryrI   ÚPROJECT1ÚPROJECT2zlogName:LOGNAMEÚIID1ÚIID2ZMESSAGEzpartly cloudy)ÚmessageÚweatherz#type.googleapis.com/testing.examplez@typerV   é*   rW   rX   rY   )ZjsonPayloadrZ   r[   r\   )ZprotoPayloadrZ   r[   r\   r   )ÚprojectsÚfilter_Úorder_byÚ	page_sizeÚ
page_tokené   r]   )r!   rl   r^   rm   rn   rK   rJ   Úcopyr   r   r   r   r_   r`   ra   rb   r   rc   r&   r'   rd   re   rL   rM   r   r   rf   )r	   rl   rm   rn   rJ   ro   rp   ÚFILTERrq   rr   ZPAYLOADZPROTO_PAYLOADrV   Ú	PAGE_SIZErg   r   r+   rh   ri   rj   rL   r
   r
   r   Útest_list_entries_explicitì   s|    
ÿÿú	ÿÿúø

þ
þz%TestClient.test_list_entries_explicitc                 C   sŽ   ddl m} tƒ }| j| j|d}| | j¡}|  t||ƒ¡ |  	|j
| j¡ |  	|jd ¡ |  	|jd ¡ |  |j|u ¡ |  	|j| j¡ d S ©Nr   ©ÚSinkr   )Úgcloud.logging.sinkr‚   r   r   r   Úsinkr   r&   r'   r   rM   rw   Údestinationr   r   ©r	   r‚   r   r   r„   r
   r
   r   Útest_sink_defaults/  s    zTestClient.test_sink_defaultsc                 C   sš   ddl m} tƒ }| j| j|d}| | j| j| j¡}|  	t
||ƒ¡ |  |j| j¡ |  |j| j¡ |  |j| j¡ |  	|j|u ¡ |  |j| j¡ d S r€   )rƒ   r‚   r   r   r   r„   r   r}   ÚDESTINATION_URIr&   r'   r   rM   rw   r…   r   r   r†   r
   r
   r   Útest_sink_explicit;  s    zTestClient.test_sink_explicitc                 C   sÖ   ddl m} d}d}d}d}||| jdœg}| j|tƒ d}tƒ  }|_||f|_| ¡ \}	}
|  	t
|	ƒd	¡ |	d }|  t||ƒ¡ |  	|j|¡ |  	|j|¡ |  	|j| j¡ |  	|
|¡ |  	|j|d d f¡ d S )
Nr   r   r   rV   Ú	sink_namer   ©rM   Úfilterr…   r   r]   ©rƒ   r‚   rˆ   r   r   Ú_DummySinksAPIZ
_sinks_apiÚ_list_sinks_responseÚ
list_sinksr   rc   r&   r'   rM   rw   r…   Ú_list_sinks_called_with)r	   r‚   r   rV   r   r}   ÚSINKSr   r+   Úsinksri   r„   r
   r
   r   Útest_list_sinks_no_pagingG  s.    ý
ÿz$TestClient.test_list_sinks_no_pagingc                 C   sÞ   ddl m} d}d}d}d}d}||| jdœg}| j|tƒ d	}tƒ  }	|_|d f|	_| ||¡\}
}|  	t
|
ƒd
¡ |
d }|  t||ƒ¡ |  	|j|¡ |  	|j|¡ |  	|j| j¡ |  	|d ¡ |  	|	j|||f¡ d S )Nr   r   r   rŠ   r   rV   ru   r‹   r   r]   r   )r	   r‚   r   r   r}   rV   r~   r’   r   r+   r“   ri   r„   r
   r
   r   Útest_list_sinks_with_pagingc  s0    ý
ÿz&TestClient.test_list_sinks_with_pagingc                 C   sŽ   ddl m} tƒ }| j| j|d}| | j¡}|  t||ƒ¡ |  	|j
| j¡ |  	|jd ¡ |  	|jd¡ |  |j|u ¡ |  	|j| j¡ d S )Nr   ©ÚMetricr   Ú )Úgcloud.logging.metricr—   r   r   r   ÚmetricÚMETRIC_NAMEr&   r'   r   rM   rw   Údescriptionr   r   ©r	   r—   r   Z
client_objrš   r
   r
   r   Útest_metric_defaults  s    zTestClient.test_metric_defaultsc                 C   sœ   ddl m} tƒ }| j| j|d}|j| j| j| jd}|  	t
||ƒ¡ |  |j| j¡ |  |j| j¡ |  |j| j¡ |  	|j|u ¡ |  |j| j¡ d S )Nr   r–   r   )rœ   )r™   r—   r   r   r   rš   r›   r}   r   r&   r'   r   rM   rw   rœ   r   r   r   r
   r
   r   Útest_metric_explicitŒ  s    ÿzTestClient.test_metric_explicitc           
      C   sÖ   ddl m} d}d}| j| j| jdœg}| j|tƒ d}tƒ  }|_||f|_	| 
¡ \}}|  t|ƒd¡ |d }	|  t|	|ƒ¡ |  |	j| j¡ |  |	j| j¡ |  |	j| j¡ |  ||¡ |  |j|d d f¡ d S )Nr   r–   r   rV   ©rM   rŒ   rœ   r   r]   ©r™   r—   r›   r}   r   r   r   Ú_DummyMetricsAPIZ_metrics_apiÚ_list_metrics_responseÚlist_metricsr   rc   r&   r'   rM   rw   rœ   Ú_list_metrics_called_with)
r	   r—   r   rV   ÚMETRICSr   r+   Úmetricsri   rš   r
   r
   r   Útest_list_metrics_no_pagingš  s*    ý
ÿz&TestClient.test_list_metrics_no_pagingc                 C   sÞ   ddl m} d}d}d}| j| j| jdœg}| j|tƒ d}tƒ  }|_|d f|_	| 
||¡\}}	|  t|ƒd¡ |d }
|  t|
|ƒ¡ |  |
j| j¡ |  |
j| j¡ |  |
j| j¡ |  |	d ¡ |  |j|||f¡ d S )	Nr   r–   r   rV   ru   r    r   r]   r¡   )r	   r—   r   rV   r~   r¦   r   r+   r§   ri   rš   r
   r
   r   Útest_list_metrics_with_paging³  s,    ý
ÿz(TestClient.test_list_metrics_with_pagingN)r9   r:   r;   r   r   r   r}   rˆ   r›   r   r   r   r   r-   r>   rA   rC   rF   rH   rN   rR   rk   r   r‡   r‰   r”   r•   rž   rŸ   r¨   r©   r
   r
   r
   r   r      s:   
$Cr   c                   @   s$   e Zd ZdZedd„ ƒZdd„ ZdS )r   Nc                   C   s   dS )NTr
   r
   r
   r
   r   Úcreate_scoped_requiredÓ  s    z#_Credentials.create_scoped_requiredc                 C   s
   || _ | S r   )Ú_scopes)r	   Úscoper
   r
   r   Úcreate_scoped×  s    z_Credentials.create_scoped)r9   r:   r;   r«   Ústaticmethodrª   r­   r
   r
   r
   r   r   Ï  s   
r   c                   @   s   e Zd Zdd„ ZdS )r_   c                 C   s   |||||f| _ | jS r   )rf   ra   )r	   rv   rw   rx   ry   rz   r
   r
   r   rb   Þ  s    
ÿz_DummyLoggingAPI.list_entriesN)r9   r:   r;   rb   r
   r
   r
   r   r_   Ü  s   r_   c                   @   s   e Zd Zdd„ ZdS )rŽ   c                 C   s   |||f| _ | jS r   )r‘   r   ©r	   r   ry   rz   r
   r
   r   r   æ  s    z_DummySinksAPI.list_sinksN)r9   r:   r;   r   r
   r
   r
   r   rŽ   ä  s   rŽ   c                   @   s   e Zd Zdd„ ZdS )r¢   c                 C   s   |||f| _ | jS r   )r¥   r£   r¯   r
   r
   r   r¤   í  s    z_DummyMetricsAPI.list_metricsN)r9   r:   r;   r¤   r
   r
   r
   r   r¢   ë  s   r¢   )Z	unittest2ZTestCaser   r#   r   r_   rŽ   r¢   r
   r
   r
   r   Ú<module>   s      @