@@ -281,6 +281,31 @@ def add_label(key, value):
281281
282282 self .assertEqual (metrics ['h' ].samples , expected_histogram )
283283
284+ def test_collect_preserves_help (self ):
285+ pid = 0
286+ values .ValueClass = MultiProcessValue (lambda : pid )
287+ labels = {i : i for i in 'abcd' }
288+
289+ c = Counter ('c' , 'c help' , labelnames = labels .keys (), registry = None )
290+ g = Gauge ('g' , 'g help' , labelnames = labels .keys (), registry = None )
291+ h = Histogram ('h' , 'h help' , labelnames = labels .keys (), registry = None )
292+
293+ c .labels (** labels ).inc (1 )
294+ g .labels (** labels ).set (1 )
295+ h .labels (** labels ).observe (1 )
296+
297+ pid = 1
298+
299+ c .labels (** labels ).inc (1 )
300+ g .labels (** labels ).set (1 )
301+ h .labels (** labels ).observe (5 )
302+
303+ metrics = {m .name : m for m in self .collector .collect ()}
304+
305+ self .assertEqual (metrics ['c' ].documentation , 'c help' )
306+ self .assertEqual (metrics ['g' ].documentation , 'g help' )
307+ self .assertEqual (metrics ['h' ].documentation , 'h help' )
308+
284309 def test_merge_no_accumulate (self ):
285310 pid = 0
286311 values .ValueClass = MultiProcessValue (lambda : pid )
0 commit comments