Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions ddtrace/contrib/django/apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,6 @@ def ready(self):
if settings.TAGS:
tracer.set_tags(settings.TAGS)

# define the service details
tracer.set_service_info(
app='django',
app_type=AppTypes.web,
service=settings.DEFAULT_SERVICE,
)

# configure the tracer instance
# TODO[manu]: we may use configure() but because it creates a new
# AgentWriter, it breaks all tests. The configure() behavior must
Expand All @@ -46,6 +39,13 @@ def ready(self):
tracer.writer.api.hostname = settings.AGENT_HOSTNAME
tracer.writer.api.port = settings.AGENT_PORT

# define the service details
tracer.set_service_info(
app='django',
app_type=AppTypes.web,
service=settings.DEFAULT_SERVICE,
)

if settings.AUTO_INSTRUMENT:
# trace Django internals
insert_exception_middleware()
Expand Down
40 changes: 40 additions & 0 deletions tests/contrib/django/test_tracing_disabled.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# 3rd party
from django.apps import apps
from django.test import TestCase, override_settings

# project
from ddtrace.tracer import Tracer
from ddtrace.contrib.django.conf import settings

# testing
from ...test_tracer import DummyWriter


class DjangoTracingDisabledTest(TestCase):
def setUp(self):
tracer = Tracer()
tracer.writer = DummyWriter()
self.tracer = tracer
# Backup the old conf
self.backupTracer = settings.TRACER
self.backupEnabled = settings.ENABLED
# Disable tracing
settings.ENABLED = False
settings.TRACER = tracer
# Restart the app
app = apps.get_app_config('datadog_django')
app.ready()

def tearDown(self):
# Reset the original settings
settings.ENABLED = self.backupEnabled
settings.TRACER = self.backupTracer

def test_no_service_info_is_written(self):
services = self.tracer.writer.pop_services()
assert len(services) == 0

def test_no_trace_is_written(self):
settings.TRACER.trace("client.testing").finish()
traces = self.tracer.writer.pop_traces()
assert len(traces) == 0