a
    !f4                     @   sB   d dl Z dZG dd de jZG dd deZG dd deZdS )	    N
my-projectc                   @   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 )
TestClientc                 C   s   ddl m} |S )Nr   )Client)Zgcloud.monitoring.clientr   )selfr    r   ^/var/www/html/python-backend/venv/lib/python3.9/site-packages/gcloud/monitoring/test_client.py_getTargetClass   s    zTestClient._getTargetClassc                 O   s   |   |i |S N)r   )r   argskwargsr   r   r   _makeOne   s    zTestClient._makeOnec               	   C   s  dd l }ddlm} ddlm} | dddddd}| ddddd	d}d}d
}ddi}ddi}	d}
dddd}dddd}d}d}d}d}d}d}d}dd }||d|
|d|||||||||||gd}||	d|
|d|||||||||||gd}d ||gi}| jtt d!}t| }|_	|j
|||d"}t|}| t|d# |\}}| |jj| | |jj| | |jj| | |jj|	 | |jj|
 | |jj|
 | |jj| | |jj| | |j| | |j| | |j| | |j| | d$d% |jD |||g | d&d% |jD |||g | d'd% |jD |||g | d(d% |jD |||g d)d*jtd+d,d-j|d.fd/||fd0||fgd1}|j\}| || | | t| W d    n1 s0    Y  d S )2Nr   )_datetime_to_rfc3339NotFoundi              
   z/compute.googleapis.com/instance/cpu/utilizationZinstance_namez
instance-1z
instance-2gce_instancer   z
us-east1-aZ1234567890123456789)
project_idzoneinstance_idz
us-east1-bZ9876543210987654321GAUGEDOUBLEz2016-04-06T22:05:00.042Zz2016-04-06T22:05:01.042Zz2016-04-06T22:05:02.042Zg?g?c                 S   s   | | dd|idS )N)Z	startTimeZendTimeZdoubleValue)intervalvaluer   )	timestampr   r   r   r   P@   s    z TestClient.test_query.<locals>.P)typelabels)metricresource
metricKind	valueTypepointsZ
timeSeriesprojectcredentials)end_timeminutes   c                 S   s   g | ]
}|j qS r   r   .0pr   r   r   
<listcomp>q       z)TestClient.test_query.<locals>.<listcomp>c                 S   s   g | ]
}|j qS r   r,   r-   r   r   r   r0   r   r1   c                 S   s   g | ]
}|j qS r   r)   r-   r   r   r   r0   s   r1   c                 S   s   g | ]
}|j qS r   r2   r-   r   r   r   r0   t   r1   GETz/projects/{project}/timeSeries/r'   filterzmetric.type = "{type}")r   zinterval.endTimezinterval.startTimemethodpathZquery_params)datetimeZgcloud._helpersr   gcloud.exceptionsr   r   PROJECT_Credentials_Connection
connectionquerylistassertEquallenr!   r   r    r"   metric_kind
value_typer%   format
_requestedassertRaises) r   r9   r   r   Z
START_TIMEZEND_TIMEZMINUTESZMETRIC_TYPEZMETRIC_LABELSZMETRIC_LABELS2ZRESOURCE_TYPEZRESOURCE_LABELSZRESOURCE_LABELS2METRIC_KIND
VALUE_TYPEZTS1ZTS2ZTS3ZVAL1ZVAL2r   ZSERIES1ZSERIES2RESPONSEclientr>   r?   responseZseries1Zseries2expected_requestrequestr   r   r   
test_query   s    



zTestClient.test_queryc                 C   s   d}d}d}d}| j tt d}t |_|j||||d}| |j| | |j	 | 
|j| | 
|jd | 
|j| | 
|j| | 
|jd | 
|j| | 
|jd d S )	Ncustom.googleapis.com/my_metricr   r   This is my metric.r&   )rC   rD   descriptionr    )r   r;   r<   r=   r>   Zmetric_descriptorassertIsrK   ZassertIsNonenamerA   r   r    rC   rD   unitrR   display_name)r   TYPErH   rI   DESCRIPTIONrK   
descriptorr   r   r   test_metric_descriptor_factory   s(    z)TestClient.test_metric_descriptor_factoryc           
      C   s   d}dj t|d}d}||dd|d}| jtt d}t| }|_||}| |j| | 	|j
| | 	|j| | 	|j| |j\}d	d
| d}	| 	||	 d S )NrP   z+projects/{project}/metricDescriptors/{type}r'   r   rQ   r   r   rU   r   r#   r$   rR   r&   r3   /r7   r8   )rE   r;   r   r<   r=   r>   Zfetch_metric_descriptorrT   rK   rA   rU   r   rR   rF   )
r   rX   NAMErY   ZMETRIC_DESCRIPTORrK   r>   rZ   rN   rM   r   r   r   test_fetch_metric_descriptor   s*    

z'TestClient.test_fetch_metric_descriptorc                 C   s.  dj td}d}d}|| }||dd|d}d}d	}|| }||dd|d}	d
||	gi}
| jtt d}t|
 }|_| }| t|d |\}}| 	|j
| | |j| | |j| | |j| | 	|j
| | |j| | |j| | |j| |j\}dd| i d}| || d S )Nz%projects/{project}/metricDescriptors/r4   z!custom.googleapis.com/my_metric_1zThis is my first metric.r   r   r]   z!custom.googleapis.com/my_metric_2zThis is my second metric.ZmetricDescriptorsr&   r+   r3   r^   r6   )rE   r;   r   r<   r=   r>   Zlist_metric_descriptorsrA   rB   rT   rK   rU   r   rR   rF   )r   PATHTYPE1DESCRIPTION1NAME1ZMETRIC_DESCRIPTOR1TYPE2DESCRIPTION2NAME2ZMETRIC_DESCRIPTOR2rJ   rK   r>   descriptorsdescriptor1descriptor2rN   rM   r   r   r   test_list_metric_descriptors   sN    	z'TestClient.test_list_metric_descriptorsc                 C   s.  d}dj t|d}d}d}dddd	}d
ddd	}dddd	}|||||||gd}| jtt d}	t| }
|	_|	|}| |j| | |j	| | |j
| | |j| | t|jd |j\}}}| |j|d  | |j|d  | |j|d  |
j\}dd| d}| || d S )Nr   z6projects/{project}/monitoredResourceDescriptors/{type}r\   zGCE Instancez.A VM instance hosted in Google Compute Engine.r   STRINGzThe ID of the GCP project...)keyr$   rR   r   zThe VM instance identifier...r   zThe GCE zone...)rU   r   ZdisplayNamerR   r    r&      rn   r3   r^   r_   )rE   r;   r   r<   r=   r>   Zfetch_resource_descriptorrA   rU   r   rW   rR   rB   r    rn   rF   )r   rX   r`   ZDISPLAY_NAMErY   ZLABEL1ZLABEL2ZLABEL3ZRESOURCE_DESCRIPTORrK   r>   rZ   label1label2Zlabel3rN   rM   r   r   r   test_fetch_resource_descriptor   sH    

z)TestClient.test_fetch_resource_descriptorc                 C   s
  dj td}d}d}|| }|||d}d}d}|| }|||d}	d||	gi}
| jtt d	}t|
 }|_| }| t|d
 |\}}| |j	| | |j
| | |j| | |j	| | |j
| | |j| |j\}dd| i d}| || d S )Nz0projects/{project}/monitoredResourceDescriptors/r4   z custom.googleapis.com/resource-1zThis is the first resource.)rU   r   rR   z custom.googleapis.com/resource-2zThis is the second resource.ZresourceDescriptorsr&   r+   r3   r^   r6   )rE   r;   r   r<   r=   r>   Zlist_resource_descriptorsrA   rB   rU   r   rR   rF   )r   rb   rc   rd   re   ZRESOURCE_DESCRIPTOR1rf   rg   rh   ZRESOURCE_DESCRIPTOR2rJ   rK   r>   ri   rj   rk   rN   rM   r   r   r   test_list_resource_descriptors  sH    z)TestClient.test_list_resource_descriptorsN)__name__
__module____qualname__r   r   rO   r[   ra   rl   rr   rs   r   r   r   r   r      s   i5*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_requiredR  s    z#_Credentials.create_scoped_requiredc                 C   s
   || _ | S r	   )_scopes)r   scoper   r   r   create_scopedV  s    z_Credentials.create_scoped)rt   ru   rv   rx   staticmethodrw   rz   r   r   r   r   r<   N  s   
r<   c                   @   s   e Zd Zdd Zdd ZdS )r=   c                 G   s   t || _g | _d S r	   )r@   
_responsesrF   )r   	responsesr   r   r   __init__]  s    
z_Connection.__init__c                 K   sF   ddl m} | j| z| jdW S  ty@   |dY n0 d S )Nr   r   Zmiss)r:   r   rF   appendr|   pop
IndexError)r   r   r   r   r   r   api_requesta  s    z_Connection.api_requestN)rt   ru   rv   r~   r   r   r   r   r   r=   [  s   r=   )Z	unittest2r;   ZTestCaser   objectr<   r=   r   r   r   r   <module>   s     <