diff --git a/CHANGELOG.md b/CHANGELOG.md index 1dec1f202ec975608d6904b7d839d9e7f553ec1b..cb60eea285f693f7275a938c3dee0a0d3c6658d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,2 +1,4 @@ # v2.17.2 +* **bugfix release** default values for metrics + diff --git a/satella/__init__.py b/satella/__init__.py index 123e9fd79363fac3cfb591882acb0088b0ee4ba4..cee49d06e7639dee5ca4bb2034464d063f7c2c12 100644 --- a/satella/__init__.py +++ b/satella/__init__.py @@ -1 +1 @@ -__version__ = '2.17.2a1' +__version__ = '2.17.2' diff --git a/satella/instrumentation/metrics/metric_types/simple.py b/satella/instrumentation/metrics/metric_types/simple.py index eae3726c69fc721b175576d46e12e7ca62872ad9..03c844dc5f587af4fcc73e7077b54d9154ae90ba 100644 --- a/satella/instrumentation/metrics/metric_types/simple.py +++ b/satella/instrumentation/metrics/metric_types/simple.py @@ -11,10 +11,11 @@ class SimpleMetric(EmbeddedSubmetrics): CLASS_NAME = 'string' CONSTRUCTOR = str + DEFAULT_VALUE = '' def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - self.data = None # type: tp.Any + self.data = self.DEFAULT_VALUE # type: tp.Any def _handle(self, value, **labels) -> None: if self.embedded_submetrics_enabled or labels: @@ -33,9 +34,11 @@ class SimpleMetric(EmbeddedSubmetrics): class IntegerMetric(SimpleMetric): CLASS_NAME = 'int' CONSTRUCTOR = int + DEFAULT_VALUE = 0 @register_metric class FloatMetric(SimpleMetric, MeasurableMixin): CLASS_NAME = 'float' CONSTRUCTOR = float + DEFAULT_VALUE = 0.0 diff --git a/tests/test_coding/test_concurrent.py b/tests/test_coding/test_concurrent.py index 49db407262c6eb812335a6b05114fe17d0ef3fb1..cdbff9c64b67cc2a9594b6608e61e09856522ef0 100644 --- a/tests/test_coding/test_concurrent.py +++ b/tests/test_coding/test_concurrent.py @@ -485,15 +485,16 @@ class TestConcurrent(unittest.TestCase): @unittest.skipUnless(sys.implementation.name == 'cpython', 'Does not work on PyPy :(') def test_condition(self): dct = {'a': False} + slf = self cond = Condition() interlock_cond = Condition() class MyThread(TerminableThread): - def run(self2) -> None: - self2.safe_sleep(-2) - self2.safe_sleep(0.5) + def run(self) -> None: + self.safe_sleep(-2) + self.safe_sleep(0.5) interlock_cond.notify() - self.assertRaises(WouldWaitMore, lambda: cond.wait(timeout=0.5)) + slf.assertRaises(WouldWaitMore, lambda: cond.wait(timeout=0.5)) cond.wait(timeout=0.5, dont_raise=True) cond.wait() dct['a'] = True @@ -590,7 +591,6 @@ class TestConcurrent(unittest.TestCase): mtt = MyTerminableThread() mtt.start() - a = mtt.a time.sleep(0.3) self.assertIn(mtt.a, (1, 2)) self.assertFalse(mtt.overrun) diff --git a/tests/test_instrumentation/test_metrics/test_metrics.py b/tests/test_instrumentation/test_metrics/test_metrics.py index d64ee8c25bae91f43e825fb90a50eacd2ccc4422..df00b53979a20bcee261f072d869e0cd4ff0c116 100644 --- a/tests/test_instrumentation/test_metrics/test_metrics.py +++ b/tests/test_instrumentation/test_metrics/test_metrics.py @@ -29,6 +29,12 @@ class TestMetric(unittest.TestCase): kid = choose('.kid', data) self.assertIsNone(kid) + def test_default_float(self): + met = getMetric('test.float', 'float') + data = met.to_metric_data() + v = choose('', data) + self.assertEqual(v.value, 0.0) + def test_uptime_metric(self): up_metric = getMetric('uptime.metric', 'uptime') time.sleep(1)