Skip to content

Commit de8bb4a

Browse files
authored
Fix order-dependent flaky tests related to UTF-8 support (#1093)
* Fix order-dependent flaky tests related to UTF-8 support * Add context-manager for legacy validation --------- Signed-off-by: Dennis Gaebler <[email protected]>
1 parent 46eae7b commit de8bb4a

File tree

1 file changed

+24
-19
lines changed

1 file changed

+24
-19
lines changed

tests/test_core.py

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -109,10 +109,9 @@ def test_inc_not_observable(self):
109109
assert_not_observable(counter.inc)
110110

111111
def test_exemplar_invalid_label_name(self):
112-
enable_legacy_validation()
113-
self.assertRaises(ValueError, self.counter.inc, exemplar={':o)': 'smile'})
114-
self.assertRaises(ValueError, self.counter.inc, exemplar={'1': 'number'})
115-
disable_legacy_validation()
112+
with LegacyValidationContextManager():
113+
self.assertRaises(ValueError, self.counter.inc, exemplar={':o)': 'smile'})
114+
self.assertRaises(ValueError, self.counter.inc, exemplar={'1': 'number'})
116115
self.counter.inc(exemplar={':o)': 'smile'})
117116
self.counter.inc(exemplar={'1': 'number'})
118117

@@ -510,12 +509,11 @@ def test_block_decorator_with_label(self):
510509
self.assertEqual(1, value('hl_bucket', {'le': '+Inf', 'l': 'a'}))
511510

512511
def test_exemplar_invalid_legacy_label_name(self):
513-
enable_legacy_validation()
514-
self.assertRaises(ValueError, self.histogram.observe, 3.0, exemplar={':o)': 'smile'})
515-
self.assertRaises(ValueError, self.histogram.observe, 3.0, exemplar={'1': 'number'})
516-
512+
with LegacyValidationContextManager():
513+
self.assertRaises(ValueError, self.histogram.observe, 3.0, exemplar={':o)': 'smile'})
514+
self.assertRaises(ValueError, self.histogram.observe, 3.0, exemplar={'1': 'number'})
515+
517516
def test_exemplar_invalid_label_name(self):
518-
disable_legacy_validation()
519517
self.histogram.observe(3.0, exemplar={':o)': 'smile'})
520518
self.histogram.observe(3.0, exemplar={'1': 'number'})
521519

@@ -660,18 +658,17 @@ def test_labels_by_kwarg(self):
660658
self.assertRaises(ValueError, self.two_labels.labels, {'a': 'x'}, b='y')
661659

662660
def test_invalid_legacy_names_raise(self):
663-
enable_legacy_validation()
664-
self.assertRaises(ValueError, Counter, '', 'help')
665-
self.assertRaises(ValueError, Counter, '^', 'help')
666-
self.assertRaises(ValueError, Counter, '', 'help', namespace='&')
667-
self.assertRaises(ValueError, Counter, '', 'help', subsystem='(')
668-
self.assertRaises(ValueError, Counter, 'c_total', '', labelnames=['^'])
669-
self.assertRaises(ValueError, Counter, 'c_total', '', labelnames=['a:b'])
670-
self.assertRaises(ValueError, Counter, 'c_total', '', labelnames=['__reserved'])
671-
self.assertRaises(ValueError, Summary, 'c_total', '', labelnames=['quantile'])
661+
with LegacyValidationContextManager():
662+
self.assertRaises(ValueError, Counter, '', 'help')
663+
self.assertRaises(ValueError, Counter, '^', 'help')
664+
self.assertRaises(ValueError, Counter, '', 'help', namespace='&')
665+
self.assertRaises(ValueError, Counter, '', 'help', subsystem='(')
666+
self.assertRaises(ValueError, Counter, 'c_total', '', labelnames=['^'])
667+
self.assertRaises(ValueError, Counter, 'c_total', '', labelnames=['a:b'])
668+
self.assertRaises(ValueError, Counter, 'c_total', '', labelnames=['__reserved'])
669+
self.assertRaises(ValueError, Summary, 'c_total', '', labelnames=['quantile'])
672670

673671
def test_invalid_names_raise(self):
674-
disable_legacy_validation()
675672
self.assertRaises(ValueError, Counter, '', 'help')
676673
self.assertRaises(ValueError, Counter, '', 'help', namespace='&')
677674
self.assertRaises(ValueError, Counter, '', 'help', subsystem='(')
@@ -1007,5 +1004,13 @@ def test_restricted_registry_does_not_yield_while_locked(self):
10071004
self.assertFalse(registry._lock.locked())
10081005

10091006

1007+
class LegacyValidationContextManager:
1008+
def __enter__(self):
1009+
enable_legacy_validation()
1010+
1011+
def __exit__(self, exc_type, exc_value, exc_tb):
1012+
disable_legacy_validation()
1013+
1014+
10101015
if __name__ == '__main__':
10111016
unittest.main()

0 commit comments

Comments
 (0)