1919
2020
2121class 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
2229
2330 def test_simple_counter (self ):
2431 families = text_string_to_metric_families ("""# TYPE a counter
2532# HELP a help
2633a 1
2734""" )
28- self .assertEqual ([CounterMetricFamily ("a" , "help" , value = 1 )], list (families ))
35+ self .assertEqualMetrics ([CounterMetricFamily ("a" , "help" , value = 1 )], list (families ))
2936
3037 def test_simple_gauge (self ):
3138 families = text_string_to_metric_families ("""# TYPE a gauge
3239# HELP a help
3340a 1
3441""" )
35- self .assertEqual ([GaugeMetricFamily ("a" , "help" , value = 1 )], list (families ))
42+ self .assertEqualMetrics ([GaugeMetricFamily ("a" , "help" , value = 1 )], list (families ))
3643
3744 def test_simple_summary (self ):
3845 families = text_string_to_metric_families ("""# TYPE a summary
@@ -41,7 +48,7 @@ def test_simple_summary(self):
4148a_sum 2
4249""" )
4350 summary = SummaryMetricFamily ("a" , "help" , count_value = 1 , sum_value = 2 )
44- self .assertEqual ([summary ], list (families ))
51+ self .assertEqualMetrics ([summary ], list (families ))
4552
4653 def test_summary_quantiles (self ):
4754 families = text_string_to_metric_families ("""# TYPE a summary
@@ -54,7 +61,7 @@ def test_summary_quantiles(self):
5461 # still need to be able to parse them.
5562 metric_family = SummaryMetricFamily ("a" , "help" , count_value = 1 , sum_value = 2 )
5663 metric_family .add_sample ("a" , {"quantile" : "0.5" }, 0.7 )
57- self .assertEqual ([metric_family ], list (families ))
64+ self .assertEqualMetrics ([metric_family ], list (families ))
5865
5966 def test_simple_histogram (self ):
6067 families = text_string_to_metric_families ("""# TYPE a histogram
@@ -64,14 +71,14 @@ def test_simple_histogram(self):
6471a_count 3
6572a_sum 2
6673""" )
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 ))
6875
6976 def test_no_metadata (self ):
7077 families = text_string_to_metric_families ("""a 1
7178""" )
7279 metric_family = Metric ("a" , "" , "untyped" )
7380 metric_family .add_sample ("a" , {}, 1 )
74- self .assertEqual ([metric_family ], list (families ))
81+ self .assertEqualMetrics ([metric_family ], list (families ))
7582
7683 def test_untyped (self ):
7784 # https://github.com/prometheus/client_python/issues/79
@@ -85,14 +92,14 @@ def test_untyped(self):
8592 Sample ("redis_connected_clients" , {"instance" : "rough-snowflake-web" , "port" : "6380" }, 10 ),
8693 Sample ("redis_connected_clients" , {"instance" : "rough-snowflake-web" , "port" : "6381" }, 12 ),
8794 ]
88- self .assertEqual ([m ], list (families ))
95+ self .assertEqualMetrics ([m ], list (families ))
8996
9097 def test_type_help_switched (self ):
9198 families = text_string_to_metric_families ("""# HELP a help
9299# TYPE a counter
93100a 1
94101""" )
95- self .assertEqual ([CounterMetricFamily ("a" , "help" , value = 1 )], list (families ))
102+ self .assertEqualMetrics ([CounterMetricFamily ("a" , "help" , value = 1 )], list (families ))
96103
97104 def test_blank_lines_and_comments (self ):
98105 families = text_string_to_metric_families ("""
@@ -103,14 +110,14 @@ def test_blank_lines_and_comments(self):
103110
104111a 1
105112""" )
106- self .assertEqual ([CounterMetricFamily ("a" , "help" , value = 1 )], list (families ))
113+ self .assertEqualMetrics ([CounterMetricFamily ("a" , "help" , value = 1 )], list (families ))
107114
108115 def test_tabs (self ):
109116 families = text_string_to_metric_families ("""#\t TYPE\t a\t counter
110117#\t HELP\t a\t help
111118a\t 1
112119""" )
113- self .assertEqual ([CounterMetricFamily ("a" , "help" , value = 1 )], list (families ))
120+ self .assertEqualMetrics ([CounterMetricFamily ("a" , "help" , value = 1 )], list (families ))
114121
115122 def test_labels_with_curly_braces (self ):
116123 families = text_string_to_metric_families ("""# TYPE a counter
@@ -119,14 +126,14 @@ def test_labels_with_curly_braces(self):
119126""" )
120127 metric_family = CounterMetricFamily ("a" , "help" , labels = ["foo" , "bar" ])
121128 metric_family .add_metric (["bar" , "b{a}z" ], 1 )
122- self .assertEqual ([metric_family ], list (families ))
129+ self .assertEqualMetrics ([metric_family ], list (families ))
123130
124131 def test_empty_help (self ):
125132 families = text_string_to_metric_families ("""# TYPE a counter
126133# HELP a
127134a 1
128135""" )
129- self .assertEqual ([CounterMetricFamily ("a" , "" , value = 1 )], list (families ))
136+ self .assertEqualMetrics ([CounterMetricFamily ("a" , "" , value = 1 )], list (families ))
130137
131138 def test_labels_and_infinite (self ):
132139 families = text_string_to_metric_families ("""# TYPE a counter
@@ -137,7 +144,7 @@ def test_labels_and_infinite(self):
137144 metric_family = CounterMetricFamily ("a" , "help" , labels = ["foo" ])
138145 metric_family .add_metric (["bar" ], float ('inf' ))
139146 metric_family .add_metric (["baz" ], float ('-inf' ))
140- self .assertEqual ([metric_family ], list (families ))
147+ self .assertEqualMetrics ([metric_family ], list (families ))
141148
142149 def test_spaces (self ):
143150 families = text_string_to_metric_families ("""# TYPE a counter
@@ -154,7 +161,7 @@ def test_spaces(self):
154161 metric_family .add_metric (["buz" ], 3 )
155162 metric_family .add_metric (["biz" ], 4 )
156163 metric_family .add_metric (["boz" ], 5 )
157- self .assertEqual ([metric_family ], list (families ))
164+ self .assertEqualMetrics ([metric_family ], list (families ))
158165
159166 def test_commas (self ):
160167 families = text_string_to_metric_families ("""# TYPE a counter
@@ -177,7 +184,7 @@ def test_commas(self):
177184 b = CounterMetricFamily ("b" , "help" , value = 2 )
178185 c = CounterMetricFamily ("c" , "help" , value = 3 )
179186 d = CounterMetricFamily ("d" , "help" , value = 4 )
180- self .assertEqual ([a , b , c , d ], list (families ))
187+ self .assertEqualMetrics ([a , b , c , d ], list (families ))
181188
182189 def test_multiple_trailing_commas (self ):
183190 text = """# TYPE a counter
@@ -192,7 +199,7 @@ def test_empty_brackets(self):
192199# HELP a help
193200a{} 1
194201""" )
195- self .assertEqual ([CounterMetricFamily ("a" , "help" , value = 1 )], list (families ))
202+ self .assertEqualMetrics ([CounterMetricFamily ("a" , "help" , value = 1 )], list (families ))
196203
197204 def test_nan (self ):
198205 families = text_string_to_metric_families ("""a NaN
@@ -209,7 +216,7 @@ def test_empty_label(self):
209216 metric_family = CounterMetricFamily ("a" , "help" , labels = ["foo" ])
210217 metric_family .add_metric (["bar" ], 1 )
211218 metric_family .add_metric (["" ], 2 )
212- self .assertEqual ([metric_family ], list (families ))
219+ self .assertEqualMetrics ([metric_family ], list (families ))
213220
214221 def test_label_escaping (self ):
215222 for escaped_val , unescaped_val in [
@@ -231,7 +238,7 @@ def test_label_escaping(self):
231238 metric_family = CounterMetricFamily (
232239 "a" , "help" , labels = ["foo" , "bar" ])
233240 metric_family .add_metric ([unescaped_val , "baz" ], 1 )
234- self .assertEqual ([metric_family ], list (families ))
241+ self .assertEqualMetrics ([metric_family ], list (families ))
235242
236243 def test_help_escaping (self ):
237244 for escaped_val , unescaped_val in [
@@ -253,7 +260,7 @@ def test_help_escaping(self):
253260""" % escaped_val ))
254261 metric_family = CounterMetricFamily ("a" , unescaped_val , labels = ["foo" ])
255262 metric_family .add_metric (["bar" ], 1 )
256- self .assertEqual ([metric_family ], list (families ))
263+ self .assertEqualMetrics ([metric_family ], list (families ))
257264
258265 def test_escaping (self ):
259266 families = text_string_to_metric_families ("""# TYPE a counter
@@ -264,7 +271,7 @@ def test_escaping(self):
264271 metric_family = CounterMetricFamily ("a" , "he\n \\ l\\ tp" , labels = ["foo" ])
265272 metric_family .add_metric (["b\" a\n r" ], 1 )
266273 metric_family .add_metric (["b\\ a\\ z" ], 2 )
267- self .assertEqual ([metric_family ], list (families ))
274+ self .assertEqualMetrics ([metric_family ], list (families ))
268275
269276 def test_timestamps_discarded (self ):
270277 families = text_string_to_metric_families ("""# TYPE a counter
@@ -277,7 +284,7 @@ def test_timestamps_discarded(self):
277284 a = CounterMetricFamily ("a" , "help" , labels = ["foo" ])
278285 a .add_metric (["bar" ], 1 )
279286 b = CounterMetricFamily ("b" , "help" , value = 2 )
280- self .assertEqual ([a , b ], list (families ))
287+ self .assertEqualMetrics ([a , b ], list (families ))
281288
282289 @unittest .skipIf (sys .version_info < (2 , 7 ), "Test requires Python 2.7+." )
283290 def test_roundtrip (self ):
0 commit comments