o
    QDiF                     @   sV   d dl mZ d dlZd dlZd dlmZmZmZmZm	Z	m
Z
mZmZ G dd dZdS )    )
itemgetterN)assert_metric_diffassert_metric_equalassert_metric_no_diffassert_metric_not_equal
get_metricget_metric_from_frozen_registryget_metrics_vectorsave_registryc                   @   sb   e Zd Zejdd Zejdddd Zejdddd Zd	d
 Zdd Z	dd Z
dd ZdS )TestPrometheusTestCaseMixinc                 C   s   t  S )N)prometheus_clientCollectorRegistry)self r   _/var/www/Datamplify/venv/lib/python3.10/site-packages/django_prometheus/tests/test_testutils.pyregistry   s   z$TestPrometheusTestCaseMixin.registryT)autousec                 C   s   t jdd|d}|d |S )N
some_gaugezSome gauge.r   *   )r   Gaugeset)r   r   r   r   r   r   r      s   
z&TestPrometheusTestCaseMixin.some_gaugec                 C   sb   t jddddg|d}|ddd |dd	d
 |ddd |dd	d |S )Nsome_labelled_gaugezSome labelled gauge.labelred	labelbluer   pinkindigo   royal   carmin      )r   r   labelsr   )r   r   r   r   r   r   r      s   z/TestPrometheusTestCaseMixin.some_labelled_gaugec                 C   s0   t d|ddks
J t d|ddddksJ d	S )
zTests get_metric.r   r   r   r   r   r   r   r   r   r   N)r   r   r   r   r   r   test_get_metric,   s   z+TestPrometheusTestCaseMixin.test_get_metricc                 C   s   t d|d}|g ksJ t d|d}|i dfgksJ t d|d}tdddd	fdd
ddfddddfdd
ddfgtd	dt|td	dksKJ dS )zTests get_metrics_vector.some_nonexistent_gauger   r   r   r   r   r   r   r   r   r   r   r    r!   r"   )keyN)r	   sortedr   )r   r   vectorr   r   r   test_get_metrics_vector9   s   z3TestPrometheusTestCaseMixin.test_get_metrics_vectorc                 C   sR   t dd|d tdd|d tdd|d t dd|dd	d
 tdd|ddd
 dS )zTests assert_metric_equal.r   r   r   +   r'   r   r   r   r   r$   tomatoskyN)r   r   r%   r   r   r   test_assert_metric_equalJ   s"   
z4TestPrometheusTestCaseMixin.test_assert_metric_equalc                 C   s   t |d}td|dksJ |d td|dksJ t|dd|d t|dd|d td|dd	d
dks8J |dd	d td|dd	d
dksMJ t|dd|dd	d t|dd|dd	d dS )z5Tests save_registry and frozen registries operations.r   r   r   c   9   r   r   r   r   r(      r"   r$   N)r
   r   r   r   r   r#   )r   r   r   r   frozen_registryr   r   r   test_registry_savinge   sN   

	
z0TestPrometheusTestCaseMixin.test_registry_savingN)__name__
__module____qualname__pytestfixturer   r   r   r&   r,   r0   r5   r   r   r   r   r      s    




r   )operatorr   r   r9   django_prometheus.testutilsr   r   r   r   r   r   r	   r
   r   r   r   r   r   <module>   s
   (