@@ -234,7 +234,8 @@ def test_incorrect_label_count_raises(self):
234234
235235 def test_labels_coerced_to_string (self ):
236236 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' }))
238239
239240 self .counter .remove (None )
240241 self .assertEqual (None , self .registry .get_sample_value ('c' , {'l' : 'None' }))
@@ -243,12 +244,27 @@ def test_non_string_labels_raises(self):
243244 class Test (object ):
244245 __str__ = None
245246 self .assertRaises (TypeError , self .counter .labels , Test ())
247+ self .assertRaises (TypeError , self .counter .labels , {'l' : Test ()})
246248
247249 def test_namespace_subsystem_concatenated (self ):
248250 c = Counter ('c' , 'help' , namespace = 'a' , subsystem = 'b' , registry = self .registry )
249251 c .inc ()
250252 self .assertEqual (1 , self .registry .get_sample_value ('a_b_c' ))
251253
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+
252268 def test_invalid_names_raise (self ):
253269 self .assertRaises (ValueError , Counter , '' , 'help' )
254270 self .assertRaises (ValueError , Counter , '^' , 'help' )
0 commit comments