a
    !f                     @   st  d dl Z zd dlZW n ey*   dZY n0 dZG dd deZe edG dd dee jZ	e edG d	d
 d
ee jZ
e edG dd dee jZe edG dd de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G dd de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G d!d" d"eZG d#d$ d$eZdS )%    NFTc                   @   s&   e Zd ZdZdef ZdZdd ZdS )_BasePROJECTzprojects/%sz"logName:syslog AND severity>=ERRORc                 O   s   |   |i |S N)_getTargetClass)selfargskw r	   Y/var/www/html/python-backend/venv/lib/python3.9/site-packages/gcloud/logging/test__gax.py_makeOne!   s    z_Base._makeOneN)__name__
__module____qualname__r   PROJECT_PATHFILTERr   r	   r	   r	   r
   r      s   
r   zNo gax-pythonc                   @   sX   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S )Test_LoggingAPIlog_namec                 C   s   ddl m} |S )Nr   )_LoggingAPI)gcloud.logging._gaxr   )r   r   r	   r	   r
   r   )   s    zTest_LoggingAPI._getTargetClassc                 C   s$   t  }| |}| |j|u  d S r   )_GAXLoggingAPIr   
assertTrue_gax_apir   gax_apiapir	   r	   r
   	test_ctor-   s    
zTest_LoggingAPI.test_ctorc                 C   s.  ddl m} ddlm} ddlm} d}d}|t| j|dg|}t|d}| 	|}|
| jg| j|\}	}
| t|	d	 |	d }| |t | |d
 | j | |d ddi | |d | | |
| |j\}}}}}| || jg | || j | || | |d | |j|u  d S )Nr   INITIAL_PAGE)
DESCENDING_GAXPageIteratorTOKENTEXT)text_payload_list_log_entries_response   logNameresourcetypeglobaltextPayload)
google.gaxr   Zgcloud.loggingr   gcloud._testingr    _LogEntryPBLOG_NAMEr   r   list_entriesr   r   assertEquallenassertIsInstancedict_list_log_entries_called_withr   
page_token)r   r   r   r    r!   r"   responser   r   entries
next_tokenentryprojectsfilter_order_by	page_sizeoptionsr	   r	   r
   test_list_entries_no_paging2   s6    

z+Test_LoggingAPI.test_list_entries_no_pagingc                    sJ  ddl m  ddlm} d}d}d}ddd	}tt fd
d| D }|t| j|dg|}t	|d}| 
|}	|	j| jg||d\}
}| t|
d |
d }| |t | |d | j | |d ddi | |d | | || |j\}}}}}| || jg | |d | |d | || | |j| d S )Nr   Valuer      r!   	NEW_TOKENMESSAGEsunnymessageweatherc                    s   g | ]\}}| |d fqS )string_valuer	   ).0keyvaluerA   r	   r
   
<listcomp>W   s   zATest_LoggingAPI.test_list_entries_with_paging.<locals>.<listcomp>)json_payloadr$   r>   r6   r&   r'   r(   r)   r*   jsonPayload )google.protobuf.struct_pb2rB   r-   r    	_StructPBr4   itemsr.   r/   r   r   r0   r   r1   r2   r3   r5   r6   )r   r    SIZEr!   rD   PAYLOADZ	struct_pbr7   r   r   r8   r9   r:   r;   r<   r=   r>   r?   r	   rA   r
   test_list_entries_with_pagingP   s>    





z-Test_LoggingAPI.test_list_entries_with_pagingc               
   C   sd  ddl m } ddlm} ddlm} ddlm} ddlm} ddlm} |	 j
|d}d	}d
}	d}
ddd}d}ddi}d}t }t }|||||d}t| jfd|i|}d|jjd< |||_||g|
}t|d}| |}|j| jg||	d\}}| t|d |d }| |t | |d | j | |d dddid | |d | | |d | | |d | | |d | | |d  || |j|j|j|j|j|j|j |j!|j"d!	}| |d" | |j#|j$|j%|j&d#}| |d$ | | ||
 |j'\}}}}}| || jg | |d% | |d% | || | |j(|	 d S )&Nr   datetimeWARNINGr   UTC)_datetime_to_rfc3339_datetime_to_pb_timestamptzinforC   r!   rD   rE   rF   rG   r]   foobarIID)severitylabels	insert_idhttp_request	operationproto_payloadr$   rQ   r&   r'   r(   r*   r)   ri   protoPayloadrh   ri   insertId	timestamp	ZrequestMethod
requestUrlstatusZrequestSizeZresponseSizerefererZ	userAgentZremoteIpZcacheHithttpRequestproduceridfirstlastrl   rS   ))r[   $google.logging.type.log_severity_pb2r]   r-   r    gcloud._helpersr_   r`   rb   utcnowreplace_HTTPRequestPB_LogEntryOperationPBr.   r/   r(   ri   rq   r   r   r0   r   r1   r2   r3   r4   request_methodrequest_urlrt   request_sizeresponse_sizeru   
user_agent	remote_ip	cache_hitrx   ry   rz   r{   r5   r6   ) r   r[   r]   r    r_   r`   rb   NOWrW   r!   rD   rX   SEVERITYLABELSrg   requestrl   EXTRASENTRYr7   r   r   r8   r9   r:   ZEXPECTED_REQUESTZEXPECTED_OPERATIONr;   r<   r=   r>   r?   r	   r	   r
   'test_list_entries_with_extra_propertiesq   s    






z7Test_LoggingAPI.test_list_entries_with_extra_propertiesc                 C   s   ddl m} d}d| j| jf }|ddi|d}t }| |}||g |j\}}}	}
}}| t	|d |d }| 
t|| | |j| | |jjd | |ji  | |j| | |d  | |	d  | |
d  | |d	 | |d  d S )
Nr   LogEntryr"   projects/%s/logs/%sr)   r*   )r'   r(   r+   r&   F)google.logging.v2.log_entry_pb2r   r   r/   r   r   write_entries_write_log_entries_called_withr1   r2   r   
isinstancer   r(   r)   ri   r#   )r   r   r"   LOG_PATHr   r   r   r8   r   r(   ri   partial_successr?   r:   r	   r	   r
   test_write_entries_single   s0    
z)Test_LoggingAPI.test_write_entries_singlec           %   
   C   s  ddl m } ddlm} ddlm} ddlm}m} | j	|d}d}d| j
| jf }d	}	d
di}
d}d}d}d}d}d}d}d}d}||||||||dd	}d}d}||ddd}|ddi||	|
||||d	}t }| |}||g |j\}}}}}} | t|d |d }!| t|!| | |!j| | |!jjd | |!j| | |!j| | |!j|
 | |!j| ||!j}"| |"| |!j}#| |#j| | |#j| | |#j| | |#j | | |#j!| | |#j"| | |#j#| | |#j$| | |#j%d |!j&}$| |$j'| | |$j(| | )|$j* | |$j+ | |d  | |d  | |d  | |d | | d  d S )Nr   rZ   r\   r   )r_   _pb_timestamp_to_datetimerc   r"   r   r]   re   rf   rg   GEThttp://example.com/requested         http://example.com/refererz	Agent/1.01.2.3.4Frr   PRODUCEROPIDTrw   r)   r*   )	r'   r(   r+   rh   ri   rp   rq   rv   rl   r&   ),r[   r|   r]   r   r   r}   r_   r   r~   r   r   r/   r   r   r   r   r1   r2   r   r   r   r(   r)   r#   rh   ri   rj   rq   rk   r   r   rt   r   r   ru   r   r   r   rl   rx   ry   ZassertFalserz   r{   )%r   r[   r]   r   r_   r   r   r"   r   r   r   rg   REQUEST_METHODZREQUEST_URLZSTATUSZREQUEST_SIZEZRESPONSE_SIZEZREFERRER_URLZ
USER_AGENTZ	REMOTE_IPZREQUESTr   r   Z	OPERATIONr   r   r   r8   r   r(   ri   r   r?   r:   Zstampr   rl   r	   r	   r
   %test_write_entries_w_extra_properties   s    

z5Test_LoggingAPI.test_write_entries_w_extra_propertiesc           !      C   s  dd l }ddlm} ddlm} ddlm} ddlm} ddl	m
}m} d}|j  j|d}	d	}
d
dd}|
||	d}d}d}d}||d|||dd|d|idg}d| j| jf }ddi}ddi}t }| |}||||| |j\}}}}}}| t|t| |d }| t|| | |jd | |jjd | |ji  | |j| | |j| |d }| t|| | |jd | |jjd | |ji  |j}| t|| | |jd j |d  |j!}| |j"| | |j#| |d }| t|| | |jd | |jjd | |ji  |j$}| t|| | |j%|
 |j&} | | j'| | || | || | || | |d | |d  d S ) Nr   r\   r   )Any)Struct)r`   r_   r"   rc   z-type.googleapis.com/google.protobuf.TimestamprX   json)payloadr)   )z@typerN   r   r   zhttp://example.com/)r+   rh   )rx   ry   )rR   rl   rs   )ro   rv   r   r)   r*   re   rf   rS   r&   r      F)(r[   r|   r]   r   r   Zgoogle.protobuf.any_pb2r   rT   r   r}   r`   r_   r~   r   r   r/   r   r   r   r   r1   r2   r   r   r   r(   r)   ri   r#   rh   rP   fieldsrK   rl   rx   ry   rm   Ztype_urlrk   r   )!r   r[   r]   r   r   r   r`   r_   r"   r   ZTIMESTAMP_TYPE_URLJSONPROTOr   r   URLZENTRIESr   ZRESOURCEr   r   r   r8   r   r(   ri   r   r?   r:   Zjson_structrl   protor   r	   r	   r
   test_write_entries_multiple<  s    

z+Test_LoggingAPI.test_write_entries_multiplec                 C   sV   d| j | jf }t }| |}|| j | j |j\}}| || | |d  d S )Nr   )r   r/   r   r   Zlogger_delete_delete_log_called_withr1   )r   r   r   r   r   r?   r	   r	   r
   test_logger_delete  s    

z"Test_LoggingAPI.test_logger_deleteN)r   r   r   r/   r   r   r@   rY   r   r   r   r   r   r	   r	   r	   r
   r   %   s   !L`Rr   c                   @   s   e Zd ZdZdej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d Zd d! Zd"d# Zd$S )%Test_SinksAPI	sink_namezprojects/%s/sinks/%szfaux.googleapis.com/destinationc                 C   s   ddl m} |S )Nr   )	_SinksAPI)r   r   )r   r   r	   r	   r
   r     s    zTest_SinksAPI._getTargetClassc                 C   s$   t  }| |}| |j|u  d S r   )_GAXSinksAPIr   r   r   r   r	   r	   r
   r     s    
zTest_SinksAPI.test_ctorc                 C   s   ddl m} ddlm} d}| j| j| jdg}|t| j| j| jg|}t|d}| 	|}|
| j\}}	| || | |	| |j\}
}}| |
| j | |d | |j| d S )Nr   r   r   r!   namefilterdestination_list_sinks_response)r,   r   r-   r    	SINK_PATHr   DESTINATION_URI
_LogSinkPBr   r   
list_sinksr   r1   _list_sinks_called_withr   r6   )r   r   r    r!   SINKSr7   r   r   sinkstokenprojectr>   r?   r	   r	   r
   test_list_sinks_no_paging  s(    

z'Test_SinksAPI.test_list_sinks_no_pagingc                 C   s   ddl m} d}d}| j| j| jdg}|t| j| j| jgd }t|d}| |}|j| j	||d\}}	| 
|| | 
|	d  |j\}
}}| 
|
| j | 
|| | 
|j| d S )Nr   r   r!   *   r   r   rQ   )r-   r    r   r   r   r   r   r   r   r   r1   r   r   r6   )r   r    r!   	PAGE_SIZEr   r7   r   r   r   r   r   r>   r?   r	   r	   r
   test_list_sinks_w_paging  s,    


z&Test_SinksAPI.test_list_sinks_w_pagingc                 C   sf   ddl m} tdd}| |}| |( || j| j| j| j	 W d    n1 sX0    Y  d S Nr   GaxErrorT)_random_gax_error)
google.gax.errorsr   r   r   assertRaisessink_creater   	SINK_NAMEr   r   r   r   r   r   r	   r	   r
   test_sink_create_error  s    

z$Test_SinksAPI.test_sink_create_errorc                 C   sf   ddl m} tdd}| |}| |( || j| j| j| j	 W d    n1 sX0    Y  d S )Nr   ConflictT)_create_sink_conflict)
gcloud.exceptionsr   r   r   r   r   r   r   r   r   r   r   r   r   r	   r	   r
   test_sink_create_conflict  s    

z'Test_SinksAPI.test_sink_create_conflictc                 C   s   ddl m} t }| |}|| j| j| j| j |j	\}}}| 
|| j | t|| | 
|j| j | 
|j| j | 
|j| j | 
|d  d S )Nr   LogSink)$google.logging.v2.logging_config_pb2r   r   r   r   r   r   r   r   _create_sink_called_withr1   r   r   r   r   r   r   )r   r   r   r   parentsinkr?   r	   r	   r
   test_sink_create_ok  s    
z!Test_SinksAPI.test_sink_create_okc                 C   sZ   ddl m} t }| |}| |  || j| j W d    n1 sL0    Y  d S Nr   NotFound)r   r   r   r   r   sink_getr   r   r   r   r   r   r	   r	   r
   test_sink_get_error  s
    
z!Test_SinksAPI.test_sink_get_errorc                 C   s^   ddl m} tdd}| |}| |  || j| j W d    n1 sP0    Y  d S r   )r   r   r   r   r   r   r   r   r   r	   r	   r
   test_sink_get_miss	  s
    

z Test_SinksAPI.test_sink_get_missc                 C   s|   | j | j| jd}t| j | j| j}t|d}| |}|| j| j}| 	|| |j
\}}| 	|| j  | 	|d  d S )Nr   )_get_sink_response)r   r   r   r   r   r   r   r   r   r1   _get_sink_called_with)r   RESPONSEZsink_pbr   r   r7   r   r?   r	   r	   r
   test_sink_get_hit  s    


zTest_SinksAPI.test_sink_get_hitc                 C   sf   ddl m} tdd}| |}| |( || j| j| j| j	 W d    n1 sX0    Y  d S r   )
r   r   r   r   r   sink_updater   r   r   r   r   r	   r	   r
   test_sink_update_error$  s    

z$Test_SinksAPI.test_sink_update_errorc                 C   sb   ddl m} t }| |}| |( || j| j| j| j	 W d    n1 sT0    Y  d S r   )
r   r   r   r   r   r   r   r   r   r   r   r	   r	   r
   test_sink_update_miss.  s    
z#Test_SinksAPI.test_sink_update_missc                 C   s   ddl m} t| j| j| j}t|d}| |}|| j	| j| j| j |j
\}}}| || j | t|| | |j| j | |j| j | |j| j | |d  d S )Nr   r   )_update_sink_response)r   r   r   r   r   r   r   r   r   r   _update_sink_called_withr1   r   r   r   r   r   r   )r   r   r7   r   r   r   r   r?   r	   r	   r
   test_sink_update_hit8  s"    

z"Test_SinksAPI.test_sink_update_hitc                 C   s^   ddl m} tdd}| |}| |  || j| j W d    n1 sP0    Y  d S r   )r   r   r   r   r   sink_deleter   r   r   r	   r	   r
   test_sink_delete_errorK  s
    

z$Test_SinksAPI.test_sink_delete_errorc                 C   s^   ddl m} tdd}| |}| |  || j| j W d    n1 sP0    Y  d S )Nr   r   T)_sink_not_found)r   r   r   r   r   r   r   r   r   r	   r	   r
   test_sink_delete_missS  s
    

z#Test_SinksAPI.test_sink_delete_missc                 C   sH   t  }| |}|| j| j |j\}}| || j | |d  d S r   )r   r   r   r   r   _delete_sink_called_withr1   r   )r   r   r   r   r?   r	   r	   r
   test_sink_delete_hit[  s    

z"Test_SinksAPI.test_sink_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	   r	   r
   r     s&   



r   c                   @   s   e Zd ZdZdej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d Zd d! Zd"d# Zd$S )%Test_MetricsAPImetric_namezprojects/%s/metrics/%sDescriptionc                 C   s   ddl m} |S )Nr   )_MetricsAPI)r   r   )r   r   r	   r	   r
   r   l  s    zTest_MetricsAPI._getTargetClassc                 C   s$   t  }| |}| |j|u  d S r   )_GAXMetricsAPIr   r   r   r   r	   r	   r
   r   p  s    
zTest_MetricsAPI.test_ctorc                 C   s   ddl m} ddlm} d}| j| j| jdg}|t| j| j| jg|}t|d}| 	|}|
| j\}}	| || | |	| |j\}
}}| |
| j | |d | |j| d S )Nr   r   r   r!   r   r   description_list_log_metrics_response)r,   r   r-   r    METRIC_PATHr   DESCRIPTION_LogMetricPBr   r   list_metricsr   r1   _list_log_metrics_called_withr   r6   )r   r   r    r!   METRICSr7   r   r   metricsr   r   r>   r?   r	   r	   r
   test_list_metrics_no_pagingu  s(    

z+Test_MetricsAPI.test_list_metrics_no_pagingc                 C   s   ddl m} d}d}| j| j| jdg}|t| j| j| jgd }t|d}| |}|j| j	||d\}}	| 
|| | 
|	d  |j\}
}}| 
|
| j | 
|| | 
|j| d S )Nr   r   r!   r   r   r   rQ   )r-   r    r  r   r  r  r   r   r  r   r1   r  r   r6   )r   r    r!   r   r  r7   r   r   r  r   r   r>   r?   r	   r	   r
   test_list_metrics_w_paging  s,    


z*Test_MetricsAPI.test_list_metrics_w_pagingc                 C   sf   ddl m} tdd}| |}| |( || j| j| j| j	 W d    n1 sX0    Y  d S r   )
r   r   r   r   r   metric_creater   METRIC_NAMEr   r  r   r	   r	   r
   test_metric_create_error  s    

z(Test_MetricsAPI.test_metric_create_errorc                 C   sf   ddl m} tdd}| |}| |( || j| j| j| j	 W d    n1 sX0    Y  d S )Nr   r   T)_create_log_metric_conflict)
r   r   r   r   r   r
  r   r  r   r  r   r	   r	   r
   test_metric_create_conflict  s    

z+Test_MetricsAPI.test_metric_create_conflictc                 C   s   ddl m} t }| |}|| j| j| j| j |j	\}}}| 
|| j | t|| | 
|j| j | 
|j| j | 
|j| j | 
|d  d S )Nr   	LogMetric)%google.logging.v2.logging_metrics_pb2r  r   r   r
  r   r  r   r  _create_log_metric_called_withr1   r   r   r   r   r   r   )r   r  r   r   r   metricr?   r	   r	   r
   test_metric_create_ok  s    
z%Test_MetricsAPI.test_metric_create_okc                 C   sZ   ddl m} t }| |}| |  || j| j W d    n1 sL0    Y  d S r   )r   r   r   r   r   
metric_getr   r  r   r	   r	   r
   test_metric_get_error  s
    
z%Test_MetricsAPI.test_metric_get_errorc                 C   s^   ddl m} tdd}| |}| |  || j| j W d    n1 sP0    Y  d S r   )r   r   r   r   r   r  r   r  r   r	   r	   r
   test_metric_get_miss  s
    

z$Test_MetricsAPI.test_metric_get_missc                 C   s|   | j | j| jd}t| j | j| j}t|d}| |}|| j| j}| 	|| |j
\}}| 	|| j  | 	|d  d S )Nr   )_get_log_metric_response)r  r   r  r  r   r   r  r   r  r1   _get_log_metric_called_with)r   r   Z	metric_pbr   r   r7   r   r?   r	   r	   r
   test_metric_get_hit  s    


z#Test_MetricsAPI.test_metric_get_hitc                 C   sf   ddl m} tdd}| |}| |( || j| j| j| j	 W d    n1 sX0    Y  d S r   )
r   r   r   r   r   metric_updater   r  r   r  r   r	   r	   r
   test_metric_update_error  s    

z(Test_MetricsAPI.test_metric_update_errorc                 C   sb   ddl m} t }| |}| |( || j| j| j| j	 W d    n1 sT0    Y  d S r   )
r   r   r   r   r   r  r   r  r   r  r   r	   r	   r
   test_metric_update_miss  s    
z'Test_MetricsAPI.test_metric_update_missc                 C   s   ddl m} t| j| j| j}t|d}| |}|| j	| j| j| j |j
\}}}| || j | t|| | |j| j | |j| j | |j| j | |d  d S )Nr   r  )_update_log_metric_response)r  r  r  r  r   r  r   r   r  r   _update_log_metric_called_withr1   r  r   r   r   r   r   )r   r  r7   r   r   r   r  r?   r	   r	   r
   test_metric_update_hit  s"    

z&Test_MetricsAPI.test_metric_update_hitc                 C   s^   ddl m} tdd}| |}| |  || j| j W d    n1 sP0    Y  d S r   )r   r   r   r   r   metric_deleter   r  r   r	   r	   r
   test_metric_delete_error  s
    

z(Test_MetricsAPI.test_metric_delete_errorc                 C   s^   ddl m} tdd}| |}| |  || j| j W d    n1 sP0    Y  d S )Nr   r   T)_log_metric_not_found)r   r   r   r   r   r!  r   r  r   r	   r	   r
   test_metric_delete_miss  s
    

z'Test_MetricsAPI.test_metric_delete_missc                 C   sH   t  }| |}|| j| j |j\}}| || j | |d  d S r   )r   r   r!  r   r  _delete_log_metric_called_withr1   r  )r   r   r   r   r?   r	   r	   r
   test_metric_delete_hit'  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	   r	   r
   r   f  s&   



r   c                   @   sL   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S )Test_value_pb_to_valuec                 C   s   ddl m} ||S )Nr   )_value_pb_to_value)r   r(  )r   value_pbr(  r	   r	   r
   _callFUT5  s    zTest_value_pb_to_value._callFUTc                 C   sD   ddl m} | }| | |d  |d d}| | |d  d S )Nr   rA   )Z
null_valuerT   rB   r1   r*  )r   rB   r)  r	   r	   r
   test_w_null_values9  s
    
z)Test_value_pb_to_value.test_w_null_valuesc                 C   s0   ddl m} d}||d}| | || d S )Nr   rA   STRINGrJ   r+  )r   rB   r-  r)  r	   r	   r
   test_w_string_value@  s    
z*Test_value_pb_to_value.test_w_string_valuec                 C   sL   ddl m} |dd}| | |du  |dd}| | |du  d S )Nr   rA   T
bool_valueF)rT   rB   r   r*  )r   rB   Ztrue_value_pbZfalse_value_pbr	   r	   r
   test_w_bool_valuesF  s
    

z)Test_value_pb_to_value.test_w_bool_valuesc                 C   sP   ddl m} d}d}||d}| | || ||d}| | || d S )Nr   rA   r   JM!	@number_valuer+  )r   rB   ZANSWERPIZint_value_pbZfloat_value_pbr	   r	   r
   test_w_number_valuesM  s    

z+Test_value_pb_to_value.test_w_number_valuesc                 C   sf   ddl m} d}d}| }|jjj|d |jjjdd |jjj|d | | ||d|g d S )	Nr   rA   r-  r2  rJ   Tr/  r3  )rT   rB   Z
list_valuevaluesaddr1   r*  r   rB   r-  r5  r)  r	   r	   r
   test_w_list_valueV  s    z(Test_value_pb_to_value.test_w_list_valuec                 C   sb   ddl m} d}d}| }||jjd _d|jjd _||jjd _| | ||d|d	 d S )
Nr   rA   r-  r2  stringTboolnumber)r;  r<  r=  )	rT   rB   Zstruct_valuer   rK   r0  r4  r1   r*  r9  r	   r	   r
   test_w_struct_value`  s    
z*Test_value_pb_to_value.test_w_struct_valuec                 C   sJ   G dd dt }| t | |  W d    n1 s<0    Y  d S )Nc                   @   s   e Zd Zdd ZdS )z:Test_value_pb_to_value.test_w_unknown_kind.<locals>._Valuec                 S   s   |dksJ dS )NkindUNKNOWNr	   )r   r   r	   r	   r
   
WhichOneofo  s    zETest_value_pb_to_value.test_w_unknown_kind.<locals>._Value.WhichOneofN)r   r   r   rA  r	   r	   r	   r
   _Valuem  s   rB  )objectr   
ValueErrorr*  )r   rB  r	   r	   r
   test_w_unknown_kindk  s    z*Test_value_pb_to_value.test_w_unknown_kindN)r   r   r   r*  r,  r.  r1  r6  r:  r>  rE  r	   r	   r	   r
   r'  2  s   	
r'  c                   @   s0   e Zd ZdZdd Zdd Zdd Zdd	 Zd
S )_GAXBaseAPIFc                 K   s   | j | d S r   )__dict__update)r   r   r	   r	   r
   __init__{  s    z_GAXBaseAPI.__init__c                    s(   ddl m} G  fddd|   S )Nr   )AbortionErrorc                       s"   e Zd ZZ fddZ  ZS )z5_GAXBaseAPI._make_grpc_error.<locals>._DummyExceptionc                    s   t  | d d | jd  d S r   )superrI  code)r   )_DummyException	__class__r	   r
   rI    s    

z>_GAXBaseAPI._make_grpc_error.<locals>._DummyException.__init__)r   r   r   rL  rI  __classcell__r	   rM  status_code)rN  r
   rM    s   rM  )Z#grpc.framework.interfaces.face.facerJ  )r   rQ  rJ  r	   rP  r
   _make_grpc_error~  s    z_GAXBaseAPI._make_grpc_errorc                 C   s   ddl m} | |jS Nr   )
StatusCode)grpc.beta.interfacesrT  rR  	NOT_FOUNDr   rT  r	   r	   r
   _make_grpc_not_found  s    z _GAXBaseAPI._make_grpc_not_foundc                 C   s   ddl m} | |jS rS  )rU  rT  rR  ZFAILED_PRECONDITIONrW  r	   r	   r
   _make_grpc_failed_precondition  s    z*_GAXBaseAPI._make_grpc_failed_preconditionN)r   r   r   r   rI  rR  rX  rY  r	   r	   r	   r
   rF  w  s
   rF  c                   @   s$   e Zd Zdd Zdd Zdd ZdS )r   c                 C   s   |||||f| _ | jS r   )r5   r%   )r   r;   r<   r=   r>   r?   r	   r	   r
   list_log_entries  s    
z_GAXLoggingAPI.list_log_entriesc                 C   s   ||||||f| _ d S r   )r   )r   r8   r   r(   ri   r   r?   r	   r	   r
   write_log_entries  s    z _GAXLoggingAPI.write_log_entriesc                 C   s   ||f| _ d S r   )r   )r   r   r?   r	   r	   r
   
delete_log  s    z_GAXLoggingAPI.delete_logN)r   r   r   rZ  r[  r\  r	   r	   r	   r
   r     s   r   c                   @   s@   e Zd ZdZdZdd Zdd Zdd Zdd	d
ZdddZ	dS )r   Fc                 C   s   |||f| _ | jS r   )r   r   r   r   r>   r?   r	   r	   r
   r     s    z_GAXSinksAPI.list_sinksc                 C   s>   ddl m} |||f| _| jr&|d| jr:|d|  d S Nr   r   errorconflict)r   r   r   r   r   rY  )r   r   r   r?   r   r	   r	   r
   create_sink  s    z_GAXSinksAPI.create_sinkc                 C   sR   ddl m} ||f| _| jr$|dz| jW S  tyL   |d|  Y n0 d S Nr   r   r_  Znotfound)r   r   r   r   r   AttributeErrorrX  r   r   r?   r   r	   r	   r
   get_sink  s    
z_GAXSinksAPI.get_sinkNc                 C   sT   ddl m} |||f| _| jr&|dz| jW S  tyN   |d|  Y n0 d S rb  )r   r   r   r   r   rc  rX  )r   r   r   r?   r   r	   r	   r
   update_sink  s    z_GAXSinksAPI.update_sinkc                 C   s<   ddl m} ||f| _| jr$|d| jr8|d|  d S rb  )r   r   r   r   r   rX  rd  r	   r	   r
   delete_sink  s    
z_GAXSinksAPI.delete_sink)N)N)
r   r   r   r   r   r   ra  re  rf  rg  r	   r	   r	   r
   r     s   


r   c                   @   s@   e Zd ZdZdZdd Zdd Zdd Zdd	d
ZdddZ	dS )r   Fc                 C   s   |||f| _ | jS r   )r  r   r]  r	   r	   r
   list_log_metrics  s    z_GAXMetricsAPI.list_log_metricsc                 C   s>   ddl m} |||f| _| jr&|d| jr:|d|  d S r^  )r   r   r  r   r  rY  )r   r   r  r?   r   r	   r	   r
   create_log_metric  s    z _GAXMetricsAPI.create_log_metricc                 C   sR   ddl m} ||f| _| jr$|dz| jW S  tyL   |d|  Y n0 d S rb  )r   r   r  r   r  rc  rX  r   r   r?   r   r	   r	   r
   get_log_metric  s    
z_GAXMetricsAPI.get_log_metricNc                 C   sT   ddl m} |||f| _| jr&|dz| jW S  tyN   |d|  Y n0 d S rb  )r   r   r  r   r  rc  rX  )r   r   r  r?   r   r	   r	   r
   update_log_metric  s    z _GAXMetricsAPI.update_log_metricc                 C   s<   ddl m} ||f| _| jr$|d| jr8|d|  d S rb  )r   r   r%  r   r#  rX  rj  r	   r	   r
   delete_log_metric  s    
z _GAXMetricsAPI.delete_log_metric)N)N)
r   r   r   r  r#  rh  ri  rk  rl  rm  r	   r	   r	   r
   r     s   


r   c                   @   s0   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
S )r   r   r   r   r   ZAGENTFr   r   r   N)r   r   r   r   r   rt   ru   r   r   r   r   r   r	   r	   r	   r
   r      s   r   c                   @   s   e Zd ZdZd ZZdZdS )r   r   Fr   N)r   r   r   rx   rz   r{   ry   r	   r	   r	   r
   r     s   r   c                   @   s   e Zd ZdddZdS )_ResourcePBr*   c                 K   s   || _ || _d S r   rn   )r   type_ri   r	   r	   r
   rI    s    z_ResourcePB.__init__N)r*   r   r   r   rI  r	   r	   r	   r
   rn    s   rn  c                   @   s   e Zd Zdd ZdS )rU   c                 C   s
   || _ d S r   )r   )r   r   r	   r	   r
   rI    s    z_StructPB.__init__Nrp  r	   r	   r	   r
   rU     s   rU   c                   @   sD   e Zd ZdZd Z ZZd Z ZZ	dd Z
dd Zedd ZdS )	r.   r   Nc                 K   s6   || _ t | _|  | _|di | _| j| d S )Nri   )	r   rn  r(   _make_timestamprq   popri   rG  rH  )r   r   r   r	   r	   r
   rI  '  s
    
z_LogEntryPB.__init__c                 C   s   t | |d d uS r   )getattr)r   
field_namer	   r	   r
   HasField.  s    z_LogEntryPB.HasFieldc                  C   s<   ddl m }  ddlm} ddlm} |  j|d}||S )Nr   rZ   r^   ra   rc   )r[   r}   r_   rb   r~   r   )r[   r_   rb   r   r	   r	   r
   rq  1  s
    z_LogEntryPB._make_timestamp)r   r   r   rh   rk   rl   rj   r#   rP   rm   rI  ru  staticmethodrq  r	   r	   r	   r
   r.   !  s   r.   c                   @   s   e Zd Zdd ZdS )r   c                 C   s   || _ || _|| _d S r   )r   r   r   )r   r   r   r<   r	   r	   r
   rI  <  s    z_LogSinkPB.__init__Nrp  r	   r	   r	   r
   r   :  s   r   c                   @   s   e Zd Zdd ZdS )r  c                 C   s   || _ || _|| _d S r   )r   r   r   )r   r   r   r<   r	   r	   r
   rI  D  s    z_LogMetricPB.__init__Nrp  r	   r	   r	   r
   r  B  s   r  )Z	unittest2Zgcloud.pubsub._gaxZgcloudImportErrorZ	_HAVE_GAXrC  r   Z
skipUnlessZTestCaser   r   r   r'  rF  r   r   r   r   r   rn  rU   r.   r   r  r	   r	   r	   r
   <module>   s:   
	
  v
 L
 L
D..