a
    ù!f3J  ã                   @   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d„ Zdd„ Zdd„ ZdS )ÚTestMetricKindc                 C   s   ddl m} |S )Nr   )Ú
MetricKind)Úgcloud.monitoring.metricr   )Úselfr   © r   ú^/var/www/html/python-backend/venv/lib/python3.9/site-packages/gcloud/monitoring/test_metric.pyÚ_getTargetClass   s    zTestMetricKind._getTargetClassc                 C   s   |   t|  ¡ dƒ¡ d S )NÚGAUGE©Ú
assertTrueÚhasattrr   ©r   r   r   r   Útest_one   s    zTestMetricKind.test_onec                 C   s4   |   ¡ jD ]$}| d¡s
|  t|   ¡ |ƒ|¡ q
d S ©NÚ_©r   Ú__dict__Ú
startswithÚassertEqualÚgetattr©r   Únamer   r   r   Ú
test_names   s    
zTestMetricKind.test_namesN©Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r      s   r   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestValueTypec                 C   s   ddl m} |S )Nr   )Ú	ValueType)r   r   )r   r   r   r   r   r   #   s    zTestValueType._getTargetClassc                 C   s   |   t|  ¡ dƒ¡ d S )NZDISTRIBUTIONr
   r   r   r   r   r   '   s    zTestValueType.test_onec                 C   s4   |   ¡ jD ]$}| d¡s
|  t|   ¡ |ƒ|¡ q
d S r   r   r   r   r   r   r   *   s    
zTestValueType.test_namesNr   r   r   r   r   r   !   s   r   c                   @   s„   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d„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS ) ÚTestMetricDescriptorc                 C   s   ddl m} |S )Nr   )ÚMetricDescriptor)r   r    )r   r    r   r   r   r   2   s    z$TestMetricDescriptor._getTargetClassc                 O   s   |   ¡ |i |¤ŽS ©N©r   ©r   ÚargsÚkwargsr   r   r   Ú_makeOne6   s    zTestMetricDescriptor._makeOnec                 C   sì   ddl m} d}d| }|dddd|d	d
ddg}d}d
}d}d}d}	tƒ }
| j|
||||||||	d	}|  |j|
¡ |  |j|¡ |  |j|¡ |  |j	|¡ |  |j
|¡ |  |j|¡ |  |j|¡ |  |j|¡ |  |j|	¡ d S )Nr   )ÚLabelDescriptorú3appengine.googleapis.com/http/server/response_countú&projects/my-project/metricDescriptors/ÚloadingÚBOOLúLoaded a new instance?)ÚkeyÚ
value_typeÚdescriptionÚresponse_codeÚINT64ú!HTTP status code for the request.ÚDELTAú{responses}/súDelta HTTP response count.úResponse count)	Úclientr   Útype_ÚlabelsÚmetric_kindr.   Úunitr/   Údisplay_name)Zgcloud.monitoring.labelr'   Úobjectr&   ÚassertIsr7   r   r   Útyper9   r:   r.   r;   r/   r<   )r   r'   ÚTYPEÚNAMEÚLABELSÚMETRIC_KINDÚ
VALUE_TYPEÚUNITÚDESCRIPTIONÚDISPLAY_NAMEr7   Ú
descriptorr   r   r   Útest_constructor9   sH    ÿÿý÷z%TestMetricDescriptor.test_constructorc                 C   s˜   d}t ƒ }| j||d}|  |j|¡ |  |j¡ |  |j|¡ |  |jd¡ |  |j	d¡ |  |j
d¡ |  |jd¡ |  |jd¡ |  |jd¡ d S )Nr(   )r7   r8   r   ZMETRIC_KIND_UNSPECIFIEDZVALUE_TYPE_UNSPECIFIEDÚ )r=   r&   r>   r7   ZassertIsNoner   r   r?   r9   r:   r.   r;   r/   r<   )r   r@   r7   rH   r   r   r   Útest_constructor_defaultsf   s    z.TestMetricDescriptor.test_constructor_defaultsc              	   C   s  d}d| }ddddœ}ddd	dœ}d
}d}d}d}d}	||||g|||||	dœ}
t ƒ }|  ¡  ||
¡}|  |j|¡ |  |j|¡ |  |j|¡ |  t|j	ƒd¡ |j	\}}|  |j
|d ¡ |  |j
|d ¡ |  |j|¡ |  |j|¡ |  |j|¡ |  |j|¡ |  |j|	¡ d S )Nr(   r)   r*   r+   r,   ©r-   Ú	valueTyper/   r0   r1   r2   r3   r4   r5   r6   ©r   r?   r9   Ú
metricKindrM   r;   r/   ZdisplayNameé   r-   )r=   r   Ú
_from_dictr>   r7   r   r   r?   Úlenr9   r-   r:   r.   r;   r/   r<   )r   r@   rA   ÚLABEL1ÚLABEL2rC   rD   rE   rF   rG   Úinfor7   rH   Úlabel1Úlabel2r   r   r   Útest_from_dicty   sH    ÿÿø

z#TestMetricDescriptor.test_from_dictc                 C   sº   d}d| }d}d}||||dœ}t ƒ }|  ¡  ||¡}|  |j|¡ |  |j|¡ |  |j|¡ |  |jd¡ |  |j	|¡ |  |j
|¡ |  |jd¡ |  |jd¡ |  |jd¡ d S )Nr(   r)   Z
CUMULATIVEÚDOUBLE©r   r?   rO   rM   r   rJ   )r=   r   rQ   r>   r7   r   r   r?   r9   r:   r.   r;   r/   r<   ©r   r@   rA   rC   rD   rU   r7   rH   r   r   r   Útest_from_dict_defaults¦   s(    üz,TestMetricDescriptor.test_from_dict_defaultsc              	   C   s‚   d}d| }ddddœ}ddd	dœ}d
}d}d}d}d}	||||g|||||	dœ}
t ƒ }|  ¡  ||
¡}|
d= |  | ¡ |
¡ d S )Nr(   r)   r*   r+   r,   rL   r0   r1   r2   r3   r4   r5   r6   rN   r   ©r=   r   rQ   r   Ú_to_dict)r   r@   rA   rS   rT   rC   rD   rE   rF   rG   rU   r7   rH   r   r   r   Útest_to_dictÀ   s4    ÿÿø
z!TestMetricDescriptor.test_to_dictc                 C   sR   d}d| }d}d}||||dœ}t ƒ }|  ¡  ||¡}|d= |  | ¡ |¡ d S )Nr(   r)   r3   r1   rZ   r   r]   r[   r   r   r   Útest_to_dict_defaultsß   s    üz*TestMetricDescriptor.test_to_dict_defaultsc                 C   s
  d}d}dj |d}|| }d}d}d}||||dœ}t||d	}	t|	ƒ}
t||
d
}| j|||||d}| ¡  |  |j|¡ |  |j|¡ |  |j	d¡ |  |j
|¡ |  |j|¡ |  |jd¡ |  |j|¡ |  |jd¡ |
j\}dd| |dœ}|  ||¡ d S )Nú
my-projectúcustom.googleapis.com/my_metricú%projects/{project}/metricDescriptors/©Úprojectr	   rY   úThis is my metric.)r?   rO   rM   r/   )r   ©re   Ú
connection)r7   r8   r:   r.   r/   r   rJ   ÚPOSTú/)ÚmethodÚpathÚdata)ÚformatÚdictÚ_ConnectionÚ_Clientr&   Úcreater   r   r?   r9   r:   r.   r;   r/   r<   Ú
_requested)r   ÚPROJECTr@   ÚPATHrA   rC   rD   rF   ZREQUESTÚRESPONSErh   r7   rH   ÚrequestÚexpected_requestr   r   r   Útest_createñ   sH    üûÿz TestMetricDescriptor.test_createc           	      C   sj   d}d}dj ||d}ti ƒ}t||d}| j||ddd}| ¡  |j\}dd	| d
œ}|  ||¡ d S )Nra   rb   ú+projects/{project}/metricDescriptors/{type}©re   r?   rg   ZNOTUSED)r7   r8   r:   r.   ÚDELETErj   ©rk   rl   )rn   rp   rq   r&   Údeleters   r   )	r   rt   r@   rA   rh   r7   rH   rw   rx   r   r   r   Útest_delete  s"    ÿüz TestMetricDescriptor.test_deletec                 C   s¬   d}d}dj ||d}d}||dd|dœ}t|ƒ}t||d	}|  ¡  ||¡}|  |j|¡ |  |j|¡ |  |j	|¡ |  |j
|¡ |j\}	d
d| dœ}
|  |	|
¡ d S )Nra   rb   rz   r{   rf   r	   rY   ©r   r?   rO   rM   r/   rg   ÚGETrj   r}   )rn   rp   rq   r   Z_fetchr>   r7   r   r   r?   r/   rs   )r   rt   r@   rA   rF   ZMETRIC_DESCRIPTORrh   r7   rH   rw   rx   r   r   r   Ú
test_fetch2  s,    ÿûzTestMetricDescriptor.test_fetchc                 C   s.  d}dj |d}d}d}|| }||dd|dœ}d	}d
}|| }	|	|dd|dœ}
d||
gi}t|ƒ}t||d}|  ¡  |¡}|  t|ƒd¡ |\}}|  |j|¡ |  |j	|¡ |  |j
|¡ |  |j|¡ |  |j|¡ |  |j	|	¡ |  |j
|¡ |  |j|¡ |j\}dd| i dœ}|  ||¡ d S )Nra   rc   rd   ú!custom.googleapis.com/my_metric_1úThis is my first metric.r	   rY   r€   ú!custom.googleapis.com/my_metric_2úThis is my second metric.ÚmetricDescriptorsrg   rP   r   rj   ©rk   rl   Zquery_params)rn   rp   rq   r   Ú_listr   rR   r>   r7   r   r?   r/   rs   )r   rt   ru   ÚTYPE1ÚDESCRIPTION1ÚNAME1ÚMETRIC_DESCRIPTOR1ÚTYPE2ÚDESCRIPTION2ÚNAME2ÚMETRIC_DESCRIPTOR2rv   rh   r7   ÚdescriptorsÚdescriptor1Údescriptor2rw   rx   r   r   r   Ú	test_listN  sP    ûû	ÿÿzTestMetricDescriptor.test_listc                 C   sŠ  ddl m} d}dj|d}d}d}|| }||dd	|d
œ}d}d}	|| }
|
|dd	|	d
œ}d}|g|dœ}d|gi}t||ƒ}t||d}|  ¡  |¡}|  t|ƒd¡ |\}}|  |j	|¡ |  |j
|¡ |  |j|¡ |  |j	|
¡ |  |j
|¡ |  |j|	¡ |j\}}dd| i dœ}dd| d|idœ}|  ||¡ |  ||¡ |  |¡ |  ¡  |¡ W d   ƒ n1 s|0    Y  d S )Nr   ©ÚNotFoundra   rc   rd   rƒ   r„   r	   rY   r€   r…   r†   zsecond-page-please)r‡   ZnextPageTokenr‡   rg   rP   r   rj   rˆ   Z	pageToken)Úgcloud.exceptionsr—   rn   rp   rq   r   r‰   r   rR   r   r?   r/   rs   ÚassertRaises)r   r—   rt   ru   rŠ   r‹   rŒ   r   rŽ   r   r   r‘   ZTOKENZ	RESPONSE1Z	RESPONSE2rh   r7   r’   r“   r”   Zrequest1Zrequest2Zexpected_request1Zexpected_request2r   r   r   Útest_list_paged‚  sb    ûûþÿ

ÿÿz$TestMetricDescriptor.test_list_pagedc           
      C   s|   d}dj |d}d}dg i}t|ƒ}t||d}|  ¡  ||¡}|  t|ƒd¡ |j\}dd	| d
|idœ}	|  ||	¡ d S )Nra   rc   rd   z3metric.type = starts_with("custom.googleapis.com/")r‡   rg   r   r   rj   Úfilterrˆ   ©rn   rp   rq   r   r‰   r   rR   rs   )
r   rt   ru   ÚFILTERrv   rh   r7   r’   rw   rx   r   r   r   Útest_list_filteredÁ  s    ÿz'TestMetricDescriptor.test_list_filteredc                 C   sŠ   d}dj |d}d}dj |d}dg i}t|ƒ}t||d}|  ¡ j||d	}|  t|ƒd
¡ |j\}	dd| d|idœ}
|  |	|
¡ d S )Nra   rc   rd   zcustom.googleapis.com/z%metric.type = starts_with("{prefix}"))Úprefixr‡   rg   )Ztype_prefixr   r   rj   r›   rˆ   rœ   )r   rt   ru   ÚPREFIXr   rv   rh   r7   r’   rw   rx   r   r   r   Ú!test_list_filtered_by_type_prefixÖ  s    ÿz6TestMetricDescriptor.test_list_filtered_by_type_prefixN)r   r   r   r   r&   rI   rK   rX   r\   r_   r`   ry   r   r‚   r•   rš   rž   r¡   r   r   r   r   r   0   s   ---4?r   c                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )Ú
TestMetricc                 C   s   ddl m} |S )Nr   )ÚMetric)r   r£   )r   r£   r   r   r   r   ï  s    zTestMetric._getTargetClassc                 O   s   |   ¡ |i |¤ŽS r!   r"   r#   r   r   r   r&   ó  s    zTestMetric._makeOnec                 C   s<   d}dddœ}| j ||d}|  |j|¡ |  |j|¡ d S ©Nr(   éÈ   F)r0   r*   )r?   r9   )r&   r   r?   r9   )r   r@   rB   Úmetricr   r   r   rI   ö  s    þzTestMetric.test_constructorc                 C   sF   d}dddœ}||dœ}|   ¡  |¡}|  |j|¡ |  |j|¡ d S r¤   ©r   rQ   r   r?   r9   )r   r@   rB   rU   r¦   r   r   r   rX      s    þþzTestMetric.test_from_dictc                 C   s:   d}d|i}|   ¡  |¡}|  |j|¡ |  |ji ¡ d S )Nr(   r?   r§   )r   r@   rU   r¦   r   r   r   r\     s
    z"TestMetric.test_from_dict_defaultsN)r   r   r   r   r&   rI   rX   r\   r   r   r   r   r¢   í  s
   
r¢   c                   @   s   e Zd Zdd„ Zdd„ ZdS )rp   c                 G   s   t |ƒ| _g | _d S r!   )ÚlistÚ
_responsesrs   )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—   rs   Úappendr©   ÚpopÚ
IndexError)r   r%   r—   r   r   r   Úapi_request  s    z_Connection.api_requestN)r   r   r   r«   r¯   r   r   r   r   rp     s   rp   c                   @   s   e Zd Zdd„ ZdS )rq   c                 C   s   || _ || _d S r!   rg   )r   re   rh   r   r   r   r«   '  s    z_Client.__init__N)r   r   r   r«   r   r   r   r   rq   %  s   rq   )	Z	unittest2ZTestCaser   r   r   r¢   r=   rp   rq   r   r   r   r   Ú<module>   s      @)