mirror of
https://github.com/open-telemetry/opentelemetry-python-contrib.git
synced 2025-07-29 21:23:55 +08:00
Use Config class methods for common purposes (#220)
This commit is contained in:
@ -28,7 +28,6 @@ from opentelemetry.test.test_base import TestBase
|
||||
from opentelemetry.test.wsgitestutil import WsgiTestBase
|
||||
from opentelemetry.trace import SpanKind
|
||||
from opentelemetry.trace.status import StatusCode
|
||||
from opentelemetry.util import ExcludeList
|
||||
|
||||
# pylint: disable=import-error
|
||||
from .views import (
|
||||
@ -66,9 +65,30 @@ class TestMiddleware(TestBase, WsgiTestBase):
|
||||
setup_test_environment()
|
||||
_django_instrumentor.instrument()
|
||||
Configuration._reset() # pylint: disable=protected-access
|
||||
self.env_patch = patch.dict(
|
||||
"os.environ",
|
||||
{
|
||||
"OTEL_PYTHON_DJANGO_EXCLUDED_URLS": "http://testserver/excluded_arg/123,excluded_noarg",
|
||||
"OTEL_PYTHON_DJANGO_TRACED_REQUEST_ATTRS": "path_info,content_type,non_existing_variable",
|
||||
},
|
||||
)
|
||||
self.env_patch.start()
|
||||
self.exclude_patch = patch(
|
||||
"opentelemetry.instrumentation.django.middleware._DjangoMiddleware._excluded_urls",
|
||||
Configuration()._excluded_urls("django"),
|
||||
)
|
||||
self.traced_patch = patch(
|
||||
"opentelemetry.instrumentation.django.middleware._DjangoMiddleware._traced_request_attrs",
|
||||
Configuration()._traced_request_attrs("django"),
|
||||
)
|
||||
self.exclude_patch.start()
|
||||
self.traced_patch.start()
|
||||
|
||||
def tearDown(self):
|
||||
super().tearDown()
|
||||
self.env_patch.stop()
|
||||
self.exclude_patch.stop()
|
||||
self.traced_patch.stop()
|
||||
teardown_test_environment()
|
||||
_django_instrumentor.uninstrument()
|
||||
|
||||
@ -227,10 +247,6 @@ class TestMiddleware(TestBase, WsgiTestBase):
|
||||
self.assertEqual(view_data.labels, key)
|
||||
self.assertEqual(view_data.aggregator.current.count, 1)
|
||||
|
||||
@patch(
|
||||
"opentelemetry.instrumentation.django.middleware._DjangoMiddleware._excluded_urls",
|
||||
ExcludeList(["http://testserver/excluded_arg/123", "excluded_noarg"]),
|
||||
)
|
||||
def test_exclude_lists(self):
|
||||
client = Client()
|
||||
client.get("/excluded_arg/123")
|
||||
@ -288,28 +304,11 @@ class TestMiddleware(TestBase, WsgiTestBase):
|
||||
self.assertEqual(span.name, "HTTP GET")
|
||||
|
||||
def test_traced_request_attrs(self):
|
||||
with patch(
|
||||
"opentelemetry.instrumentation.django.middleware._DjangoMiddleware._traced_request_attrs",
|
||||
[],
|
||||
):
|
||||
Client().get("/span_name/1234/", CONTENT_TYPE="test/ct")
|
||||
span_list = self.memory_exporter.get_finished_spans()
|
||||
self.assertEqual(len(span_list), 1)
|
||||
Client().get("/span_name/1234/", CONTENT_TYPE="test/ct")
|
||||
span_list = self.memory_exporter.get_finished_spans()
|
||||
self.assertEqual(len(span_list), 1)
|
||||
|
||||
span = span_list[0]
|
||||
self.assertNotIn("path_info", span.attributes)
|
||||
self.assertNotIn("content_type", span.attributes)
|
||||
self.memory_exporter.clear()
|
||||
|
||||
with patch(
|
||||
"opentelemetry.instrumentation.django.middleware._DjangoMiddleware._traced_request_attrs",
|
||||
["path_info", "content_type", "non_existing_variable"],
|
||||
):
|
||||
Client().get("/span_name/1234/", CONTENT_TYPE="test/ct")
|
||||
span_list = self.memory_exporter.get_finished_spans()
|
||||
self.assertEqual(len(span_list), 1)
|
||||
|
||||
span = span_list[0]
|
||||
self.assertEqual(span.attributes["path_info"], "/span_name/1234/")
|
||||
self.assertEqual(span.attributes["content_type"], "test/ct")
|
||||
self.assertNotIn("non_existing_variable", span.attributes)
|
||||
span = span_list[0]
|
||||
self.assertEqual(span.attributes["path_info"], "/span_name/1234/")
|
||||
self.assertEqual(span.attributes["content_type"], "test/ct")
|
||||
self.assertNotIn("non_existing_variable", span.attributes)
|
||||
|
Reference in New Issue
Block a user