diff --git a/sentry_sdk/tracing.py b/sentry_sdk/tracing.py index 3c76ef7a00..dbe863bc61 100644 --- a/sentry_sdk/tracing.py +++ b/sentry_sdk/tracing.py @@ -1,7 +1,7 @@ import uuid import random import time -import warnings +import warnings from datetime import datetime, timedelta, timezone from opentelemetry import trace as otel_trace, context diff --git a/tests/test_basics.py b/tests/test_basics.py index d287a9f2f5..3cef565971 100644 --- a/tests/test_basics.py +++ b/tests/test_basics.py @@ -1,13 +1,12 @@ -import datetime import importlib import logging import os import sys import time from collections import Counter +from datetime import datetime, timedelta, timezone import pytest -from sentry_sdk.utils import datetime_from_isoformat from tests.conftest import patch_start_tracing_child import sentry_sdk @@ -329,12 +328,12 @@ def test_breadcrumbs(sentry_init, capture_events): def test_breadcrumb_ordering(sentry_init, capture_events): sentry_init() events = capture_events() - now = datetime.datetime.now(datetime.timezone.utc).replace(microsecond=0) + now = datetime.now(timezone.utc).replace(microsecond=0) timestamps = [ - now - datetime.timedelta(days=10), - now - datetime.timedelta(days=8), - now - datetime.timedelta(days=12), + now - timedelta(days=10), + now - timedelta(days=8), + now - timedelta(days=12), ] for timestamp in timestamps: @@ -350,7 +349,8 @@ def test_breadcrumb_ordering(sentry_init, capture_events): assert len(event["breadcrumbs"]["values"]) == len(timestamps) timestamps_from_event = [ - datetime_from_isoformat(x["timestamp"]) for x in event["breadcrumbs"]["values"] + datetime.fromisoformat(x["timestamp"]) + for x in event["breadcrumbs"]["values"] ] assert timestamps_from_event == sorted(timestamps) @@ -358,24 +358,24 @@ def test_breadcrumb_ordering(sentry_init, capture_events): def test_breadcrumb_ordering_different_types(sentry_init, capture_events): sentry_init() events = capture_events() - now = datetime.datetime.now(datetime.timezone.utc) + now = datetime.now(timezone.utc) timestamps = [ - now - datetime.timedelta(days=10), - now - datetime.timedelta(days=8), - now.replace(microsecond=0) - datetime.timedelta(days=12), - now - datetime.timedelta(days=9), - now - datetime.timedelta(days=13), - now.replace(microsecond=0) - datetime.timedelta(days=11), + now - timedelta(days=10), + now - timedelta(days=8), + now.replace(microsecond=0) - timedelta(days=12), + now - timedelta(days=9), + now - timedelta(days=13), + now.replace(microsecond=0) - timedelta(days=11), ] breadcrumb_timestamps = [ timestamps[0], timestamps[1].isoformat(), - datetime.datetime.strftime(timestamps[2], "%Y-%m-%dT%H:%M:%S") + "Z", - datetime.datetime.strftime(timestamps[3], "%Y-%m-%dT%H:%M:%S.%f") + "+00:00", - datetime.datetime.strftime(timestamps[4], "%Y-%m-%dT%H:%M:%S.%f") + "+0000", - datetime.datetime.strftime(timestamps[5], "%Y-%m-%dT%H:%M:%S.%f") + "-0000", + datetime.strftime(timestamps[2], "%Y-%m-%dT%H:%M:%S") + "Z", + datetime.strftime(timestamps[3], "%Y-%m-%dT%H:%M:%S.%f") + "+00:00", + datetime.strftime(timestamps[4], "%Y-%m-%dT%H:%M:%S.%f") + "+0000", + datetime.strftime(timestamps[5], "%Y-%m-%dT%H:%M:%S.%f") + "-0000", ] for i, timestamp in enumerate(timestamps): @@ -391,7 +391,8 @@ def test_breadcrumb_ordering_different_types(sentry_init, capture_events): assert len(event["breadcrumbs"]["values"]) == len(timestamps) timestamps_from_event = [ - datetime_from_isoformat(x["timestamp"]) for x in event["breadcrumbs"]["values"] + datetime.fromisoformat(x["timestamp"]) + for x in event["breadcrumbs"]["values"] ] assert timestamps_from_event == sorted(timestamps) diff --git a/tests/test_utils.py b/tests/test_utils.py index c46cac7f9f..4df343a357 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -12,7 +12,6 @@ from sentry_sdk.utils import ( Components, Dsn, - datetime_from_isoformat, env_to_bool, format_timestamp, get_current_thread_meta, @@ -62,55 +61,6 @@ def _normalize_distribution_name(name): return re.sub(r"[-_.]+", "-", name).lower() -@pytest.mark.parametrize( - ("input_str", "expected_output"), - ( - ( - "2021-01-01T00:00:00.000000Z", - datetime(2021, 1, 1, tzinfo=timezone.utc), - ), # UTC time - ( - "2021-01-01T00:00:00.000000", - datetime(2021, 1, 1, tzinfo=datetime.now().astimezone().tzinfo), - ), # No TZ -- assume UTC - ( - "2021-01-01T00:00:00Z", - datetime(2021, 1, 1, tzinfo=timezone.utc), - ), # UTC - No milliseconds - ( - "2021-01-01T00:00:00.000000+00:00", - datetime(2021, 1, 1, tzinfo=timezone.utc), - ), - ( - "2021-01-01T00:00:00.000000-00:00", - datetime(2021, 1, 1, tzinfo=timezone.utc), - ), - ( - "2021-01-01T00:00:00.000000+0000", - datetime(2021, 1, 1, tzinfo=timezone.utc), - ), - ( - "2021-01-01T00:00:00.000000-0000", - datetime(2021, 1, 1, tzinfo=timezone.utc), - ), - ( - "2020-12-31T00:00:00.000000+02:00", - datetime(2020, 12, 31, tzinfo=timezone(timedelta(hours=2))), - ), # UTC+2 time - ( - "2020-12-31T00:00:00.000000-0200", - datetime(2020, 12, 31, tzinfo=timezone(timedelta(hours=-2))), - ), # UTC-2 time - ( - "2020-12-31T00:00:00-0200", - datetime(2020, 12, 31, tzinfo=timezone(timedelta(hours=-2))), - ), # UTC-2 time - no milliseconds - ), -) -def test_datetime_from_isoformat(input_str, expected_output): - assert datetime_from_isoformat(input_str) == expected_output, input_str - - @pytest.mark.parametrize( "env_var_value,strict,expected", [