Browse Source

ref: use datetime.UTC instead of datetime.timezone.utc in tests (#67043)

this allows us to better resolve a name conflict with
django.utils.timezone

UTC is new in python 3.11

automated with these scripts:

```python
import argparse
import ast


class V(ast.NodeVisitor):
    def __init__(self, mod: str, name: str, asname: str | None) -> None:
        self.mod = mod
        self.name = name
        self.asname = asname
        self.found = False

    def visit_ImportFrom(self, node: ast.ImportFrom) -> None:
        if (
            node.level == 0
            and node.module == self.mod
            and any(name.name == self.name and name.asname == self.asname for name in node.names)
        ):
            self.found = True
        self.generic_visit(node)


def main() -> int:
    parser = argparse.ArgumentParser()
    parser.add_argument("import_s")
    parser.add_argument("filename")
    args = parser.parse_args()

    o = ast.parse(args.import_s).body[0]
    assert isinstance(o, ast.ImportFrom), ast.dump(o)
    (name,) = o.names

    v = V(o.module, name.name, name.asname)
    with open(args.filename, "rb") as f:
        v.visit(ast.parse(f.read(), filename=args.filename))

    return not v.found


if __name__ == "__main__":
    raise SystemExit(main())
```

```bash
HERE="$(dirname "$0")"
sed -i -r 's/timezone\.utc/UTC/g' "$@"
grep -l '\bUTC\b' "$@" | xargs isort --add-import 'from datetime import UTC'
autoflake -i --remove-all "$@"

for fn in "$@"; do
    if \
        ! "$HERE/has-import" 'from datetime import timezone' "$fn" && \
        "$HERE/has-import" 'from django.utils import timezone as django_timezone' "$fn" \
    ; then
        sed -i -r 's/django_timezone\./timezone./g' "$fn"
        isort --add-import 'from django.utils import timezone' "$fn"
        autoflake -i --remove-all "$fn"
    fi
    if "$HERE/has-import" 'from django.utils import timezone' "$fn"; then
        sed -i -r 's/([^\.])datetime\.now\((tz=)?UTC\)/\1timezone.now()/g' "$fn"
        autoflake -i --remove-all "$fn"
    fi
done
```

<!-- Describe your PR here. -->
anthony sottile 1 year ago
parent
commit
09853ff60e

+ 13 - 13
src/sentry/testutils/cases.py

@@ -9,7 +9,7 @@ import re
 import time
 import time
 from collections.abc import Mapping, Sequence
 from collections.abc import Mapping, Sequence
 from contextlib import contextmanager
 from contextlib import contextmanager
-from datetime import datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
 from io import BytesIO
 from io import BytesIO
 from typing import Any, Literal, Union
 from typing import Any, Literal, Union
 from unittest import mock
 from unittest import mock
@@ -35,7 +35,7 @@ from django.test import TransactionTestCase as DjangoTransactionTestCase
 from django.test import override_settings
 from django.test import override_settings
 from django.test.utils import CaptureQueriesContext
 from django.test.utils import CaptureQueriesContext
 from django.urls import resolve, reverse
 from django.urls import resolve, reverse
-from django.utils import timezone as django_timezone
+from django.utils import timezone
 from django.utils.functional import cached_property
 from django.utils.functional import cached_property
 from requests.utils import CaseInsensitiveDict, get_encoding_from_headers
 from requests.utils import CaseInsensitiveDict, get_encoding_from_headers
 from rest_framework import status
 from rest_framework import status
@@ -1115,7 +1115,7 @@ class AcceptanceTestCase(TransactionTestCase):
     def _setup_today(self):
     def _setup_today(self):
         with mock.patch(
         with mock.patch(
             "django.utils.timezone.now",
             "django.utils.timezone.now",
-            return_value=(datetime(2013, 5, 18, 15, 13, 58, 132928, tzinfo=timezone.utc)),
+            return_value=(datetime(2013, 5, 18, 15, 13, 58, 132928, tzinfo=UTC)),
         ):
         ):
             yield
             yield
 
 
@@ -1485,7 +1485,7 @@ class BaseSpansTestCase(SnubaTestCase):
         if span_id is None:
         if span_id is None:
             span_id = self._random_span_id()
             span_id = self._random_span_id()
         if timestamp is None:
         if timestamp is None:
-            timestamp = datetime.now(tz=timezone.utc)
+            timestamp = timezone.now()
 
 
         payload = {
         payload = {
             "project_id": project_id,
             "project_id": project_id,
@@ -1494,7 +1494,7 @@ class BaseSpansTestCase(SnubaTestCase):
             "duration_ms": int(duration),
             "duration_ms": int(duration),
             "exclusive_time_ms": int(exclusive_time),
             "exclusive_time_ms": int(exclusive_time),
             "is_segment": True,
             "is_segment": True,
-            "received": datetime.now(tz=timezone.utc).timestamp(),
+            "received": timezone.now().timestamp(),
             "start_timestamp_ms": int(timestamp.timestamp() * 1000),
             "start_timestamp_ms": int(timestamp.timestamp() * 1000),
             "sentry_tags": {"transaction": transaction or "/hello"},
             "sentry_tags": {"transaction": transaction or "/hello"},
             "retention_days": 90,
             "retention_days": 90,
@@ -1534,7 +1534,7 @@ class BaseSpansTestCase(SnubaTestCase):
         if span_id is None:
         if span_id is None:
             span_id = self._random_span_id()
             span_id = self._random_span_id()
         if timestamp is None:
         if timestamp is None:
-            timestamp = datetime.now(tz=timezone.utc)
+            timestamp = timezone.now()
 
 
         payload = {
         payload = {
             "project_id": project_id,
             "project_id": project_id,
@@ -1543,7 +1543,7 @@ class BaseSpansTestCase(SnubaTestCase):
             "duration_ms": int(duration),
             "duration_ms": int(duration),
             "exclusive_time_ms": exclusive_time,
             "exclusive_time_ms": exclusive_time,
             "is_segment": False,
             "is_segment": False,
-            "received": datetime.now(tz=timezone.utc).timestamp(),
+            "received": timezone.now().timestamp(),
             "start_timestamp_ms": int(timestamp.timestamp() * 1000),
             "start_timestamp_ms": int(timestamp.timestamp() * 1000),
             "sentry_tags": {
             "sentry_tags": {
                 "transaction": transaction or "/hello",
                 "transaction": transaction or "/hello",
@@ -1782,7 +1782,7 @@ class BaseMetricsLayerTestCase(BaseMetricsTestCase):
     # This time has been specifically chosen to be 10:00:00 so that all tests will automatically have the data inserted
     # This time has been specifically chosen to be 10:00:00 so that all tests will automatically have the data inserted
     # and queried with automatically inferred timestamps (e.g., usage of - 1 second, get_date_range()...) without
     # and queried with automatically inferred timestamps (e.g., usage of - 1 second, get_date_range()...) without
     # incurring into problems.
     # incurring into problems.
-    MOCK_DATETIME = (django_timezone.now() - timedelta(days=1)).replace(
+    MOCK_DATETIME = (timezone.now() - timedelta(days=1)).replace(
         hour=10, minute=0, second=0, microsecond=0
         hour=10, minute=0, second=0, microsecond=0
     )
     )
 
 
@@ -2060,7 +2060,7 @@ class MetricsEnhancedPerformanceTestCase(BaseMetricsLayerTestCase, TestCase):
         "s": EntityKey.MetricsSets.value,
         "s": EntityKey.MetricsSets.value,
     }
     }
     METRIC_STRINGS = []
     METRIC_STRINGS = []
-    DEFAULT_METRIC_TIMESTAMP = datetime(2015, 1, 1, 10, 15, 0, tzinfo=timezone.utc)
+    DEFAULT_METRIC_TIMESTAMP = datetime(2015, 1, 1, 10, 15, 0, tzinfo=UTC)
 
 
     def setUp(self):
     def setUp(self):
         super().setUp()
         super().setUp()
@@ -2262,7 +2262,7 @@ class BaseIncidentsTest(SnubaTestCase):
 
 
     @cached_property
     @cached_property
     def now(self):
     def now(self):
-        return django_timezone.now().replace(minute=0, second=0, microsecond=0)
+        return timezone.now().replace(minute=0, second=0, microsecond=0)
 
 
 
 
 @pytest.mark.snuba
 @pytest.mark.snuba
@@ -2334,7 +2334,7 @@ class ProfilesSnubaTestCase(
             "platform": transaction["platform"],
             "platform": transaction["platform"],
             "profile_id": profile_id,
             "profile_id": profile_id,
             "project_id": project.id,
             "project_id": project.id,
-            "received": int(datetime.now(tz=timezone.utc).timestamp()),
+            "received": int(timezone.now().timestamp()),
             "retention_days": 90,
             "retention_days": 90,
             "timestamp": int(timestamp),
             "timestamp": int(timestamp),
             "transaction_name": transaction["transaction"],
             "transaction_name": transaction["transaction"],
@@ -2396,7 +2396,7 @@ class ReplaysSnubaTestCase(TestCase):
 # AcceptanceTestCase and TestCase are mutually exclusive base classses
 # AcceptanceTestCase and TestCase are mutually exclusive base classses
 class ReplaysAcceptanceTestCase(AcceptanceTestCase, SnubaTestCase):
 class ReplaysAcceptanceTestCase(AcceptanceTestCase, SnubaTestCase):
     def setUp(self):
     def setUp(self):
-        self.now = datetime.now(timezone.utc)
+        self.now = datetime.now(UTC)
         super().setUp()
         super().setUp()
         self.drop_replays()
         self.drop_replays()
         patcher = mock.patch("django.utils.timezone.now", return_value=self.now)
         patcher = mock.patch("django.utils.timezone.now", return_value=self.now)
@@ -2785,7 +2785,7 @@ class ActivityTestCase(TestCase):
         release = Release.objects.create(
         release = Release.objects.create(
             version=name * 40,
             version=name * 40,
             organization_id=self.project.organization_id,
             organization_id=self.project.organization_id,
-            date_released=django_timezone.now(),
+            date_released=timezone.now(),
         )
         )
         release.add_project(self.project)
         release.add_project(self.project)
         release.add_project(self.project2)
         release.add_project(self.project2)

+ 3 - 3
tests/acceptance/test_incidents.py

@@ -1,4 +1,4 @@
-from django.utils import timezone as django_timezone
+from django.utils import timezone
 
 
 from sentry.incidents.logic import update_incident_status
 from sentry.incidents.logic import update_incident_status
 from sentry.incidents.models.incident import IncidentStatus, IncidentStatusMethod
 from sentry.incidents.models.incident import IncidentStatus, IncidentStatusMethod
@@ -28,8 +28,8 @@ class OrganizationIncidentsListTest(AcceptanceTestCase, SnubaTestCase):
         incident = self.create_incident(
         incident = self.create_incident(
             self.organization,
             self.organization,
             title="Incident #1",
             title="Incident #1",
-            date_started=django_timezone.now(),
-            date_detected=django_timezone.now(),
+            date_started=timezone.now(),
+            date_detected=timezone.now(),
             projects=[self.project],
             projects=[self.project],
             alert_rule=alert_rule,
             alert_rule=alert_rule,
         )
         )

+ 4 - 4
tests/acceptance/test_organization_releases.py

@@ -1,8 +1,8 @@
-from datetime import datetime, timezone
+from datetime import UTC, datetime
 from unittest.mock import patch
 from unittest.mock import patch
 
 
 import pytest
 import pytest
-from django.utils import timezone as django_timezone
+from django.utils import timezone
 
 
 from sentry.testutils.cases import AcceptanceTestCase
 from sentry.testutils.cases import AcceptanceTestCase
 from sentry.testutils.silo import no_silo_test
 from sentry.testutils.silo import no_silo_test
@@ -12,7 +12,7 @@ pytestmark = pytest.mark.sentry_metrics
 
 
 @no_silo_test
 @no_silo_test
 class OrganizationReleasesTest(AcceptanceTestCase):
 class OrganizationReleasesTest(AcceptanceTestCase):
-    release_date = datetime(2020, 5, 18, 15, 13, 58, 132928, tzinfo=timezone.utc)
+    release_date = datetime(2020, 5, 18, 15, 13, 58, 132928, tzinfo=UTC)
 
 
     def setUp(self):
     def setUp(self):
         super().setUp()
         super().setUp()
@@ -29,7 +29,7 @@ class OrganizationReleasesTest(AcceptanceTestCase):
         self.create_project(organization=self.org, teams=[self.team], name="Bengal 3")
         self.create_project(organization=self.org, teams=[self.team], name="Bengal 3")
         self.login_as(self.user)
         self.login_as(self.user)
         self.path = f"/organizations/{self.org.slug}/releases/"
         self.path = f"/organizations/{self.org.slug}/releases/"
-        self.project.update(first_event=django_timezone.now())
+        self.project.update(first_event=timezone.now())
 
 
     @patch("sentry.api.serializers.models.organization.get_organization_volume", return_value=None)
     @patch("sentry.api.serializers.models.organization.get_organization_volume", return_value=None)
     def test_list(self, _):
     def test_list(self, _):

+ 10 - 10
tests/sentry/api/endpoints/test_organization_details.py

@@ -2,7 +2,7 @@ from __future__ import annotations
 
 
 import re
 import re
 from base64 import b64encode
 from base64 import b64encode
-from datetime import datetime, timedelta, timezone
+from datetime import timedelta
 from typing import Any
 from typing import Any
 from unittest.mock import patch
 from unittest.mock import patch
 
 
@@ -11,7 +11,7 @@ import responses
 from dateutil.parser import parse as parse_date
 from dateutil.parser import parse as parse_date
 from django.core import mail
 from django.core import mail
 from django.db import router
 from django.db import router
-from django.utils import timezone as django_timezone
+from django.utils import timezone
 from rest_framework import status
 from rest_framework import status
 
 
 from sentry import audit_log
 from sentry import audit_log
@@ -242,9 +242,9 @@ class OrganizationDetailsTest(OrganizationDetailsTestBase):
         data = {"trustedRelays": trusted_relays}
         data = {"trustedRelays": trusted_relays}
 
 
         with self.feature("organizations:relay"):
         with self.feature("organizations:relay"):
-            start_time = datetime.now(timezone.utc)
+            start_time = timezone.now()
             self.get_success_response(self.organization.slug, method="put", **data)
             self.get_success_response(self.organization.slug, method="put", **data)
-            end_time = datetime.now(timezone.utc)
+            end_time = timezone.now()
             response = self.get_success_response(self.organization.slug)
             response = self.get_success_response(self.organization.slug)
 
 
         response_data = response.data.get("trustedRelays")
         response_data = response.data.get("trustedRelays")
@@ -579,9 +579,9 @@ class OrganizationUpdateTest(OrganizationDetailsTestBase):
         data = {"trustedRelays": trusted_relays}
         data = {"trustedRelays": trusted_relays}
 
 
         with self.feature("organizations:relay"), outbox_runner():
         with self.feature("organizations:relay"), outbox_runner():
-            start_time = datetime.now(timezone.utc)
+            start_time = timezone.now()
             response = self.get_success_response(self.organization.slug, **data)
             response = self.get_success_response(self.organization.slug, **data)
-            end_time = datetime.now(timezone.utc)
+            end_time = timezone.now()
             response_data = response.data.get("trustedRelays")
             response_data = response.data.get("trustedRelays")
 
 
         actual = get_trusted_relay_value(self.organization)
         actual = get_trusted_relay_value(self.organization)
@@ -663,11 +663,11 @@ class OrganizationUpdateTest(OrganizationDetailsTestBase):
         changed_settings = {"trustedRelays": modified_trusted_relays}
         changed_settings = {"trustedRelays": modified_trusted_relays}
 
 
         with self.feature("organizations:relay"), outbox_runner():
         with self.feature("organizations:relay"), outbox_runner():
-            start_time = datetime.now(timezone.utc)
+            start_time = timezone.now()
             self.get_success_response(self.organization.slug, **initial_settings)
             self.get_success_response(self.organization.slug, **initial_settings)
-            after_initial = datetime.now(timezone.utc)
+            after_initial = timezone.now()
             self.get_success_response(self.organization.slug, **changed_settings)
             self.get_success_response(self.organization.slug, **changed_settings)
-            after_final = datetime.now(timezone.utc)
+            after_final = timezone.now()
 
 
         actual = get_trusted_relay_value(self.organization)
         actual = get_trusted_relay_value(self.organization)
         assert len(actual) == len(modified_trusted_relays)
         assert len(actual) == len(modified_trusted_relays)
@@ -911,7 +911,7 @@ class OrganizationDeleteTest(OrganizationDetailsTestBase):
 
 
         schedule = RegionScheduledDeletion.objects.get(object_id=org.id, model_name="Organization")
         schedule = RegionScheduledDeletion.objects.get(object_id=org.id, model_name="Organization")
         # Delay is 24 hours but to avoid wobbling microseconds we compare with 23 hours.
         # Delay is 24 hours but to avoid wobbling microseconds we compare with 23 hours.
-        assert schedule.date_scheduled >= django_timezone.now() + timedelta(hours=23)
+        assert schedule.date_scheduled >= timezone.now() + timedelta(hours=23)
 
 
         # Make sure we've emailed all owners
         # Make sure we've emailed all owners
         assert len(mail.outbox) == len(owners)
         assert len(mail.outbox) == len(owners)

+ 15 - 15
tests/sentry/api/serializers/test_project.py

@@ -1,11 +1,11 @@
 import datetime
 import datetime
-from datetime import timedelta, timezone
+from datetime import UTC, timedelta
 from functools import cached_property
 from functools import cached_property
 from unittest import mock
 from unittest import mock
 
 
 from django.conf import settings
 from django.conf import settings
 from django.db.models import F
 from django.db.models import F
-from django.utils import timezone as django_timezone
+from django.utils import timezone
 
 
 from sentry import features
 from sentry import features
 from sentry.api.serializers import serialize
 from sentry.api.serializers import serialize
@@ -289,7 +289,7 @@ class ProjectWithTeamSerializerTest(TestCase):
 class ProjectSummarySerializerTest(SnubaTestCase, TestCase):
 class ProjectSummarySerializerTest(SnubaTestCase, TestCase):
     def setUp(self):
     def setUp(self):
         super().setUp()
         super().setUp()
-        self.date = datetime.datetime(2018, 1, 12, 3, 8, 25, tzinfo=timezone.utc)
+        self.date = datetime.datetime(2018, 1, 12, 3, 8, 25, tzinfo=UTC)
         self.user = self.create_user(username="foo")
         self.user = self.create_user(username="foo")
         self.organization = self.create_organization(owner=self.user)
         self.organization = self.create_organization(owner=self.user)
         team = self.create_team(organization=self.organization)
         team = self.create_team(organization=self.organization)
@@ -343,7 +343,7 @@ class ProjectSummarySerializerTest(SnubaTestCase, TestCase):
         assert result["firstEvent"] is None
         assert result["firstEvent"] is None
         assert result["firstTransactionEvent"] is False
         assert result["firstTransactionEvent"] is False
 
 
-        self.project.first_event = django_timezone.now()
+        self.project.first_event = timezone.now()
         self.project.update(flags=F("flags").bitor(Project.flags.has_transactions))
         self.project.update(flags=F("flags").bitor(Project.flags.has_transactions))
 
 
         result = serialize(self.project, self.user, ProjectSummarySerializer())
         result = serialize(self.project, self.user, ProjectSummarySerializer())
@@ -376,7 +376,7 @@ class ProjectSummarySerializerTest(SnubaTestCase, TestCase):
         result = serialize(self.project, self.user, ProjectSummarySerializer())
         result = serialize(self.project, self.user, ProjectSummarySerializer())
         assert result["hasSessions"] is False
         assert result["hasSessions"] is False
 
 
-        self.project.first_event = django_timezone.now()
+        self.project.first_event = timezone.now()
         self.project.update(flags=F("flags").bitor(Project.flags.has_sessions))
         self.project.update(flags=F("flags").bitor(Project.flags.has_sessions))
 
 
         result = serialize(self.project, self.user, ProjectSummarySerializer())
         result = serialize(self.project, self.user, ProjectSummarySerializer())
@@ -386,7 +386,7 @@ class ProjectSummarySerializerTest(SnubaTestCase, TestCase):
         result = serialize(self.project, self.user, ProjectSummarySerializer())
         result = serialize(self.project, self.user, ProjectSummarySerializer())
         assert result["hasProfiles"] is False
         assert result["hasProfiles"] is False
 
 
-        self.project.first_event = django_timezone.now()
+        self.project.first_event = timezone.now()
         self.project.update(flags=F("flags").bitor(Project.flags.has_profiles))
         self.project.update(flags=F("flags").bitor(Project.flags.has_profiles))
 
 
         result = serialize(self.project, self.user, ProjectSummarySerializer())
         result = serialize(self.project, self.user, ProjectSummarySerializer())
@@ -396,7 +396,7 @@ class ProjectSummarySerializerTest(SnubaTestCase, TestCase):
         result = serialize(self.project, self.user, ProjectSummarySerializer())
         result = serialize(self.project, self.user, ProjectSummarySerializer())
         assert result["hasReplays"] is False
         assert result["hasReplays"] is False
 
 
-        self.project.first_event = django_timezone.now()
+        self.project.first_event = timezone.now()
         self.project.update(flags=F("flags").bitor(Project.flags.has_replays))
         self.project.update(flags=F("flags").bitor(Project.flags.has_replays))
 
 
         result = serialize(self.project, self.user, ProjectSummarySerializer())
         result = serialize(self.project, self.user, ProjectSummarySerializer())
@@ -406,7 +406,7 @@ class ProjectSummarySerializerTest(SnubaTestCase, TestCase):
         result = serialize(self.project, self.user, ProjectSummarySerializer())
         result = serialize(self.project, self.user, ProjectSummarySerializer())
         assert result["hasFeedbacks"] is False
         assert result["hasFeedbacks"] is False
 
 
-        self.project.first_event = django_timezone.now()
+        self.project.first_event = timezone.now()
         self.project.update(flags=F("flags").bitor(Project.flags.has_feedbacks))
         self.project.update(flags=F("flags").bitor(Project.flags.has_feedbacks))
 
 
         result = serialize(self.project, self.user, ProjectSummarySerializer())
         result = serialize(self.project, self.user, ProjectSummarySerializer())
@@ -416,7 +416,7 @@ class ProjectSummarySerializerTest(SnubaTestCase, TestCase):
         result = serialize(self.project, self.user, ProjectSummarySerializer())
         result = serialize(self.project, self.user, ProjectSummarySerializer())
         assert result["hasNewFeedbacks"] is False
         assert result["hasNewFeedbacks"] is False
 
 
-        self.project.first_event = django_timezone.now()
+        self.project.first_event = timezone.now()
         self.project.update(flags=F("flags").bitor(Project.flags.has_new_feedbacks))
         self.project.update(flags=F("flags").bitor(Project.flags.has_new_feedbacks))
 
 
         result = serialize(self.project, self.user, ProjectSummarySerializer())
         result = serialize(self.project, self.user, ProjectSummarySerializer())
@@ -426,7 +426,7 @@ class ProjectSummarySerializerTest(SnubaTestCase, TestCase):
         result = serialize(self.project, self.user, ProjectSummarySerializer())
         result = serialize(self.project, self.user, ProjectSummarySerializer())
         assert result["hasCustomMetrics"] is False
         assert result["hasCustomMetrics"] is False
 
 
-        self.project.first_event = django_timezone.now()
+        self.project.first_event = timezone.now()
         self.project.update(flags=F("flags").bitor(Project.flags.has_custom_metrics))
         self.project.update(flags=F("flags").bitor(Project.flags.has_custom_metrics))
 
 
         result = serialize(self.project, self.user, ProjectSummarySerializer())
         result = serialize(self.project, self.user, ProjectSummarySerializer())
@@ -436,7 +436,7 @@ class ProjectSummarySerializerTest(SnubaTestCase, TestCase):
         result = serialize(self.project, self.user, ProjectSummarySerializer())
         result = serialize(self.project, self.user, ProjectSummarySerializer())
         assert result["hasMonitors"] is False
         assert result["hasMonitors"] is False
 
 
-        self.project.first_event = django_timezone.now()
+        self.project.first_event = timezone.now()
         self.project.update(flags=F("flags").bitor(Project.flags.has_cron_monitors))
         self.project.update(flags=F("flags").bitor(Project.flags.has_cron_monitors))
 
 
         result = serialize(self.project, self.user, ProjectSummarySerializer())
         result = serialize(self.project, self.user, ProjectSummarySerializer())
@@ -446,7 +446,7 @@ class ProjectSummarySerializerTest(SnubaTestCase, TestCase):
         result = serialize(self.project, self.user, ProjectSummarySerializer())
         result = serialize(self.project, self.user, ProjectSummarySerializer())
         assert result["hasMinifiedStackTrace"] is False
         assert result["hasMinifiedStackTrace"] is False
 
 
-        self.project.first_event = django_timezone.now()
+        self.project.first_event = timezone.now()
         self.project.update(flags=F("flags").bitor(Project.flags.has_minified_stack_trace))
         self.project.update(flags=F("flags").bitor(Project.flags.has_minified_stack_trace))
 
 
         result = serialize(self.project, self.user, ProjectSummarySerializer())
         result = serialize(self.project, self.user, ProjectSummarySerializer())
@@ -696,7 +696,7 @@ class ProjectWithOrganizationSerializerTest(TestCase):
 class DetailedProjectSerializerTest(TestCase):
 class DetailedProjectSerializerTest(TestCase):
     def setUp(self):
     def setUp(self):
         super().setUp()
         super().setUp()
-        self.date = datetime.datetime(2018, 1, 12, 3, 8, 25, tzinfo=timezone.utc)
+        self.date = datetime.datetime(2018, 1, 12, 3, 8, 25, tzinfo=UTC)
         self.user = self.create_user(username="foo")
         self.user = self.create_user(username="foo")
         self.organization = self.create_organization(owner=self.user)
         self.organization = self.create_organization(owner=self.user)
         team = self.create_team(organization=self.organization)
         team = self.create_team(organization=self.organization)
@@ -761,7 +761,7 @@ class BulkFetchProjectLatestReleases(TestCase):
 
 
     def test_single_release(self):
     def test_single_release(self):
         release = self.create_release(
         release = self.create_release(
-            self.project, date_added=django_timezone.now() - timedelta(minutes=5)
+            self.project, date_added=timezone.now() - timedelta(minutes=5)
         )
         )
         assert bulk_fetch_project_latest_releases([self.project]) == [release]
         assert bulk_fetch_project_latest_releases([self.project]) == [release]
         newer_release = self.create_release(self.project)
         newer_release = self.create_release(self.project)
@@ -778,7 +778,7 @@ class BulkFetchProjectLatestReleases(TestCase):
 
 
     def test_multi_releases(self):
     def test_multi_releases(self):
         release = self.create_release(
         release = self.create_release(
-            self.project, date_added=django_timezone.now() - timedelta(minutes=5)
+            self.project, date_added=timezone.now() - timedelta(minutes=5)
         )
         )
         other_project_release = self.create_release(self.other_project)
         other_project_release = self.create_release(self.other_project)
         assert set(bulk_fetch_project_latest_releases([self.project, self.other_project])) == {
         assert set(bulk_fetch_project_latest_releases([self.project, self.other_project])) == {

+ 4 - 4
tests/sentry/auth/test_staff.py

@@ -1,10 +1,10 @@
 from contextlib import contextmanager
 from contextlib import contextmanager
-from datetime import datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
 from unittest.mock import Mock, patch
 from unittest.mock import Mock, patch
 
 
 from django.contrib.auth.models import AnonymousUser
 from django.contrib.auth.models import AnonymousUser
 from django.core import signing
 from django.core import signing
-from django.utils import timezone as django_timezone
+from django.utils import timezone
 
 
 from sentry.auth import staff
 from sentry.auth import staff
 from sentry.auth.staff import (
 from sentry.auth.staff import (
@@ -30,7 +30,7 @@ from sentry.utils.auth import mark_sso_complete
 
 
 UNSET = object()
 UNSET = object()
 
 
-BASETIME = datetime(2022, 3, 21, 0, 0, tzinfo=timezone.utc)
+BASETIME = datetime(2022, 3, 21, 0, 0, tzinfo=UTC)
 
 
 EXPIRE_TIME = timedelta(hours=4, minutes=1)
 EXPIRE_TIME = timedelta(hours=4, minutes=1)
 
 
@@ -59,7 +59,7 @@ def override_org_id(new_org_id: int):
 class StaffTestCase(TestCase):
 class StaffTestCase(TestCase):
     def setUp(self):
     def setUp(self):
         super().setUp()
         super().setUp()
-        self.current_datetime = django_timezone.now()
+        self.current_datetime = timezone.now()
         self.default_token = "abcdefghijklmnog"
         self.default_token = "abcdefghijklmnog"
         self.staff_user = self.create_user(is_staff=True)
         self.staff_user = self.create_user(is_staff=True)
 
 

+ 4 - 4
tests/sentry/auth/test_superuser.py

@@ -1,4 +1,4 @@
-from datetime import datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
 from unittest import mock
 from unittest import mock
 from unittest.mock import Mock, patch
 from unittest.mock import Mock, patch
 
 
@@ -6,7 +6,7 @@ import pytest
 from django.contrib.auth.models import AnonymousUser
 from django.contrib.auth.models import AnonymousUser
 from django.core import signing
 from django.core import signing
 from django.test import override_settings
 from django.test import override_settings
-from django.utils import timezone as django_timezone
+from django.utils import timezone
 
 
 from sentry.auth.superuser import (
 from sentry.auth.superuser import (
     COOKIE_DOMAIN,
     COOKIE_DOMAIN,
@@ -41,7 +41,7 @@ from sentry.utils.auth import mark_sso_complete
 
 
 UNSET = object()
 UNSET = object()
 
 
-BASETIME = datetime(2022, 3, 21, 0, 0, tzinfo=timezone.utc)
+BASETIME = datetime(2022, 3, 21, 0, 0, tzinfo=UTC)
 
 
 EXPIRE_TIME = timedelta(hours=4, minutes=1)
 EXPIRE_TIME = timedelta(hours=4, minutes=1)
 
 
@@ -55,7 +55,7 @@ IDLE_EXPIRE_TIME = OUTSIDE_PRIVILEGE_ACCESS_EXPIRE_TIME = timedelta(hours=2)
 class SuperuserTestCase(TestCase):
 class SuperuserTestCase(TestCase):
     def setUp(self):
     def setUp(self):
         super().setUp()
         super().setUp()
-        self.current_datetime = django_timezone.now()
+        self.current_datetime = timezone.now()
         self.default_token = "abcdefghjiklmnog"
         self.default_token = "abcdefghjiklmnog"
         self.superuser = self.create_user(is_superuser=True)
         self.superuser = self.create_user(is_superuser=True)
 
 

+ 4 - 4
tests/sentry/dynamic_sampling/tasks/test_tasks.py

@@ -1,9 +1,9 @@
 from collections.abc import Callable
 from collections.abc import Callable
-from datetime import datetime, timedelta, timezone
+from datetime import timedelta
 from unittest.mock import patch
 from unittest.mock import patch
 
 
 import pytest
 import pytest
-from django.utils import timezone as django_timezone
+from django.utils import timezone
 
 
 from sentry.dynamic_sampling import RuleType, generate_rules, get_redis_client_for_ds
 from sentry.dynamic_sampling import RuleType, generate_rules, get_redis_client_for_ds
 from sentry.dynamic_sampling.rules.base import NEW_MODEL_THRESHOLD_IN_MINUTES
 from sentry.dynamic_sampling.rules.base import NEW_MODEL_THRESHOLD_IN_MINUTES
@@ -32,7 +32,7 @@ from sentry.testutils.cases import BaseMetricsLayerTestCase, SnubaTestCase, Test
 from sentry.testutils.helpers import with_feature
 from sentry.testutils.helpers import with_feature
 from sentry.testutils.helpers.datetime import freeze_time
 from sentry.testutils.helpers.datetime import freeze_time
 
 
-MOCK_DATETIME = (django_timezone.now() - timedelta(days=1)).replace(
+MOCK_DATETIME = (timezone.now() - timedelta(days=1)).replace(
     hour=0, minute=0, second=0, microsecond=0
     hour=0, minute=0, second=0, microsecond=0
 )
 )
 
 
@@ -40,7 +40,7 @@ MOCK_DATETIME = (django_timezone.now() - timedelta(days=1)).replace(
 class TasksTestCase(BaseMetricsLayerTestCase, TestCase, SnubaTestCase):
 class TasksTestCase(BaseMetricsLayerTestCase, TestCase, SnubaTestCase):
     @staticmethod
     @staticmethod
     def old_date():
     def old_date():
-        return datetime.now(tz=timezone.utc) - timedelta(minutes=NEW_MODEL_THRESHOLD_IN_MINUTES + 1)
+        return timezone.now() - timedelta(minutes=NEW_MODEL_THRESHOLD_IN_MINUTES + 1)
 
 
     @staticmethod
     @staticmethod
     def disable_all_biases(project):
     def disable_all_biases(project):

+ 30 - 44
tests/sentry/event_manager/test_event_manager.py

@@ -16,7 +16,7 @@ from arroyo.types import Partition, Topic
 from django.conf import settings
 from django.conf import settings
 from django.core.cache import cache
 from django.core.cache import cache
 from django.test.utils import override_settings
 from django.test.utils import override_settings
-from django.utils import timezone as django_timezone
+from django.utils import timezone
 from rest_framework.status import HTTP_404_NOT_FOUND
 from rest_framework.status import HTTP_404_NOT_FOUND
 
 
 from fixtures.github import (
 from fixtures.github import (
@@ -287,7 +287,7 @@ class EventManagerTest(TestCase, SnubaTestCase, EventManagerTestMixin, Performan
         old_release = Release.objects.create(
         old_release = Release.objects.create(
             version="a",
             version="a",
             organization_id=self.project.organization_id,
             organization_id=self.project.organization_id,
-            date_added=django_timezone.now() - timedelta(minutes=30),
+            date_added=timezone.now() - timedelta(minutes=30),
         )
         )
         old_release.add_project(self.project)
         old_release.add_project(self.project)
 
 
@@ -363,7 +363,7 @@ class EventManagerTest(TestCase, SnubaTestCase, EventManagerTestMixin, Performan
 
 
         # Create a release and a group associated with it
         # Create a release and a group associated with it
         old_release = self.create_release(
         old_release = self.create_release(
-            version="foobar", date_added=django_timezone.now() - timedelta(minutes=30)
+            version="foobar", date_added=timezone.now() - timedelta(minutes=30)
         )
         )
         manager = EventManager(
         manager = EventManager(
             make_event(
             make_event(
@@ -423,7 +423,7 @@ class EventManagerTest(TestCase, SnubaTestCase, EventManagerTestMixin, Performan
 
 
         # Create a release and a group associated with it
         # Create a release and a group associated with it
         old_release = self.create_release(
         old_release = self.create_release(
-            version="a", date_added=django_timezone.now() - timedelta(minutes=30)
+            version="a", date_added=timezone.now() - timedelta(minutes=30)
         )
         )
         manager = EventManager(
         manager = EventManager(
             make_event(
             make_event(
@@ -483,7 +483,7 @@ class EventManagerTest(TestCase, SnubaTestCase, EventManagerTestMixin, Performan
 
 
         # Create a release and a group associated with it
         # Create a release and a group associated with it
         old_release = self.create_release(
         old_release = self.create_release(
-            version="foo@1.0.0", date_added=django_timezone.now() - timedelta(minutes=30)
+            version="foo@1.0.0", date_added=timezone.now() - timedelta(minutes=30)
         )
         )
         manager = EventManager(
         manager = EventManager(
             make_event(
             make_event(
@@ -726,7 +726,7 @@ class EventManagerTest(TestCase, SnubaTestCase, EventManagerTestMixin, Performan
         old_release = Release.objects.create(
         old_release = Release.objects.create(
             version="a",
             version="a",
             organization_id=self.project.organization_id,
             organization_id=self.project.organization_id,
-            date_added=django_timezone.now() - timedelta(minutes=30),
+            date_added=timezone.now() - timedelta(minutes=30),
         )
         )
         old_release.add_project(self.project)
         old_release.add_project(self.project)
 
 
@@ -2988,17 +2988,15 @@ class DSLatestReleaseBoostTest(TestCase):
 
 
     @freeze_time("2022-11-03 10:00:00")
     @freeze_time("2022-11-03 10:00:00")
     def test_boost_release_with_non_observed_release(self):
     def test_boost_release_with_non_observed_release(self):
-        ts = datetime.now(UTC).timestamp()
+        ts = timezone.now().timestamp()
 
 
         project = self.create_project(platform="python")
         project = self.create_project(platform="python")
-        release_1 = Release.get_or_create(
-            project=project, version="1.0", date_added=datetime.now(UTC)
-        )
+        release_1 = Release.get_or_create(project=project, version="1.0", date_added=timezone.now())
         release_2 = Release.get_or_create(
         release_2 = Release.get_or_create(
-            project=project, version="2.0", date_added=datetime.now(UTC) + timedelta(hours=1)
+            project=project, version="2.0", date_added=timezone.now() + timedelta(hours=1)
         )
         )
         release_3 = Release.get_or_create(
         release_3 = Release.get_or_create(
-            project=project, version="3.0", date_added=datetime.now(UTC) + timedelta(hours=2)
+            project=project, version="3.0", date_added=timezone.now() + timedelta(hours=2)
         )
         )
 
 
         for release, environment in (
         for release, environment in (
@@ -3051,17 +3049,15 @@ class DSLatestReleaseBoostTest(TestCase):
 
 
     @freeze_time("2022-11-03 10:00:00")
     @freeze_time("2022-11-03 10:00:00")
     def test_boost_release_boosts_only_latest_release(self):
     def test_boost_release_boosts_only_latest_release(self):
-        ts = datetime.now(UTC).timestamp()
+        ts = timezone.now().timestamp()
 
 
         project = self.create_project(platform="python")
         project = self.create_project(platform="python")
-        release_1 = Release.get_or_create(
-            project=project, version="1.0", date_added=datetime.now(UTC)
-        )
+        release_1 = Release.get_or_create(project=project, version="1.0", date_added=timezone.now())
         release_2 = Release.get_or_create(
         release_2 = Release.get_or_create(
             project=project,
             project=project,
             version="2.0",
             version="2.0",
             # We must make sure the new release_2.date_added > release_1.date_added.
             # We must make sure the new release_2.date_added > release_1.date_added.
-            date_added=datetime.now(UTC) + timedelta(hours=1),
+            date_added=timezone.now() + timedelta(hours=1),
         )
         )
 
 
         # We add a transaction for latest release release_2.
         # We add a transaction for latest release release_2.
@@ -3103,9 +3099,7 @@ class DSLatestReleaseBoostTest(TestCase):
     @freeze_time("2022-11-03 10:00:00")
     @freeze_time("2022-11-03 10:00:00")
     def test_boost_release_with_observed_release_and_different_environment(self):
     def test_boost_release_with_observed_release_and_different_environment(self):
         project = self.create_project(platform="python")
         project = self.create_project(platform="python")
-        release = Release.get_or_create(
-            project=project, version="1.0", date_added=datetime.now(UTC)
-        )
+        release = Release.get_or_create(project=project, version="1.0", date_added=timezone.now())
 
 
         self.make_release_transaction(
         self.make_release_transaction(
             release_version=release.version,
             release_version=release.version,
@@ -3230,9 +3224,7 @@ class DSLatestReleaseBoostTest(TestCase):
     @freeze_time("2022-11-03 10:00:00")
     @freeze_time("2022-11-03 10:00:00")
     def test_release_not_boosted_with_observed_release_and_same_environment(self):
     def test_release_not_boosted_with_observed_release_and_same_environment(self):
         project = self.create_project(platform="python")
         project = self.create_project(platform="python")
-        release = Release.get_or_create(
-            project=project, version="1.0", date_added=datetime.now(UTC)
-        )
+        release = Release.get_or_create(project=project, version="1.0", date_added=timezone.now())
 
 
         for environment in (self.environment1.name, self.environment2.name):
         for environment in (self.environment1.name, self.environment2.name):
             self.redis_client.set(
             self.redis_client.set(
@@ -3251,14 +3243,12 @@ class DSLatestReleaseBoostTest(TestCase):
 
 
     @freeze_time("2022-11-03 10:00:00")
     @freeze_time("2022-11-03 10:00:00")
     def test_release_not_boosted_with_deleted_release_after_event_received(self):
     def test_release_not_boosted_with_deleted_release_after_event_received(self):
-        ts = datetime.now(UTC).timestamp()
+        ts = timezone.now().timestamp()
 
 
         project = self.create_project(platform="python")
         project = self.create_project(platform="python")
-        release_1 = Release.get_or_create(
-            project=project, version="1.0", date_added=datetime.now(UTC)
-        )
+        release_1 = Release.get_or_create(project=project, version="1.0", date_added=timezone.now())
         release_2 = Release.get_or_create(
         release_2 = Release.get_or_create(
-            project=project, version="2.0", date_added=datetime.now(UTC) + timedelta(hours=1)
+            project=project, version="2.0", date_added=timezone.now() + timedelta(hours=1)
         )
         )
 
 
         self.make_release_transaction(
         self.make_release_transaction(
@@ -3303,14 +3293,12 @@ class DSLatestReleaseBoostTest(TestCase):
 
 
     @freeze_time("2022-11-03 10:00:00")
     @freeze_time("2022-11-03 10:00:00")
     def test_get_boosted_releases_with_old_and_new_cache_keys(self):
     def test_get_boosted_releases_with_old_and_new_cache_keys(self):
-        ts = datetime.now(UTC).timestamp()
+        ts = timezone.now().timestamp()
 
 
         project = self.create_project(platform="python")
         project = self.create_project(platform="python")
 
 
         # Old cache key
         # Old cache key
-        release_1 = Release.get_or_create(
-            project=project, version="1.0", date_added=datetime.now(UTC)
-        )
+        release_1 = Release.get_or_create(project=project, version="1.0", date_added=timezone.now())
         self.redis_client.hset(
         self.redis_client.hset(
             f"ds::p:{project.id}:boosted_releases",
             f"ds::p:{project.id}:boosted_releases",
             f"{release_1.id}",
             f"{release_1.id}",
@@ -3319,7 +3307,7 @@ class DSLatestReleaseBoostTest(TestCase):
 
 
         # New cache key
         # New cache key
         release_2 = Release.get_or_create(
         release_2 = Release.get_or_create(
-            project=project, version="2.0", date_added=datetime.now(UTC) + timedelta(hours=1)
+            project=project, version="2.0", date_added=timezone.now() + timedelta(hours=1)
         )
         )
         self.redis_client.hset(
         self.redis_client.hset(
             f"ds::p:{project.id}:boosted_releases",
             f"ds::p:{project.id}:boosted_releases",
@@ -3375,7 +3363,7 @@ class DSLatestReleaseBoostTest(TestCase):
 
 
     @freeze_time("2022-11-03 10:00:00")
     @freeze_time("2022-11-03 10:00:00")
     def test_expired_boosted_releases_are_removed(self):
     def test_expired_boosted_releases_are_removed(self):
-        ts = datetime.now(UTC).timestamp()
+        ts = timezone.now().timestamp()
 
 
         # We want to test with multiple platforms.
         # We want to test with multiple platforms.
         for platform in ("python", "java", None):
         for platform in ("python", "java", None):
@@ -3390,7 +3378,7 @@ class DSLatestReleaseBoostTest(TestCase):
                 release = Release.get_or_create(
                 release = Release.get_or_create(
                     project=project,
                     project=project,
                     version=release_version,
                     version=release_version,
-                    date_added=datetime.now(UTC) + timedelta(hours=index),
+                    date_added=timezone.now() + timedelta(hours=index),
                 )
                 )
                 self.redis_client.set(
                 self.redis_client.set(
                     f"ds::p:{project.id}:r:{release.id}:e:{environment}", 1, 60 * 60 * 24
                     f"ds::p:{project.id}:r:{release.id}:e:{environment}", 1, 60 * 60 * 24
@@ -3406,7 +3394,7 @@ class DSLatestReleaseBoostTest(TestCase):
             release_3 = Release.get_or_create(
             release_3 = Release.get_or_create(
                 project=project,
                 project=project,
                 version=f"3.0-{platform}",
                 version=f"3.0-{platform}",
-                date_added=datetime.now(UTC) + timedelta(hours=2),
+                date_added=timezone.now() + timedelta(hours=2),
             )
             )
             self.make_release_transaction(
             self.make_release_transaction(
                 release_version=release_3.version,
                 release_version=release_3.version,
@@ -3457,18 +3445,18 @@ class DSLatestReleaseBoostTest(TestCase):
     @freeze_time("2022-11-03 10:00:00")
     @freeze_time("2022-11-03 10:00:00")
     @mock.patch("sentry.dynamic_sampling.rules.helpers.latest_releases.BOOSTED_RELEASES_LIMIT", 2)
     @mock.patch("sentry.dynamic_sampling.rules.helpers.latest_releases.BOOSTED_RELEASES_LIMIT", 2)
     def test_least_recently_boosted_release_is_removed_if_limit_is_exceeded(self):
     def test_least_recently_boosted_release_is_removed_if_limit_is_exceeded(self):
-        ts = datetime.now(UTC).timestamp()
+        ts = timezone.now().timestamp()
 
 
         project = self.create_project(platform="python")
         project = self.create_project(platform="python")
         release_1 = Release.get_or_create(
         release_1 = Release.get_or_create(
             project=project,
             project=project,
             version="1.0",
             version="1.0",
-            date_added=datetime.now(UTC),
+            date_added=timezone.now(),
         )
         )
         release_2 = Release.get_or_create(
         release_2 = Release.get_or_create(
             project=project,
             project=project,
             version="2.0",
             version="2.0",
-            date_added=datetime.now(UTC) + timedelta(hours=1),
+            date_added=timezone.now() + timedelta(hours=1),
         )
         )
 
 
         # We boost with increasing timestamps, so that we know that the smallest will be evicted.
         # We boost with increasing timestamps, so that we know that the smallest will be evicted.
@@ -3487,7 +3475,7 @@ class DSLatestReleaseBoostTest(TestCase):
         release_3 = Release.get_or_create(
         release_3 = Release.get_or_create(
             project=project,
             project=project,
             version="3.0",
             version="3.0",
-            date_added=datetime.now(UTC) + timedelta(hours=2),
+            date_added=timezone.now() + timedelta(hours=2),
         )
         )
         self.make_release_transaction(
         self.make_release_transaction(
             release_version=release_3.version,
             release_version=release_3.version,
@@ -3527,12 +3515,10 @@ class DSLatestReleaseBoostTest(TestCase):
     @freeze_time()
     @freeze_time()
     @mock.patch("sentry.dynamic_sampling.rules.helpers.latest_releases.BOOSTED_RELEASES_LIMIT", 2)
     @mock.patch("sentry.dynamic_sampling.rules.helpers.latest_releases.BOOSTED_RELEASES_LIMIT", 2)
     def test_removed_boost_not_added_again_if_limit_is_exceeded(self):
     def test_removed_boost_not_added_again_if_limit_is_exceeded(self):
-        ts = datetime.now(UTC).timestamp()
+        ts = timezone.now().timestamp()
 
 
         project = self.create_project(platform="python")
         project = self.create_project(platform="python")
-        release_1 = Release.get_or_create(
-            project=project, version="1.0", date_added=datetime.now(UTC)
-        )
+        release_1 = Release.get_or_create(project=project, version="1.0", date_added=timezone.now())
 
 
         # We want to test that if we have the same release, but we send different environments that go over the
         # We want to test that if we have the same release, but we send different environments that go over the
         # limit, and we evict an environment, but then we send a transaction with the evicted environment.
         # limit, and we evict an environment, but then we send a transaction with the evicted environment.

+ 5 - 5
tests/sentry/incidents/endpoints/test_organization_combined_rule_index_endpoint.py

@@ -1,4 +1,4 @@
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
 
 
 import requests
 import requests
 
 
@@ -302,12 +302,12 @@ class OrganizationCombinedRuleIndexEndpointTest(BaseAlertRuleSerializerTest, API
         self.one_alert_rule = self.create_alert_rule(
         self.one_alert_rule = self.create_alert_rule(
             organization=self.org,
             organization=self.org,
             projects=[self.project, self.project2],
             projects=[self.project, self.project2],
-            date_added=date_added.replace(tzinfo=timezone.utc),
+            date_added=date_added.replace(tzinfo=UTC),
         )
         )
         self.two_alert_rule = self.create_alert_rule(
         self.two_alert_rule = self.create_alert_rule(
             organization=self.org,
             organization=self.org,
             projects=[self.project2],
             projects=[self.project2],
-            date_added=date_added.replace(tzinfo=timezone.utc),
+            date_added=date_added.replace(tzinfo=UTC),
         )
         )
         self.three_alert_rule = self.create_alert_rule(
         self.three_alert_rule = self.create_alert_rule(
             organization=self.org, projects=[self.project]
             organization=self.org, projects=[self.project]
@@ -351,12 +351,12 @@ class OrganizationCombinedRuleIndexEndpointTest(BaseAlertRuleSerializerTest, API
         self.one_alert_rule = self.create_alert_rule(
         self.one_alert_rule = self.create_alert_rule(
             organization=self.org,
             organization=self.org,
             projects=[self.project, self.project2],
             projects=[self.project, self.project2],
-            date_added=date_added.replace(tzinfo=timezone.utc),
+            date_added=date_added.replace(tzinfo=UTC),
         )
         )
         self.two_alert_rule = self.create_alert_rule(
         self.two_alert_rule = self.create_alert_rule(
             organization=self.org,
             organization=self.org,
             projects=[self.project],
             projects=[self.project],
-            date_added=date_added.replace(tzinfo=timezone.utc),
+            date_added=date_added.replace(tzinfo=UTC),
         )
         )
         self.three_alert_rule = self.create_alert_rule(
         self.three_alert_rule = self.create_alert_rule(
             organization=self.org, projects=[self.project2]
             organization=self.org, projects=[self.project2]

Some files were not shown because too many files changed in this diff