Skip to content

Commit fd62b26

Browse files
author
Emanuele Palazzetti
committed
[tests] the DummyWriter behaves like the original one; DummyWriter uses a fake DummyTransport with a disabled send()
1 parent 28cf045 commit fd62b26

File tree

1 file changed

+19
-10
lines changed

1 file changed

+19
-10
lines changed

tests/test_tracer.py

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@
77
from nose.tools import assert_raises, eq_
88
from unittest.case import SkipTest
99

10-
from ddtrace.tracer import Tracer
1110
from ddtrace import encoding
11+
from ddtrace.tracer import Tracer
12+
from ddtrace.writer import AgentWriter
13+
from ddtrace.transport import ThreadedHTTPTransport
1214

1315

1416
def test_tracer_vars():
@@ -264,37 +266,44 @@ def test_tracer_disabled_mem_leak():
264266
assert not p1, p1
265267

266268

267-
class DummyWriter(object):
269+
class DummyWriter(AgentWriter):
268270
""" DummyWriter is a small fake writer used for tests. not thread-safe. """
269271

270272
def __init__(self):
273+
# original call
274+
super(DummyWriter, self).__init__()
275+
# dummy components
271276
self.spans = []
272277
self.services = {}
278+
self._reporter.transport = DummyTransport(Tracer.DEFAULT_HOSTNAME, Tracer.DEFAULT_PORT)
273279

274280
def write(self, spans, services=None):
275-
# even though it's going nowhere, still encode / decode the spans
276-
# as an extra safety check.
277-
if spans:
278-
encoding.encode_spans(spans)
279-
if services:
280-
encoding.encode_services(services)
281+
# ensures the writer is called as usual; this includes
282+
# the reporter encoding
283+
super(DummyWriter, self).write(spans, services=services)
281284

285+
# simplify for easier retrieval
282286
self.spans += spans
283287
if services:
284288
self.services.update(services)
285289

286-
# dummy methods
287-
288290
def pop(self):
291+
# dummy method
289292
s = self.spans
290293
self.spans = []
291294
return s
292295

293296
def pop_services(self):
297+
# dummy method
294298
s = self.services
295299
self.services = {}
296300
return s
297301

302+
class DummyTransport(ThreadedHTTPTransport):
303+
""" Fake HTTPTransport for tests. """
304+
def send(self, *args, **kwargs):
305+
pass
306+
298307
def get_test_tracer():
299308
tracer = Tracer()
300309
tracer.writer = DummyWriter()

0 commit comments

Comments
 (0)