19
19
20
20
21
21
class TestParse (unittest .TestCase ):
22
+ def assertEqualMetrics (self , first , second , msg = None ):
23
+ super (TestParse , self ).assertEqual (first , second , msg )
24
+
25
+ # Test that samples are actually named tuples of type Sample.
26
+ for a , b in zip (first , second ):
27
+ for sa , sb in zip (a .samples , b .samples ):
28
+ assert sa .name == sb .name
22
29
23
30
def test_simple_counter (self ):
24
31
families = text_string_to_metric_families ("""# TYPE a counter
25
32
# HELP a help
26
33
a 1
27
34
""" )
28
- self .assertEqual ([CounterMetricFamily ("a" , "help" , value = 1 )], list (families ))
35
+ self .assertEqualMetrics ([CounterMetricFamily ("a" , "help" , value = 1 )], list (families ))
29
36
30
37
def test_simple_gauge (self ):
31
38
families = text_string_to_metric_families ("""# TYPE a gauge
32
39
# HELP a help
33
40
a 1
34
41
""" )
35
- self .assertEqual ([GaugeMetricFamily ("a" , "help" , value = 1 )], list (families ))
42
+ self .assertEqualMetrics ([GaugeMetricFamily ("a" , "help" , value = 1 )], list (families ))
36
43
37
44
def test_simple_summary (self ):
38
45
families = text_string_to_metric_families ("""# TYPE a summary
@@ -41,7 +48,7 @@ def test_simple_summary(self):
41
48
a_sum 2
42
49
""" )
43
50
summary = SummaryMetricFamily ("a" , "help" , count_value = 1 , sum_value = 2 )
44
- self .assertEqual ([summary ], list (families ))
51
+ self .assertEqualMetrics ([summary ], list (families ))
45
52
46
53
def test_summary_quantiles (self ):
47
54
families = text_string_to_metric_families ("""# TYPE a summary
@@ -54,7 +61,7 @@ def test_summary_quantiles(self):
54
61
# still need to be able to parse them.
55
62
metric_family = SummaryMetricFamily ("a" , "help" , count_value = 1 , sum_value = 2 )
56
63
metric_family .add_sample ("a" , {"quantile" : "0.5" }, 0.7 )
57
- self .assertEqual ([metric_family ], list (families ))
64
+ self .assertEqualMetrics ([metric_family ], list (families ))
58
65
59
66
def test_simple_histogram (self ):
60
67
families = text_string_to_metric_families ("""# TYPE a histogram
@@ -64,14 +71,14 @@ def test_simple_histogram(self):
64
71
a_count 3
65
72
a_sum 2
66
73
""" )
67
- self .assertEqual ([HistogramMetricFamily ("a" , "help" , sum_value = 2 , buckets = [("1" , 0.0 ), ("+Inf" , 3.0 )])], list (families ))
74
+ self .assertEqualMetrics ([HistogramMetricFamily ("a" , "help" , sum_value = 2 , buckets = [("1" , 0.0 ), ("+Inf" , 3.0 )])], list (families ))
68
75
69
76
def test_no_metadata (self ):
70
77
families = text_string_to_metric_families ("""a 1
71
78
""" )
72
79
metric_family = Metric ("a" , "" , "untyped" )
73
80
metric_family .add_sample ("a" , {}, 1 )
74
- self .assertEqual ([metric_family ], list (families ))
81
+ self .assertEqualMetrics ([metric_family ], list (families ))
75
82
76
83
def test_untyped (self ):
77
84
# https://github.com/prometheus/client_python/issues/79
@@ -85,14 +92,14 @@ def test_untyped(self):
85
92
Sample ("redis_connected_clients" , {"instance" : "rough-snowflake-web" , "port" : "6380" }, 10 ),
86
93
Sample ("redis_connected_clients" , {"instance" : "rough-snowflake-web" , "port" : "6381" }, 12 ),
87
94
]
88
- self .assertEqual ([m ], list (families ))
95
+ self .assertEqualMetrics ([m ], list (families ))
89
96
90
97
def test_type_help_switched (self ):
91
98
families = text_string_to_metric_families ("""# HELP a help
92
99
# TYPE a counter
93
100
a 1
94
101
""" )
95
- self .assertEqual ([CounterMetricFamily ("a" , "help" , value = 1 )], list (families ))
102
+ self .assertEqualMetrics ([CounterMetricFamily ("a" , "help" , value = 1 )], list (families ))
96
103
97
104
def test_blank_lines_and_comments (self ):
98
105
families = text_string_to_metric_families ("""
@@ -103,14 +110,14 @@ def test_blank_lines_and_comments(self):
103
110
104
111
a 1
105
112
""" )
106
- self .assertEqual ([CounterMetricFamily ("a" , "help" , value = 1 )], list (families ))
113
+ self .assertEqualMetrics ([CounterMetricFamily ("a" , "help" , value = 1 )], list (families ))
107
114
108
115
def test_tabs (self ):
109
116
families = text_string_to_metric_families ("""#\t TYPE\t a\t counter
110
117
#\t HELP\t a\t help
111
118
a\t 1
112
119
""" )
113
- self .assertEqual ([CounterMetricFamily ("a" , "help" , value = 1 )], list (families ))
120
+ self .assertEqualMetrics ([CounterMetricFamily ("a" , "help" , value = 1 )], list (families ))
114
121
115
122
def test_labels_with_curly_braces (self ):
116
123
families = text_string_to_metric_families ("""# TYPE a counter
@@ -119,14 +126,14 @@ def test_labels_with_curly_braces(self):
119
126
""" )
120
127
metric_family = CounterMetricFamily ("a" , "help" , labels = ["foo" , "bar" ])
121
128
metric_family .add_metric (["bar" , "b{a}z" ], 1 )
122
- self .assertEqual ([metric_family ], list (families ))
129
+ self .assertEqualMetrics ([metric_family ], list (families ))
123
130
124
131
def test_empty_help (self ):
125
132
families = text_string_to_metric_families ("""# TYPE a counter
126
133
# HELP a
127
134
a 1
128
135
""" )
129
- self .assertEqual ([CounterMetricFamily ("a" , "" , value = 1 )], list (families ))
136
+ self .assertEqualMetrics ([CounterMetricFamily ("a" , "" , value = 1 )], list (families ))
130
137
131
138
def test_labels_and_infinite (self ):
132
139
families = text_string_to_metric_families ("""# TYPE a counter
@@ -137,7 +144,7 @@ def test_labels_and_infinite(self):
137
144
metric_family = CounterMetricFamily ("a" , "help" , labels = ["foo" ])
138
145
metric_family .add_metric (["bar" ], float ('inf' ))
139
146
metric_family .add_metric (["baz" ], float ('-inf' ))
140
- self .assertEqual ([metric_family ], list (families ))
147
+ self .assertEqualMetrics ([metric_family ], list (families ))
141
148
142
149
def test_spaces (self ):
143
150
families = text_string_to_metric_families ("""# TYPE a counter
@@ -154,7 +161,7 @@ def test_spaces(self):
154
161
metric_family .add_metric (["buz" ], 3 )
155
162
metric_family .add_metric (["biz" ], 4 )
156
163
metric_family .add_metric (["boz" ], 5 )
157
- self .assertEqual ([metric_family ], list (families ))
164
+ self .assertEqualMetrics ([metric_family ], list (families ))
158
165
159
166
def test_commas (self ):
160
167
families = text_string_to_metric_families ("""# TYPE a counter
@@ -177,7 +184,7 @@ def test_commas(self):
177
184
b = CounterMetricFamily ("b" , "help" , value = 2 )
178
185
c = CounterMetricFamily ("c" , "help" , value = 3 )
179
186
d = CounterMetricFamily ("d" , "help" , value = 4 )
180
- self .assertEqual ([a , b , c , d ], list (families ))
187
+ self .assertEqualMetrics ([a , b , c , d ], list (families ))
181
188
182
189
def test_multiple_trailing_commas (self ):
183
190
text = """# TYPE a counter
@@ -192,7 +199,7 @@ def test_empty_brackets(self):
192
199
# HELP a help
193
200
a{} 1
194
201
""" )
195
- self .assertEqual ([CounterMetricFamily ("a" , "help" , value = 1 )], list (families ))
202
+ self .assertEqualMetrics ([CounterMetricFamily ("a" , "help" , value = 1 )], list (families ))
196
203
197
204
def test_nan (self ):
198
205
families = text_string_to_metric_families ("""a NaN
@@ -209,7 +216,7 @@ def test_empty_label(self):
209
216
metric_family = CounterMetricFamily ("a" , "help" , labels = ["foo" ])
210
217
metric_family .add_metric (["bar" ], 1 )
211
218
metric_family .add_metric (["" ], 2 )
212
- self .assertEqual ([metric_family ], list (families ))
219
+ self .assertEqualMetrics ([metric_family ], list (families ))
213
220
214
221
def test_label_escaping (self ):
215
222
for escaped_val , unescaped_val in [
@@ -231,7 +238,7 @@ def test_label_escaping(self):
231
238
metric_family = CounterMetricFamily (
232
239
"a" , "help" , labels = ["foo" , "bar" ])
233
240
metric_family .add_metric ([unescaped_val , "baz" ], 1 )
234
- self .assertEqual ([metric_family ], list (families ))
241
+ self .assertEqualMetrics ([metric_family ], list (families ))
235
242
236
243
def test_help_escaping (self ):
237
244
for escaped_val , unescaped_val in [
@@ -253,7 +260,7 @@ def test_help_escaping(self):
253
260
""" % escaped_val ))
254
261
metric_family = CounterMetricFamily ("a" , unescaped_val , labels = ["foo" ])
255
262
metric_family .add_metric (["bar" ], 1 )
256
- self .assertEqual ([metric_family ], list (families ))
263
+ self .assertEqualMetrics ([metric_family ], list (families ))
257
264
258
265
def test_escaping (self ):
259
266
families = text_string_to_metric_families ("""# TYPE a counter
@@ -264,7 +271,7 @@ def test_escaping(self):
264
271
metric_family = CounterMetricFamily ("a" , "he\n \\ l\\ tp" , labels = ["foo" ])
265
272
metric_family .add_metric (["b\" a\n r" ], 1 )
266
273
metric_family .add_metric (["b\\ a\\ z" ], 2 )
267
- self .assertEqual ([metric_family ], list (families ))
274
+ self .assertEqualMetrics ([metric_family ], list (families ))
268
275
269
276
def test_timestamps_discarded (self ):
270
277
families = text_string_to_metric_families ("""# TYPE a counter
@@ -277,7 +284,7 @@ def test_timestamps_discarded(self):
277
284
a = CounterMetricFamily ("a" , "help" , labels = ["foo" ])
278
285
a .add_metric (["bar" ], 1 )
279
286
b = CounterMetricFamily ("b" , "help" , value = 2 )
280
- self .assertEqual ([a , b ], list (families ))
287
+ self .assertEqualMetrics ([a , b ], list (families ))
281
288
282
289
@unittest .skipIf (sys .version_info < (2 , 7 ), "Test requires Python 2.7+." )
283
290
def test_roundtrip (self ):
0 commit comments