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 2c9273cef09..14da9ab16b0 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 @@ -147,8 +147,6 @@ def close(self): self._span_cm.__exit__(None, None, None) else: self._span.unwrap().end() - # TODO: Set active span on OpenTelemetry tracer. - # https://github.com/open-telemetry/opentelemetry-python/issues/161#issuecomment-534136274 class ScopeManagerShim(opentracing.ScopeManager): diff --git a/ext/opentelemetry-ext-opentracing-shim/tests/test_shim.py b/ext/opentelemetry-ext-opentracing-shim/tests/test_shim.py index d98de0195c1..4845bd7fb2b 100644 --- a/ext/opentelemetry-ext-opentracing-shim/tests/test_shim.py +++ b/ext/opentelemetry-ext-opentracing-shim/tests/test_shim.py @@ -207,16 +207,29 @@ def test_activate_finish_on_close(self): def test_explicit_scope_close(self): """Test `close()` method on `ScopeShim`.""" - span = self.shim.start_span("TestSpan") - scope = opentracingshim.ScopeShim(self.shim.scope_manager, span) + with self.shim.start_active_span("ParentSpan") as parent: + # Verify parent span is active. + self.assertEqual( + self.shim.active_span.context, parent.span.context + ) - # Verify span hasn't ended. - self.assertIsNone(span.unwrap().end_time) + child = self.shim.start_active_span("ChildSpan") - scope.close() + # Verify child span is active. + self.assertEqual(self.shim.active_span.context, child.span.context) - # Verify span has ended. - self.assertIsNotNone(span.unwrap().end_time) + # Verify child span hasn't ended. + self.assertIsNone(child.span.unwrap().end_time) + + child.close() + + # Verify child span has ended. + self.assertIsNotNone(child.span.unwrap().end_time) + + # Verify parent span becomes active again. + self.assertEqual( + self.shim.active_span.context, parent.span.context + ) def test_parent_child_implicit(self): """Test parent-child relationship and activation/deactivation of spans