Skip to content

Commit

Permalink
refactor errors
Browse files Browse the repository at this point in the history
  • Loading branch information
wconti27 committed Feb 3, 2025
1 parent cb128ca commit 1379382
Show file tree
Hide file tree
Showing 8 changed files with 83 additions and 74 deletions.
2 changes: 1 addition & 1 deletion tests/contrib/django/test_django.py
Original file line number Diff line number Diff line change
Expand Up @@ -1823,7 +1823,7 @@ def test_inferred_spans_api_gateway_default(client, test_spans):
web_span_name="django.request",
web_span_component="django",
web_span_service_name="django",
web_span_resource="GET ^$",
web_span_resource="GET ^error-500/$",
api_gateway_service_name="local",
api_gateway_resource="GET /",
method="GET",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ def test_inferred_spans_api_gateway_default(client, test_spans):
web_span,
web_span_name="django.request",
web_span_component="django",
web_span_service_name="tests.contrib.djangorestframework",
web_span_service_name="django",
web_span_resource="GET /",
api_gateway_service_name="local",
api_gateway_resource="GET /",
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/falcon/test_suite.py
Original file line number Diff line number Diff line change
Expand Up @@ -344,7 +344,7 @@ def test_inferred_spans_api_gateway_default(self):
api_gateway_resource="GET /",
method="GET",
route="/",
status_code="200",
status_code=test_endpoint["status"],
url="local/",
start=1736973768.0,
is_distributed=test_headers == distributed_headers,
Expand Down
7 changes: 4 additions & 3 deletions tests/contrib/flask/test_request.py
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,7 @@ def error_status_code():
web_span_service_name="flask",
web_span_resource="GET /applicationerror",
api_gateway_service_name="local",
api_gateway_resource="GET /applicationerror",
api_gateway_resource="GET /",
method="GET",
route="/",
status_code="500",
Expand All @@ -352,7 +352,7 @@ def error_status_code():
web_span_service_name="flask",
web_span_resource="GET /returnerrorcode",
api_gateway_service_name="local",
api_gateway_resource="GET /returnerrorcode",
api_gateway_resource="GET /",
method="GET",
route="/",
status_code="599",
Expand Down Expand Up @@ -406,8 +406,9 @@ def index():
web_span_name="flask.request",
web_span_component="flask",
web_span_service_name="flask",
web_span_resource="GET /",
api_gateway_service_name="local",
resource="GET /returnerrorcode",
api_gateway_resource="GET /",
method="GET",
route="/",
status_code="599",
Expand Down
43 changes: 21 additions & 22 deletions tests/contrib/molten/test_molten.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,7 @@
from ddtrace.propagation.http import HTTP_HEADER_PARENT_ID
from ddtrace.propagation.http import HTTP_HEADER_TRACE_ID
from ddtrace.trace import Pin
from tests.tracer.utils_inferred_spans.test_helpers import assert_aws_api_gateway_span_behavior
from tests.tracer.utils_inferred_spans.test_helpers import assert_web_and_inferred_aws_api_gateway_common_metadata
from tests.tracer.utils_inferred_spans.test_helpers import assert_web_and_inferred_aws_api_gateway_span_data
from tests.utils import TracerTestCase
from tests.utils import assert_is_measured
from tests.utils import assert_span_http_status_code
Expand Down Expand Up @@ -481,27 +480,27 @@ def test_inferred_spans_api_gateway_default(self):
if setting_enabled:
aws_gateway_span = traces[0][0]
web_span = traces[0][1]
assert web_span.name == "molten.request"
# Assert common behavior including aws gateway metadata
assert_aws_api_gateway_span_behavior(aws_gateway_span, "local")
assert_web_and_inferred_aws_api_gateway_common_metadata(web_span, aws_gateway_span)
assert (
aws_gateway_span.resource
== test_headers["x-dd-proxy-httpmethod"] + " " + test_headers["x-dd-proxy-path"]

assert_web_and_inferred_aws_api_gateway_span_data(
aws_gateway_span,
web_span,
web_span_name="molten.request",
web_span_component="molten",
web_span_service_name="molten",
web_span_resource=test_endpoint["resource_name"],
api_gateway_service_name="local",
api_gateway_resource="GET /",
method="GET",
route="/",
status_code=test_endpoint["status"],
url="local/",
start=1736973768,
is_distributed=test_headers == distributed_headers,
distributed_trace_id=1,
distributed_parent_id=2,
distributed_sampling_decision=True,
distributed_sampling_priority=USER_KEEP,
)
# Assert test specific behavior for molten
assert web_span.service == "molten"
assert web_span.resource == test_endpoint["resource_name"]
assert web_span.get_tag("http.url") == "http://127.0.0.1:8000" + test_endpoint["endpoint"]
assert web_span.get_tag("http.route") is None
assert web_span.get_tag("span.kind") == "server"
assert web_span.get_tag("component") == "molten"
assert web_span.get_tag("_dd.inferred_span") is None
if test_headers == distributed_headers:
assert web_span.sampled is True
assert web_span.trace_id == 1
assert aws_gateway_span.trace_id == 1
assert aws_gateway_span.get_metric(_SAMPLING_PRIORITY_KEY) == USER_KEEP
else:
web_span = traces[0][0]
assert web_span._parent is None
33 changes: 16 additions & 17 deletions tests/contrib/pyramid/test_pyramid.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@
from ddtrace.constants import _ORIGIN_KEY
from ddtrace.constants import _SAMPLING_PRIORITY_KEY
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from tests.tracer.utils_inferred_spans.test_helpers import assert_aws_api_gateway_span_behavior
from tests.tracer.utils_inferred_spans.test_helpers import assert_web_and_inferred_aws_api_gateway_common_metadata
from tests.tracer.utils_inferred_spans.test_helpers import assert_web_and_inferred_aws_api_gateway_span_data
from tests.utils import TracerTestCase
from tests.utils import flaky
from tests.webclient import Client
Expand Down Expand Up @@ -333,22 +332,22 @@ def test_inferred_spans_api_gateway_default(self):
if setting_enabled:
aws_gateway_span = spans[0]
web_span = spans[1]
assert web_span.name == "pyramid.request"
# Assert common behavior including aws gateway metadata
assert_aws_api_gateway_span_behavior(aws_gateway_span, "local")
assert_web_and_inferred_aws_api_gateway_common_metadata(web_span, aws_gateway_span)
assert (
aws_gateway_span.resource
== test_headers["x-dd-proxy-httpmethod"] + " " + test_headers["x-dd-proxy-path"]

assert_web_and_inferred_aws_api_gateway_span_data(
aws_gateway_span,
web_span,
web_span_name="pyramid.request",
web_span_component="pyramid",
web_span_service_name="pyramid",
web_span_resource=test_endpoint["resource_name"],
api_gateway_service_name="local",
api_gateway_resource="GET /",
method="GET",
route="/",
status_code=test_endpoint["status"],
url="local/",
start=1736973768,
)
# Assert test specific behavior for pyramid
assert web_span.service == "pyramid"
assert web_span.resource == test_endpoint["resource_name"]
assert test_endpoint["endpoint"] in web_span.get_tag("http.url")
assert web_span.get_tag("http.route") == test_endpoint["http.route"]
assert web_span.get_tag("span.kind") == "server"
assert web_span.get_tag("component") == "pyramid"
assert web_span.get_tag("_dd.inferred_span") is None
else:
web_span = spans[0]
assert web_span._parent is None
23 changes: 18 additions & 5 deletions tests/contrib/starlette/test_starlette.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@
from ddtrace.propagation import http as http_propagation
from ddtrace.trace import Pin
from tests.contrib.starlette.app import get_app
from tests.tracer.utils_inferred_spans.test_helpers import assert_aws_api_gateway_span_behavior
from tests.tracer.utils_inferred_spans.test_helpers import assert_web_and_inferred_aws_api_gateway_common_metadata
from tests.tracer.utils_inferred_spans.test_helpers import assert_web_and_inferred_aws_api_gateway_span_data
from tests.utils import DummyTracer
from tests.utils import TracerSpanContainer
from tests.utils import override_global_config
Expand Down Expand Up @@ -615,6 +614,20 @@ def test_inferred_spans_api_gateway(client, test_spans):
client.get("/200", headers=headers)
web_span = test_spans.find_span(name="starlette.request")
aws_gateway_span = test_spans.find_span(name="aws.apigateway")
# Assert common behavior including aws gateway metadata
assert_aws_api_gateway_span_behavior(aws_gateway_span, "local")
assert_web_and_inferred_aws_api_gateway_common_metadata(web_span, aws_gateway_span)


assert_web_and_inferred_aws_api_gateway_span_data(
aws_gateway_span,
web_span,
web_span_name="molten.request",
web_span_component="molten",
web_span_service_name="molten",
web_span_resource="GET /200",
api_gateway_service_name="local",
api_gateway_resource="GET /",
method="GET",
route="/",
status_code="200",
url="local/",
start=1736973768,
)
45 changes: 21 additions & 24 deletions tests/contrib/tornado/test_tornado_web.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@
from ddtrace.ext import http
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from tests.opentracer.utils import init_tracer
from tests.tracer.utils_inferred_spans.test_helpers import assert_aws_api_gateway_span_behavior
from tests.tracer.utils_inferred_spans.test_helpers import assert_web_and_inferred_aws_api_gateway_common_metadata
from tests.tracer.utils_inferred_spans.test_helpers import assert_web_and_inferred_aws_api_gateway_span_data
from tests.utils import assert_is_measured
from tests.utils import assert_span_http_status_code

Expand Down Expand Up @@ -725,29 +724,27 @@ def test_inferred_spans_api_gateway(self):
if setting_enabled:
aws_gateway_span = traces[0][0]
web_span = traces[0][1]
assert web_span.name == "tornado.request"
# Assert common behavior including aws gateway metadata
assert_aws_api_gateway_span_behavior(aws_gateway_span, "local")
assert_web_and_inferred_aws_api_gateway_common_metadata(web_span, aws_gateway_span)
assert 1 == len(traces)
assert (
aws_gateway_span.resource
== test_headers["x-dd-proxy-httpmethod"] + " " + test_headers["x-dd-proxy-path"]

assert_web_and_inferred_aws_api_gateway_span_data(
aws_gateway_span,
web_span,
web_span_name="tornado.request",
web_span_component="tornado",
web_span_service_name="tornado-web",
web_span_resource=test_endpoint["resource_name"],
api_gateway_service_name="local",
api_gateway_resource="GET /",
method="GET",
route="/",
status_code=test_endpoint["status"],
url="local/",
start=1736973768,
is_distributed=test_headers == distributed_headers,
distributed_trace_id=1,
distributed_parent_id=2,
distributed_sampling_decision=True,
distributed_sampling_priority=USER_KEEP,
)
# Assert test specific behavior for tornado
assert web_span.service == "tornado-web"
assert web_span.resource == test_endpoint["resource_name"]
# Ports change per test, ie: http://127.0.0.1:59345/success/, which affects the http.url
assert test_endpoint["endpoint"] in web_span.get_tag("http.url")
assert web_span.get_tag("http.route") == test_endpoint["http.route"]
assert web_span.get_tag("span.kind") == "server"
assert web_span.get_tag("component") == "tornado"
assert web_span.get_tag("_dd.inferred_span") is None
if test_headers == distributed_headers:
assert web_span.sampled is True
assert web_span.trace_id == 1
assert aws_gateway_span.trace_id == 1
assert aws_gateway_span.get_metric(_SAMPLING_PRIORITY_KEY) == USER_KEEP
else:
web_span = traces[0][0]
assert web_span._parent is None

0 comments on commit 1379382

Please sign in to comment.