From 3ad001d1d83127e9b83d146b3b12373143b7dc81 Mon Sep 17 00:00:00 2001 From: Alex Boten Date: Tue, 29 Oct 2019 16:39:09 -0700 Subject: [PATCH 1/2] Adding warning to log/log_event calls Tested that calling log/log_event worked without implementing them. The implementation is strictly to log a warning when those deprecated methods are called. - Use deprecated instead of logging directly Signed-off-by: Alex Boten --- .../setup.cfg | 1 + .../ext/opentracing_shim/__init__.py | 13 +++++++---- .../tests/test_shim.py | 22 +++++++++++++++++++ 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/ext/opentelemetry-ext-opentracing-shim/setup.cfg b/ext/opentelemetry-ext-opentracing-shim/setup.cfg index c3b750f80fe..a9daabee0b2 100644 --- a/ext/opentelemetry-ext-opentracing-shim/setup.cfg +++ b/ext/opentelemetry-ext-opentracing-shim/setup.cfg @@ -39,6 +39,7 @@ package_dir= =src packages=find_namespace: install_requires = + Deprecated >= 1.2.6 opentracing opentelemetry-api diff --git a/ext/opentelemetry-ext-opentracing-shim/src/opentelemetry/ext/opentracing_shim/__init__.py b/ext/opentelemetry-ext-opentracing-shim/src/opentelemetry/ext/opentracing_shim/__init__.py index 1a6479fc58e..7ee8ad71e09 100644 --- a/ext/opentelemetry-ext-opentracing-shim/src/opentelemetry/ext/opentracing_shim/__init__.py +++ b/ext/opentelemetry-ext-opentracing-shim/src/opentelemetry/ext/opentracing_shim/__init__.py @@ -15,6 +15,7 @@ import logging import opentracing +from deprecated import deprecated from opentelemetry.ext.opentracing_shim import util @@ -77,6 +78,14 @@ def log_kv(self, key_values, timestamp=None): self._otel_span.add_event(event_name, event_timestamp, key_values) return self + @deprecated(reason="This method is deprecated in favor of log_kv") + def log(self, **kwargs): + super().log(**kwargs) + + @deprecated(reason="This method is deprecated in favor of log_kv") + def log_event(self, event, payload=None): + super().log_event(event, payload=payload) + def set_baggage_item(self, key, value): logger.warning( "Calling unimplemented method set_baggage_item() on class %s", @@ -91,10 +100,6 @@ def get_baggage_item(self, key): ) # TODO: Implement. - # TODO: Verify calls to deprecated methods `log_event()` and `log()` on - # base class work properly (it's probably fine because both methods call - # `log_kv()`). - class ScopeShim(opentracing.Scope): """A `ScopeShim` wraps the OpenTelemetry functionality related to span diff --git a/ext/opentelemetry-ext-opentracing-shim/tests/test_shim.py b/ext/opentelemetry-ext-opentracing-shim/tests/test_shim.py index b6691911ddc..0e7a18b1a9f 100644 --- a/ext/opentelemetry-ext-opentracing-shim/tests/test_shim.py +++ b/ext/opentelemetry-ext-opentracing-shim/tests/test_shim.py @@ -406,6 +406,28 @@ def test_log_kv(self): # biggest possible loss of precision. self.assertAlmostEqual(result, now, places=6) + def test_log(self): + """Test the `log` method on `Span` objects.""" + + with self.shim.start_span("TestSpan") as span: + with self.assertWarns(DeprecationWarning): + span.log(event="foo", payload="bar") + + self.assertEqual(span.unwrap().events[0].attributes["event"], "foo") + self.assertEqual(span.unwrap().events[0].attributes["payload"], "bar") + self.assertIsNotNone(span.unwrap().events[0].timestamp) + + def test_log_event(self): + """Test the `log_event` method on `Span` objects.""" + + with self.shim.start_span("TestSpan") as span: + with self.assertWarns(DeprecationWarning): + span.log_event("foo", "bar") + + self.assertEqual(span.unwrap().events[0].attributes["event"], "foo") + self.assertEqual(span.unwrap().events[0].attributes["payload"], "bar") + self.assertIsNotNone(span.unwrap().events[0].timestamp) + def test_span_context(self): """Test construction of `SpanContextShim` objects.""" From 4832999bc7d43192e764e181cc6d3e8bcdfdb5bb Mon Sep 17 00:00:00 2001 From: Alex Boten Date: Thu, 31 Oct 2019 09:36:54 -0700 Subject: [PATCH 2/2] updating comment to clarify the test Signed-off-by: Alex Boten --- ext/opentelemetry-ext-opentracing-shim/tests/test_shim.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ext/opentelemetry-ext-opentracing-shim/tests/test_shim.py b/ext/opentelemetry-ext-opentracing-shim/tests/test_shim.py index 0e7a18b1a9f..047687c911d 100644 --- a/ext/opentelemetry-ext-opentracing-shim/tests/test_shim.py +++ b/ext/opentelemetry-ext-opentracing-shim/tests/test_shim.py @@ -407,7 +407,7 @@ def test_log_kv(self): self.assertAlmostEqual(result, now, places=6) def test_log(self): - """Test the `log` method on `Span` objects.""" + """Test the deprecated `log` method on `Span` objects.""" with self.shim.start_span("TestSpan") as span: with self.assertWarns(DeprecationWarning): @@ -418,7 +418,7 @@ def test_log(self): self.assertIsNotNone(span.unwrap().events[0].timestamp) def test_log_event(self): - """Test the `log_event` method on `Span` objects.""" + """Test the deprecated `log_event` method on `Span` objects.""" with self.shim.start_span("TestSpan") as span: with self.assertWarns(DeprecationWarning):