11#!/usr/bin/env python
2- import unittest
32from operator import itemgetter
43
54import prometheus_client
5+ import pytest
66
77from django_prometheus .testutils import (
88 assert_metric_diff ,
1616)
1717
1818
19- class PrometheusTestCaseMixinTest (unittest .TestCase ):
20- def setUp (self ):
21- self .registry = prometheus_client .CollectorRegistry ()
22- self .some_gauge = prometheus_client .Gauge ("some_gauge" , "Some gauge." , registry = self .registry )
23- self .some_gauge .set (42 )
24- self .some_labelled_gauge = prometheus_client .Gauge (
19+ class TestPrometheusTestCaseMixin :
20+ @pytest .fixture ()
21+ def registry (self ):
22+ return prometheus_client .CollectorRegistry ()
23+
24+ @pytest .fixture (autouse = True )
25+ def some_gauge (self , registry ):
26+ some_gauge = prometheus_client .Gauge ("some_gauge" , "Some gauge." , registry = registry )
27+ some_gauge .set (42 )
28+ return some_gauge
29+
30+ @pytest .fixture (autouse = True )
31+ def some_labelled_gauge (self , registry ):
32+ some_labelled_gauge = prometheus_client .Gauge (
2533 "some_labelled_gauge" ,
2634 "Some labelled gauge." ,
2735 ["labelred" , "labelblue" ],
28- registry = self . registry ,
36+ registry = registry ,
2937 )
30- self .some_labelled_gauge .labels ("pink" , "indigo" ).set (1 )
31- self .some_labelled_gauge .labels ("pink" , "royal" ).set (2 )
32- self .some_labelled_gauge .labels ("carmin" , "indigo" ).set (3 )
33- self .some_labelled_gauge .labels ("carmin" , "royal" ).set (4 )
38+ some_labelled_gauge .labels ("pink" , "indigo" ).set (1 )
39+ some_labelled_gauge .labels ("pink" , "royal" ).set (2 )
40+ some_labelled_gauge .labels ("carmin" , "indigo" ).set (3 )
41+ some_labelled_gauge .labels ("carmin" , "royal" ).set (4 )
42+ return some_labelled_gauge
3443
35- def test_get_metric (self ):
44+ def test_get_metric (self , registry ):
3645 """Tests get_metric."""
37- assert 42 == get_metric ("some_gauge" , registry = self . registry )
46+ assert 42 == get_metric ("some_gauge" , registry = registry )
3847 assert 1 == get_metric (
3948 "some_labelled_gauge" ,
40- registry = self . registry ,
49+ registry = registry ,
4150 labelred = "pink" ,
4251 labelblue = "indigo" ,
4352 )
4453
45- def test_get_metrics_vector (self ):
54+ def test_get_metrics_vector (self , registry ):
4655 """Tests get_metrics_vector."""
47- vector = get_metrics_vector ("some_nonexistent_gauge" , registry = self . registry )
56+ vector = get_metrics_vector ("some_nonexistent_gauge" , registry = registry )
4857 assert [] == vector
49- vector = get_metrics_vector ("some_gauge" , registry = self . registry )
58+ vector = get_metrics_vector ("some_gauge" , registry = registry )
5059 assert [({}, 42 )] == vector
51- vector = get_metrics_vector ("some_labelled_gauge" , registry = self . registry )
60+ vector = get_metrics_vector ("some_labelled_gauge" , registry = registry )
5261 assert sorted (
5362 [
5463 ({"labelred" : "pink" , "labelblue" : "indigo" }, 1 ),
@@ -59,57 +68,55 @@ def test_get_metrics_vector(self):
5968 key = itemgetter (1 ),
6069 ) == sorted (vector , key = itemgetter (1 ))
6170
62- def test_assert_metric_equal (self ):
71+ def test_assert_metric_equal (self , registry ):
6372 """Tests assert_metric_equal."""
6473 # First we test that a scalar metric can be tested.
65- assert_metric_equal (42 , "some_gauge" , registry = self . registry )
74+ assert_metric_equal (42 , "some_gauge" , registry = registry )
6675
67- assert_metric_not_equal (43 , "some_gauge" , registry = self . registry )
76+ assert_metric_not_equal (43 , "some_gauge" , registry = registry )
6877
6978 # Here we test that assert_metric_equal fails on nonexistent gauges.
70- assert_metric_not_equal (42 , "some_nonexistent_gauge" , registry = self . registry )
79+ assert_metric_not_equal (42 , "some_nonexistent_gauge" , registry = registry )
7180
7281 # Here we test that labelled metrics can be tested.
7382 assert_metric_equal (
7483 1 ,
7584 "some_labelled_gauge" ,
76- registry = self . registry ,
85+ registry = registry ,
7786 labelred = "pink" ,
7887 labelblue = "indigo" ,
7988 )
8089
8190 assert_metric_not_equal (
8291 1 ,
8392 "some_labelled_gauge" ,
84- registry = self . registry ,
93+ registry = registry ,
8594 labelred = "tomato" ,
8695 labelblue = "sky" ,
8796 )
8897
89- def test_registry_saving (self ):
98+ def test_registry_saving (self , registry , some_gauge , some_labelled_gauge ):
9099 """Tests save_registry and frozen registries operations."""
91- frozen_registry = save_registry (registry = self . registry )
100+ frozen_registry = save_registry (registry = registry )
92101 # Test that we can manipulate a frozen scalar metric.
93102 assert 42 == get_metric_from_frozen_registry ("some_gauge" , frozen_registry )
94- self . some_gauge .set (99 )
103+ some_gauge .set (99 )
95104 assert 42 == get_metric_from_frozen_registry ("some_gauge" , frozen_registry )
96- assert_metric_diff (frozen_registry , 99 - 42 , "some_gauge" , registry = self .registry )
97-
98- assert_metric_no_diff (frozen_registry , 1 , "some_gauge" , registry = self .registry )
99-
105+ assert_metric_diff (frozen_registry , 99 - 42 , "some_gauge" , registry = registry )
106+ assert_metric_no_diff (frozen_registry , 1 , "some_gauge" , registry = registry )
100107 # Now test the same thing with a labelled metric.
101108 assert 1 == get_metric_from_frozen_registry (
102109 "some_labelled_gauge" , frozen_registry , labelred = "pink" , labelblue = "indigo"
103110 )
104- self . some_labelled_gauge .labels ("pink" , "indigo" ).set (5 )
111+ some_labelled_gauge .labels ("pink" , "indigo" ).set (5 )
105112 assert 1 == get_metric_from_frozen_registry (
106113 "some_labelled_gauge" , frozen_registry , labelred = "pink" , labelblue = "indigo"
107114 )
108115 assert_metric_diff (
109116 frozen_registry ,
110117 5 - 1 ,
111118 "some_labelled_gauge" ,
112- registry = self . registry ,
119+ registry = registry ,
113120 labelred = "pink" ,
114121 labelblue = "indigo" ,
115122 )
@@ -118,7 +125,7 @@ def test_registry_saving(self):
118125 frozen_registry ,
119126 1 ,
120127 "some_labelled_gauge" ,
121- registry = self . registry ,
128+ registry = registry ,
122129 labelred = "pink" ,
123130 labelblue = "indigo" ,
124131 )
0 commit comments