@@ -234,7 +234,8 @@ def test_incorrect_label_count_raises(self):
234
234
235
235
def test_labels_coerced_to_string (self ):
236
236
self .counter .labels (None ).inc ()
237
- self .assertEqual (1 , self .registry .get_sample_value ('c' , {'l' : 'None' }))
237
+ self .counter .labels ({'l' : None }).inc ()
238
+ self .assertEqual (2 , self .registry .get_sample_value ('c' , {'l' : 'None' }))
238
239
239
240
self .counter .remove (None )
240
241
self .assertEqual (None , self .registry .get_sample_value ('c' , {'l' : 'None' }))
@@ -243,12 +244,27 @@ def test_non_string_labels_raises(self):
243
244
class Test (object ):
244
245
__str__ = None
245
246
self .assertRaises (TypeError , self .counter .labels , Test ())
247
+ self .assertRaises (TypeError , self .counter .labels , {'l' : Test ()})
246
248
247
249
def test_namespace_subsystem_concatenated (self ):
248
250
c = Counter ('c' , 'help' , namespace = 'a' , subsystem = 'b' , registry = self .registry )
249
251
c .inc ()
250
252
self .assertEqual (1 , self .registry .get_sample_value ('a_b_c' ))
251
253
254
+ def test_labels_by_dict (self ):
255
+ self .counter .labels ({'l' : 'x' }).inc ()
256
+ self .assertEqual (1 , self .registry .get_sample_value ('c' , {'l' : 'x' }))
257
+ self .assertRaises (ValueError , self .counter .labels , {'l' : 'x' , 'm' : 'y' })
258
+ self .assertRaises (ValueError , self .counter .labels , {'m' : 'y' })
259
+ self .assertRaises (ValueError , self .counter .labels , {})
260
+ self .two_labels .labels ({'a' : 'x' , 'b' : 'y' }).inc ()
261
+ self .assertEqual (1 , self .registry .get_sample_value ('two' , {'a' : 'x' , 'b' : 'y' }))
262
+ self .assertRaises (ValueError , self .two_labels .labels , {'a' : 'x' , 'b' : 'y' , 'c' : 'z' })
263
+ self .assertRaises (ValueError , self .two_labels .labels , {'a' : 'x' , 'c' : 'z' })
264
+ self .assertRaises (ValueError , self .two_labels .labels , {'b' : 'y' , 'c' : 'z' })
265
+ self .assertRaises (ValueError , self .two_labels .labels , {'c' : 'z' })
266
+ self .assertRaises (ValueError , self .two_labels .labels , {})
267
+
252
268
def test_invalid_names_raise (self ):
253
269
self .assertRaises (ValueError , Counter , '' , 'help' )
254
270
self .assertRaises (ValueError , Counter , '^' , 'help' )
0 commit comments