Skip to content

Commit d3624a0

Browse files
committed
fix override logic
1 parent ddf975c commit d3624a0

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

tests/utils.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -990,13 +990,13 @@ def __init__(
990990
tracer=None,
991991
_config=None,
992992
):
993-
# type: (...) -> None
994993
super(TestPin, self).__init__(service=service, tags=tags, _config=_config)
995994
if tracer is not None:
996995
self.tracer = tracer
997996

998997
def __setattr__(self, name, value):
999998
if name == "tracer":
999+
# TestPin supports overriding the global tracer but ddtrace.trace.Pin does not.
10001000
super(Pin, self).__setattr__(name, value)
10011001
else:
10021002
super(TestPin, self).__setattr__(name, value)
@@ -1018,7 +1018,10 @@ def override(
10181018
elif isinstance(pin, TestPin):
10191019
pin.clone(service=service, tags=tags, tracer=tracer).onto(obj)
10201020
else:
1021-
pin.clone(service=service, tags=tags).onto(obj)
1021+
# replace ddtrace.trace.Pin with tests.utils.TestPin. This will
1022+
# allow us to override the global tracer in tests.
1023+
pin.remove_from(obj)
1024+
TestPin(service=service, tags=tags, tracer=tracer).onto(obj)
10221025

10231026
def clone(
10241027
self,

0 commit comments

Comments
 (0)