Update all datetime/timezone usage to avoid deprecated functionality.

Review Request #13429 — Created Nov. 22, 2023 and submitted — Latest diff uploaded

Information

Djblets
release-5.x

Reviewers

Django has deprecated django.utils.timezone.utc in favor of
datetime.timezone.utc. The rest of the django.utils.timezone methods
are still supported. Furthermore, datetime.timezone.utc cannot be
directly imported, and must be accessed through datetime.timezone.

This leaves two possible importable targets named datetime (both
datetime and datetime.datetime) and named timezone
(datetime.timezone and django.utils.timezone), all of which are
relevant.

In an effort to keep things sane and consistent, the codebase now
imports the top-level datetime (accessing everything as a direct
property access of that) and django.utils.timezone as timezone in
all affected modules. We may opt to go this route with all new Django
code going forward.

With this change, all datetime-related warnings in unit tests have been
removed.

All unit tests pass.

Diff Revision 2 (Latest)

orig
1
2

Commits

First Last Summary ID Author
Update all datetime/timezone usage to avoid deprecated functionality.
Django has deprecated `django.utils.timezone.utc` in favor of `datetime.timezone.utc`. The rest of the `django.utils.timezone` methods are still supported. Furthermore, `datetime.timezone.utc` cannot be directly imported, and must be accessed through `datetime.timezone`. This leaves two possible importable targets named `datetime` (both `datetime` and `datetime.datetime`) and named `timezone` (`datetime.timezone` and `django.utils.timezone`), all of which are relevant. In an effort to keep things sane and consistent, the codebase now imports the top-level `datetime` (accessing everything as a direct property access of that) and `django.utils.timezone` as `timezone` in all affected modules. We may opt to go this route with all new Django code going forward. With this change, all datetime-related warnings in unit tests have been removed.
e1093159b55a9e930fa00e5652f560fabc034dbd Christian Hammond
djblets/db/tests/test_modification_timestamp_field.py
djblets/privacy/tests/test_base_consent_requirement.py
djblets/privacy/tests/test_consent_data.py
djblets/privacy/tests/test_consent_tracker.py
djblets/util/dates.py
djblets/util/tests/test_dates.py
djblets/webapi/tests/test_fields.py
Loading...