1
1
#!/usr/bin/env python
2
- import unittest
3
2
from operator import itemgetter
4
3
5
4
import prometheus_client
5
+ import pytest
6
6
7
7
from django_prometheus .testutils import (
8
8
assert_metric_diff ,
16
16
)
17
17
18
18
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 (
25
33
"some_labelled_gauge" ,
26
34
"Some labelled gauge." ,
27
35
["labelred" , "labelblue" ],
28
- registry = self . registry ,
36
+ registry = registry ,
29
37
)
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
34
43
35
- def test_get_metric (self ):
44
+ def test_get_metric (self , registry ):
36
45
"""Tests get_metric."""
37
- assert 42 == get_metric ("some_gauge" , registry = self . registry )
46
+ assert 42 == get_metric ("some_gauge" , registry = registry )
38
47
assert 1 == get_metric (
39
48
"some_labelled_gauge" ,
40
- registry = self . registry ,
49
+ registry = registry ,
41
50
labelred = "pink" ,
42
51
labelblue = "indigo" ,
43
52
)
44
53
45
- def test_get_metrics_vector (self ):
54
+ def test_get_metrics_vector (self , registry ):
46
55
"""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 )
48
57
assert [] == vector
49
- vector = get_metrics_vector ("some_gauge" , registry = self . registry )
58
+ vector = get_metrics_vector ("some_gauge" , registry = registry )
50
59
assert [({}, 42 )] == vector
51
- vector = get_metrics_vector ("some_labelled_gauge" , registry = self . registry )
60
+ vector = get_metrics_vector ("some_labelled_gauge" , registry = registry )
52
61
assert sorted (
53
62
[
54
63
({"labelred" : "pink" , "labelblue" : "indigo" }, 1 ),
@@ -59,57 +68,55 @@ def test_get_metrics_vector(self):
59
68
key = itemgetter (1 ),
60
69
) == sorted (vector , key = itemgetter (1 ))
61
70
62
- def test_assert_metric_equal (self ):
71
+ def test_assert_metric_equal (self , registry ):
63
72
"""Tests assert_metric_equal."""
64
73
# 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 )
66
75
67
- assert_metric_not_equal (43 , "some_gauge" , registry = self . registry )
76
+ assert_metric_not_equal (43 , "some_gauge" , registry = registry )
68
77
69
78
# 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 )
71
80
72
81
# Here we test that labelled metrics can be tested.
73
82
assert_metric_equal (
74
83
1 ,
75
84
"some_labelled_gauge" ,
76
- registry = self . registry ,
85
+ registry = registry ,
77
86
labelred = "pink" ,
78
87
labelblue = "indigo" ,
79
88
)
80
89
81
90
assert_metric_not_equal (
82
91
1 ,
83
92
"some_labelled_gauge" ,
84
- registry = self . registry ,
93
+ registry = registry ,
85
94
labelred = "tomato" ,
86
95
labelblue = "sky" ,
87
96
)
88
97
89
- def test_registry_saving (self ):
98
+ def test_registry_saving (self , registry , some_gauge , some_labelled_gauge ):
90
99
"""Tests save_registry and frozen registries operations."""
91
- frozen_registry = save_registry (registry = self . registry )
100
+ frozen_registry = save_registry (registry = registry )
92
101
# Test that we can manipulate a frozen scalar metric.
93
102
assert 42 == get_metric_from_frozen_registry ("some_gauge" , frozen_registry )
94
- self . some_gauge .set (99 )
103
+ some_gauge .set (99 )
95
104
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 )
100
107
# Now test the same thing with a labelled metric.
101
108
assert 1 == get_metric_from_frozen_registry (
102
109
"some_labelled_gauge" , frozen_registry , labelred = "pink" , labelblue = "indigo"
103
110
)
104
- self . some_labelled_gauge .labels ("pink" , "indigo" ).set (5 )
111
+ some_labelled_gauge .labels ("pink" , "indigo" ).set (5 )
105
112
assert 1 == get_metric_from_frozen_registry (
106
113
"some_labelled_gauge" , frozen_registry , labelred = "pink" , labelblue = "indigo"
107
114
)
108
115
assert_metric_diff (
109
116
frozen_registry ,
110
117
5 - 1 ,
111
118
"some_labelled_gauge" ,
112
- registry = self . registry ,
119
+ registry = registry ,
113
120
labelred = "pink" ,
114
121
labelblue = "indigo" ,
115
122
)
@@ -118,7 +125,7 @@ def test_registry_saving(self):
118
125
frozen_registry ,
119
126
1 ,
120
127
"some_labelled_gauge" ,
121
- registry = self . registry ,
128
+ registry = registry ,
122
129
labelred = "pink" ,
123
130
labelblue = "indigo" ,
124
131
)
0 commit comments