8000 Ensure MetricFamily labels is a tuple (#184) · sonlinux/client_python@7fb5058 · GitHub
[go: up one dir, main page]

Skip to content

Commit 7fb5058

Browse files
manicsbrian-brazil
authored andcommitted
Ensure MetricFamily labels is a tuple (prometheus#184)
1 parent 96b91c3 commit 7fb5058

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

prometheus_client/core.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ def __init__(self, name, documentation, value=None, labels=None):
187187
raise ValueError('Can only specify at most one of value and labels.')
188188
if labels is None:
189189
labels = []
190-
self._labelnames = labels
190+
self._labelnames = tuple(labels)
191191
if value is not None:
192192
self.add_metric([], value)
193193

@@ -212,7 +212,7 @@ def __init__(self, name, documentation, value=None, labels=None):
212212
raise ValueError('Can only specify at most one of value and labels.')
213213
if labels is None:
214214
labels = []
215-
self._labelnames = labels
215+
self._labelnames = tuple(labels)
216216
if value is not None:
217217
self.add_metric([], value)
218218

@@ -239,7 +239,7 @@ def __init__(self, name, documentation, count_value=None, sum_value=None, labels
239239
raise ValueError('Can only specify at most one of value and labels.')
240240
if labels is None:
241241
labels = []
242-
self._labelnames = labels
242+
self._labelnames = tuple(labels)
243243
if count_value is not None:
244244
self.add_metric([], count_value, sum_value)
245245

@@ -268,7 +268,7 @@ def __init__(self, name, documentation, buckets=None, sum_value=None, labels=Non
268268
raise ValueError('Can only specify at most one of buckets and labels.')
269269
if labels is None:
270270
labels = []
271-
self._labelnames = labels
271+
self._labelnames = tuple(labels)
272272
if buckets is not None:
273273
self.add_metric([], buckets, sum_value)
274274

tests/test_core.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,16 @@ def test_bad_constructors(self):
389389
self.assertRaises(ValueError, HistogramMetricFamily, 'h', 'help', buckets={}, sum_value=1, labels=['a'])
390390
self.assertRaises(KeyError, HistogramMetricFamily, 'h', 'help', buckets={}, sum_value=1)
391391

392+
def test_labelnames(self):
393+
cmf = CounterMetricFamily('c', 'help', labels=iter(['a']))
394+
self.assertEqual(('a',), cmf._labelnames)
395+
gmf = GaugeMetricFamily('g', 'help', labels=iter(['a']))
396+
self.assertEqual(('a',), gmf._labelnames)
397+
smf = SummaryMetricFamily('s', 'help', labels=iter(['a']))
398+
self.assertEqual(('a',), smf._labelnames)
399+
hmf = HistogramMetricFamily('h', 'help', labels=iter(['a']))
400+
self.assertEqual(('a',), hmf._labelnames)
401+
392402

393403
class TestCollectorRegistry(unittest.TestCase):
394404
def test_duplicate_metrics_raises(self):

0 commit comments

Comments
 (0)
0