diff options
-rw-r--r-- | django/contrib/admin/templatetags/admin_list.py | 3 | ||||
-rw-r--r-- | django/db/models/functions/datetime.py | 4 | ||||
-rw-r--r-- | django/db/models/query.py | 2 | ||||
-rw-r--r-- | django/utils/timezone.py | 15 | ||||
-rw-r--r-- | docs/ref/models/database-functions.txt | 16 | ||||
-rw-r--r-- | docs/ref/models/querysets.txt | 5 | ||||
-rw-r--r-- | tests/db_functions/datetime/test_extract_trunc.py | 171 | ||||
-rw-r--r-- | tests/utils_tests/test_timezone.py | 2 |
8 files changed, 129 insertions, 89 deletions
diff --git a/django/contrib/admin/templatetags/admin_list.py b/django/contrib/admin/templatetags/admin_list.py index b82440e9f8..bc74a2a3d6 100644 --- a/django/contrib/admin/templatetags/admin_list.py +++ b/django/contrib/admin/templatetags/admin_list.py @@ -1,5 +1,6 @@ import datetime +from django.conf import settings from django.contrib.admin.templatetags.admin_urls import add_preserved_filters from django.contrib.admin.utils import ( display_for_field, display_for_value, get_fields_from_path, @@ -328,7 +329,7 @@ def date_hierarchy(cl): field = get_fields_from_path(cl.model, field_name)[-1] if isinstance(field, models.DateTimeField): dates_or_datetimes = 'datetimes' - qs_kwargs = {'is_dst': True} + qs_kwargs = {'is_dst': True} if settings.USE_DEPRECATED_PYTZ else {} else: dates_or_datetimes = 'dates' qs_kwargs = {} diff --git a/django/db/models/functions/datetime.py b/django/db/models/functions/datetime.py index 20161bef38..28ca952072 100644 --- a/django/db/models/functions/datetime.py +++ b/django/db/models/functions/datetime.py @@ -188,7 +188,7 @@ class TruncBase(TimezoneMixin, Transform): kind = None tzinfo = None - def __init__(self, expression, output_field=None, tzinfo=None, is_dst=None, **extra): + def __init__(self, expression, output_field=None, tzinfo=None, is_dst=timezone.IS_DST_PASSED, **extra): self.tzinfo = tzinfo self.is_dst = is_dst super().__init__(expression, output_field=output_field, **extra) @@ -264,7 +264,7 @@ class TruncBase(TimezoneMixin, Transform): class Trunc(TruncBase): - def __init__(self, expression, kind, output_field=None, tzinfo=None, is_dst=None, **extra): + def __init__(self, expression, kind, output_field=None, tzinfo=None, is_dst=timezone.IS_DST_PASSED, **extra): self.kind = kind super().__init__( expression, output_field=output_field, tzinfo=tzinfo, diff --git a/django/db/models/query.py b/django/db/models/query.py index 88cfc3de38..9721d95e0b 100644 --- a/django/db/models/query.py +++ b/django/db/models/query.py @@ -916,7 +916,7 @@ class QuerySet: 'datefield', flat=True ).distinct().filter(plain_field__isnull=False).order_by(('-' if order == 'DESC' else '') + 'datefield') - def datetimes(self, field_name, kind, order='ASC', tzinfo=None, is_dst=None): + def datetimes(self, field_name, kind, order='ASC', tzinfo=None, is_dst=timezone.IS_DST_PASSED): """ Return a list of datetime objects representing all available datetimes for the given field_name, scoped to 'kind'. diff --git a/django/utils/timezone.py b/django/utils/timezone.py index 940095868d..0c95416400 100644 --- a/django/utils/timezone.py +++ b/django/utils/timezone.py @@ -3,6 +3,7 @@ Timezone-related classes and functions. """ import functools +import warnings try: import zoneinfo @@ -15,6 +16,7 @@ from datetime import datetime, timedelta, timezone, tzinfo from asgiref.local import Local from django.conf import settings +from django.utils.deprecation import RemovedInDjango50Warning __all__ = [ # noqa: F822 RemovedInDjango50Warning 'utc', 'get_fixed_timezone', @@ -25,6 +27,9 @@ __all__ = [ # noqa: F822 RemovedInDjango50Warning 'is_aware', 'is_naive', 'make_aware', 'make_naive', ] +# RemovedInDjango50Warning +IS_DST_PASSED = object() + # RemovedInDjango50Warning # This code has two purposes. @@ -248,8 +253,16 @@ def is_naive(value): return value.utcoffset() is None -def make_aware(value, timezone=None, is_dst=None): +def make_aware(value, timezone=None, is_dst=IS_DST_PASSED): """Make a naive datetime.datetime in a given time zone aware.""" + if is_dst is IS_DST_PASSED: + is_dst = None + else: + warnings.warn( + 'The is_dst argument to make_aware() is deprecated as it has no ' + 'effect with zoneinfo time zones.', + RemovedInDjango50Warning + ) if timezone is None: timezone = get_current_timezone() if _is_pytz_zone(timezone): diff --git a/docs/ref/models/database-functions.txt b/docs/ref/models/database-functions.txt index 18dfdae976..a2637aec2a 100644 --- a/docs/ref/models/database-functions.txt +++ b/docs/ref/models/database-functions.txt @@ -524,6 +524,10 @@ The ``is_dst`` parameter indicates whether or not ``pytz`` should interpret nonexistent and ambiguous datetimes in daylight saving time. By default (when ``is_dst=None``), ``pytz`` raises an exception for such datetimes. +.. versionchanged:: 4.0 + + The ``is_dst`` parameter is deprecated and will be removed in Django 5.0. + Given the datetime ``2015-06-15 14:30:50.000321+00:00``, the built-in ``kind``\s return: @@ -607,6 +611,10 @@ Usage example:: .. attribute:: kind = 'quarter' +.. versionchanged:: 4.0 + + The ``is_dst`` parameter is deprecated and will be removed in Django 5.0. + These are logically equivalent to ``Trunc('date_field', kind)``. They truncate all parts of the date up to ``kind`` which allows grouping or filtering dates with less precision. ``expression`` can have an ``output_field`` of either @@ -691,6 +699,10 @@ truncate function. It's also registered as a transform on ``DateTimeField`` as .. attribute:: kind = 'second' +.. versionchanged:: 4.0 + + The ``is_dst`` parameter is deprecated and will be removed in Django 5.0. + These are logically equivalent to ``Trunc('datetime_field', kind)``. They truncate all parts of the date up to ``kind`` and allow grouping or filtering datetimes with less precision. ``expression`` must have an ``output_field`` of @@ -740,6 +752,10 @@ Usage example:: .. attribute:: kind = 'second' +.. versionchanged:: 4.0 + + The ``is_dst`` parameter is deprecated and will be removed in Django 5.0. + These are logically equivalent to ``Trunc('time_field', kind)``. They truncate all parts of the time up to ``kind`` which allows grouping or filtering times with less precision. ``expression`` can have an ``output_field`` of either diff --git a/docs/ref/models/querysets.txt b/docs/ref/models/querysets.txt index 333c0054c6..44d876227a 100644 --- a/docs/ref/models/querysets.txt +++ b/docs/ref/models/querysets.txt @@ -834,6 +834,11 @@ object. If it's ``None``, Django uses the :ref:`current time zone ambiguous datetimes in daylight saving time. By default (when ``is_dst=None``), ``pytz`` raises an exception for such datetimes. +.. versionchanged:: 4.0 + + The ``is_dst`` parameter is deprecated and will be removed in Django + 5.0. + .. _database-time-zone-definitions: .. note:: diff --git a/tests/db_functions/datetime/test_extract_trunc.py b/tests/db_functions/datetime/test_extract_trunc.py index b40fa267d3..b2c66b9fe5 100644 --- a/tests/db_functions/datetime/test_extract_trunc.py +++ b/tests/db_functions/datetime/test_extract_trunc.py @@ -24,9 +24,11 @@ from django.db.models.functions import ( TruncYear, ) from django.test import ( - TestCase, override_settings, skipIfDBFeature, skipUnlessDBFeature, + TestCase, ignore_warnings, override_settings, skipIfDBFeature, + skipUnlessDBFeature, ) from django.utils import timezone +from django.utils.deprecation import RemovedInDjango50Warning from ..models import Author, DTModel, Fan @@ -106,8 +108,8 @@ class DateFunctionTests(TestCase): start_datetime = datetime(2015, 6, 15, 14, 10) end_datetime = datetime(2016, 6, 15, 14, 10) if settings.USE_TZ: - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) self.create_model(end_datetime, start_datetime) @@ -143,8 +145,8 @@ class DateFunctionTests(TestCase): start_datetime = datetime(2015, 6, 15, 14, 10) end_datetime = datetime(2016, 6, 15, 14, 10) if settings.USE_TZ: - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) self.create_model(end_datetime, start_datetime) @@ -166,8 +168,8 @@ class DateFunctionTests(TestCase): start_datetime = datetime(2015, 6, 15, 14, 10) end_datetime = datetime(2016, 6, 15, 14, 10) if settings.USE_TZ: - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) self.create_model(end_datetime, start_datetime) @@ -189,8 +191,8 @@ class DateFunctionTests(TestCase): start_datetime = datetime(2015, 6, 15, 14, 30, 50, 321) end_datetime = datetime(2016, 6, 15, 14, 10, 50, 123) if settings.USE_TZ: - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) self.create_model(end_datetime, start_datetime) @@ -288,8 +290,8 @@ class DateFunctionTests(TestCase): start_datetime = datetime(2015, 6, 15, 14, 30, 50, 321) end_datetime = datetime(2016, 6, 15, 14, 10, 50, 123) if settings.USE_TZ: - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) self.create_model(end_datetime, start_datetime) self.assertQuerysetEqual( @@ -327,8 +329,8 @@ class DateFunctionTests(TestCase): start_datetime = datetime(2015, 6, 15, 14, 30, 50, 321) end_datetime = datetime(2016, 6, 15, 14, 10, 50, 123) if settings.USE_TZ: - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) self.create_model(end_datetime, start_datetime) self.assertQuerysetEqual( @@ -347,8 +349,8 @@ class DateFunctionTests(TestCase): start_datetime = datetime(2015, 6, 15, 14, 30, 50, 321) end_datetime = datetime(2016, 6, 15, 14, 10, 50, 123) if settings.USE_TZ: - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) self.create_model(end_datetime, start_datetime) self.assertQuerysetEqual( @@ -367,14 +369,14 @@ class DateFunctionTests(TestCase): def test_extract_iso_year_func_boundaries(self): end_datetime = datetime(2016, 6, 15, 14, 10, 50, 123) if settings.USE_TZ: - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + end_datetime = timezone.make_aware(end_datetime) week_52_day_2014 = datetime(2014, 12, 27, 13, 0) # Sunday week_1_day_2014_2015 = datetime(2014, 12, 31, 13, 0) # Wednesday week_53_day_2015 = datetime(2015, 12, 31, 13, 0) # Thursday if settings.USE_TZ: - week_1_day_2014_2015 = timezone.make_aware(week_1_day_2014_2015, is_dst=False) - week_52_day_2014 = timezone.make_aware(week_52_day_2014, is_dst=False) - week_53_day_2015 = timezone.make_aware(week_53_day_2015, is_dst=False) + week_1_day_2014_2015 = timezone.make_aware(week_1_day_2014_2015) + week_52_day_2014 = timezone.make_aware(week_52_day_2014) + week_53_day_2015 = timezone.make_aware(week_53_day_2015) days = [week_52_day_2014, week_1_day_2014_2015, week_53_day_2015] obj_1_iso_2014 = self.create_model(week_52_day_2014, end_datetime) obj_1_iso_2015 = self.create_model(week_1_day_2014_2015, end_datetime) @@ -405,8 +407,8 @@ class DateFunctionTests(TestCase): start_datetime = datetime(2015, 6, 15, 14, 30, 50, 321) end_datetime = datetime(2016, 6, 15, 14, 10, 50, 123) if settings.USE_TZ: - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) self.create_model(end_datetime, start_datetime) self.assertQuerysetEqual( @@ -425,8 +427,8 @@ class DateFunctionTests(TestCase): start_datetime = datetime(2015, 6, 15, 14, 30, 50, 321) end_datetime = datetime(2016, 6, 15, 14, 10, 50, 123) if settings.USE_TZ: - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) self.create_model(end_datetime, start_datetime) self.assertQuerysetEqual( @@ -445,8 +447,8 @@ class DateFunctionTests(TestCase): start_datetime = datetime(2015, 6, 15, 14, 30, 50, 321) end_datetime = datetime(2016, 6, 15, 14, 10, 50, 123) if settings.USE_TZ: - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) self.create_model(end_datetime, start_datetime) self.assertQuerysetEqual( @@ -466,8 +468,8 @@ class DateFunctionTests(TestCase): start_datetime = datetime(2015, 6, 15, 14, 30, 50, 321) end_datetime = datetime(2016, 8, 15, 14, 10, 50, 123) if settings.USE_TZ: - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) self.create_model(end_datetime, start_datetime) self.assertQuerysetEqual( @@ -485,13 +487,13 @@ class DateFunctionTests(TestCase): def test_extract_quarter_func_boundaries(self): end_datetime = datetime(2016, 6, 15, 14, 10, 50, 123) if settings.USE_TZ: - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + end_datetime = timezone.make_aware(end_datetime) last_quarter_2014 = datetime(2014, 12, 31, 13, 0) first_quarter_2015 = datetime(2015, 1, 1, 13, 0) if settings.USE_TZ: - last_quarter_2014 = timezone.make_aware(last_quarter_2014, is_dst=False) - first_quarter_2015 = timezone.make_aware(first_quarter_2015, is_dst=False) + last_quarter_2014 = timezone.make_aware(last_quarter_2014) + first_quarter_2015 = timezone.make_aware(first_quarter_2015) dates = [last_quarter_2014, first_quarter_2015] self.create_model(last_quarter_2014, end_datetime) self.create_model(first_quarter_2015, end_datetime) @@ -506,15 +508,15 @@ class DateFunctionTests(TestCase): def test_extract_week_func_boundaries(self): end_datetime = datetime(2016, 6, 15, 14, 10, 50, 123) if settings.USE_TZ: - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + end_datetime = timezone.make_aware(end_datetime) week_52_day_2014 = datetime(2014, 12, 27, 13, 0) # Sunday week_1_day_2014_2015 = datetime(2014, 12, 31, 13, 0) # Wednesday week_53_day_2015 = datetime(2015, 12, 31, 13, 0) # Thursday if settings.USE_TZ: - week_1_day_2014_2015 = timezone.make_aware(week_1_day_2014_2015, is_dst=False) - week_52_day_2014 = timezone.make_aware(week_52_day_2014, is_dst=False) - week_53_day_2015 = timezone.make_aware(week_53_day_2015, is_dst=False) + week_1_day_2014_2015 = timezone.make_aware(week_1_day_2014_2015) + week_52_day_2014 = timezone.make_aware(week_52_day_2014) + week_53_day_2015 = timezone.make_aware(week_53_day_2015) days = [week_52_day_2014, week_1_day_2014_2015, week_53_day_2015] self.create_model(week_53_day_2015, end_datetime) @@ -533,8 +535,8 @@ class DateFunctionTests(TestCase): start_datetime = datetime(2015, 6, 15, 14, 30, 50, 321) end_datetime = datetime(2016, 6, 15, 14, 10, 50, 123) if settings.USE_TZ: - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) self.create_model(end_datetime, start_datetime) self.assertQuerysetEqual( @@ -559,8 +561,8 @@ class DateFunctionTests(TestCase): start_datetime = datetime(2015, 6, 15, 14, 30, 50, 321) end_datetime = datetime(2016, 6, 15, 14, 10, 50, 123) if settings.USE_TZ: - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) self.create_model(end_datetime, start_datetime) self.assertQuerysetEqual( @@ -594,8 +596,8 @@ class DateFunctionTests(TestCase): start_datetime = datetime(2015, 6, 15, 14, 30, 50, 321) end_datetime = datetime(2016, 6, 15, 14, 10, 50, 123) if settings.USE_TZ: - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) self.create_model(end_datetime, start_datetime) self.assertQuerysetEqual( @@ -614,8 +616,8 @@ class DateFunctionTests(TestCase): start_datetime = datetime(2015, 6, 15, 14, 30, 50, 321) end_datetime = datetime(2016, 6, 15, 14, 10, 50, 123) if settings.USE_TZ: - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) self.create_model(end_datetime, start_datetime) self.assertQuerysetEqual( @@ -634,8 +636,8 @@ class DateFunctionTests(TestCase): start_datetime = datetime(2015, 6, 15, 14, 30, 50, 321) end_datetime = datetime(2016, 6, 15, 14, 10, 50, 123) if settings.USE_TZ: - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) self.create_model(end_datetime, start_datetime) self.assertQuerysetEqual( @@ -654,8 +656,8 @@ class DateFunctionTests(TestCase): start_datetime = datetime(2015, 6, 15, 14, 30, 50, 321) end_datetime = datetime(2016, 6, 15, 14, 10, 50, 123) if settings.USE_TZ: - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) self.create_model(end_datetime, start_datetime) @@ -760,8 +762,8 @@ class DateFunctionTests(TestCase): start_datetime = datetime(2015, 6, 15, 14, 30, 50, 321) end_datetime = truncate_to(datetime(2016, 6, 15, 14, 10, 50, 123), 'year') if settings.USE_TZ: - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) self.create_model(end_datetime, start_datetime) self.assertQuerysetEqual( @@ -794,10 +796,10 @@ class DateFunctionTests(TestCase): last_quarter_2015 = truncate_to(datetime(2015, 12, 31, 14, 10, 50, 123), 'quarter') first_quarter_2016 = truncate_to(datetime(2016, 1, 1, 14, 10, 50, 123), 'quarter') if settings.USE_TZ: - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) - last_quarter_2015 = timezone.make_aware(last_quarter_2015, is_dst=False) - first_quarter_2016 = timezone.make_aware(first_quarter_2016, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) + last_quarter_2015 = timezone.make_aware(last_quarter_2015) + first_quarter_2016 = timezone.make_aware(first_quarter_2016) self.create_model(start_datetime=start_datetime, end_datetime=end_datetime) self.create_model(start_datetime=end_datetime, end_datetime=start_datetime) self.create_model(start_datetime=last_quarter_2015, end_datetime=end_datetime) @@ -833,8 +835,8 @@ class DateFunctionTests(TestCase): start_datetime = datetime(2015, 6, 15, 14, 30, 50, 321) end_datetime = truncate_to(datetime(2016, 6, 15, 14, 10, 50, 123), 'month') if settings.USE_TZ: - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) self.create_model(end_datetime, start_datetime) self.assertQuerysetEqual( @@ -865,8 +867,8 @@ class DateFunctionTests(TestCase): start_datetime = datetime(2015, 6, 15, 14, 30, 50, 321) end_datetime = truncate_to(datetime(2016, 6, 15, 14, 10, 50, 123), 'week') if settings.USE_TZ: - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) self.create_model(end_datetime, start_datetime) self.assertQuerysetEqual( @@ -889,8 +891,8 @@ class DateFunctionTests(TestCase): start_datetime = datetime(2015, 6, 15, 14, 30, 50, 321) end_datetime = datetime(2016, 6, 15, 14, 10, 50, 123) if settings.USE_TZ: - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) self.create_model(end_datetime, start_datetime) self.assertQuerysetEqual( @@ -917,8 +919,8 @@ class DateFunctionTests(TestCase): start_datetime = datetime(2015, 6, 15, 14, 30, 50, 321) end_datetime = datetime(2016, 6, 15, 14, 10, 50, 123) if settings.USE_TZ: - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) self.create_model(end_datetime, start_datetime) self.assertQuerysetEqual( @@ -945,8 +947,8 @@ class DateFunctionTests(TestCase): start_datetime = datetime(2015, 6, 15, 14, 30, 26) # 0 microseconds. end_datetime = datetime(2015, 6, 15, 14, 30, 26, 321) if settings.USE_TZ: - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) self.assertIs( DTModel.objects.filter( @@ -970,8 +972,8 @@ class DateFunctionTests(TestCase): start_datetime = datetime(2015, 6, 15, 14, 30, 50, 321) end_datetime = truncate_to(datetime(2016, 6, 15, 14, 10, 50, 123), 'day') if settings.USE_TZ: - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) self.create_model(end_datetime, start_datetime) self.assertQuerysetEqual( @@ -994,8 +996,8 @@ class DateFunctionTests(TestCase): start_datetime = datetime(2015, 6, 15, 14, 30, 50, 321) end_datetime = truncate_to(datetime(2016, 6, 15, 14, 10, 50, 123), 'hour') if settings.USE_TZ: - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) self.create_model(end_datetime, start_datetime) self.assertQuerysetEqual( @@ -1026,8 +1028,8 @@ class DateFunctionTests(TestCase): start_datetime = datetime(2015, 6, 15, 14, 30, 50, 321) end_datetime = truncate_to(datetime(2016, 6, 15, 14, 10, 50, 123), 'minute') if settings.USE_TZ: - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) self.create_model(end_datetime, start_datetime) self.assertQuerysetEqual( @@ -1058,8 +1060,8 @@ class DateFunctionTests(TestCase): start_datetime = datetime(2015, 6, 15, 14, 30, 50, 321) end_datetime = truncate_to(datetime(2016, 6, 15, 14, 10, 50, 123), 'second') if settings.USE_TZ: - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) self.create_model(end_datetime, start_datetime) self.assertQuerysetEqual( @@ -1093,9 +1095,9 @@ class DateFunctionTests(TestCase): fan_since_2 = datetime(2015, 2, 3, 15, 0, 0) fan_since_3 = datetime(2017, 2, 3, 15, 0, 0) if settings.USE_TZ: - fan_since_1 = timezone.make_aware(fan_since_1, is_dst=False) - fan_since_2 = timezone.make_aware(fan_since_2, is_dst=False) - fan_since_3 = timezone.make_aware(fan_since_3, is_dst=False) + fan_since_1 = timezone.make_aware(fan_since_1) + fan_since_2 = timezone.make_aware(fan_since_2) + fan_since_3 = timezone.make_aware(fan_since_3) Fan.objects.create(author=author_1, name='Tom', fan_since=fan_since_1) Fan.objects.create(author=author_1, name='Emma', fan_since=fan_since_2) Fan.objects.create(author=author_2, name='Isabella', fan_since=fan_since_3) @@ -1121,9 +1123,9 @@ class DateFunctionTests(TestCase): datetime_2 = datetime(2001, 3, 5) datetime_3 = datetime(2002, 1, 3) if settings.USE_TZ: - datetime_1 = timezone.make_aware(datetime_1, is_dst=False) - datetime_2 = timezone.make_aware(datetime_2, is_dst=False) - datetime_3 = timezone.make_aware(datetime_3, is_dst=False) + datetime_1 = timezone.make_aware(datetime_1) + datetime_2 = timezone.make_aware(datetime_2) + datetime_3 = timezone.make_aware(datetime_3) obj_1 = self.create_model(datetime_1, datetime_3) obj_2 = self.create_model(datetime_2, datetime_1) obj_3 = self.create_model(datetime_3, datetime_2) @@ -1152,8 +1154,8 @@ class DateFunctionWithTimeZoneTests(DateFunctionTests): def test_extract_func_with_timezone(self): start_datetime = datetime(2015, 6, 15, 23, 30, 1, 321) end_datetime = datetime(2015, 6, 16, 13, 11, 27, 123) - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) delta_tzinfo_pos = datetime_timezone(timedelta(hours=5)) delta_tzinfo_neg = datetime_timezone(timedelta(hours=-5, minutes=17)) @@ -1211,8 +1213,8 @@ class DateFunctionWithTimeZoneTests(DateFunctionTests): def test_extract_func_explicit_timezone_priority(self): start_datetime = datetime(2015, 6, 15, 23, 30, 1, 321) end_datetime = datetime(2015, 6, 16, 13, 11, 27, 123) - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) for melb in self.get_timezones('Australia/Melbourne'): @@ -1241,8 +1243,8 @@ class DateFunctionWithTimeZoneTests(DateFunctionTests): def test_trunc_timezone_applied_before_truncation(self): start_datetime = datetime(2016, 1, 1, 1, 30, 50, 321) end_datetime = datetime(2016, 6, 15, 14, 10, 50, 123) - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) for melb, pacific in zip( @@ -1272,6 +1274,7 @@ class DateFunctionWithTimeZoneTests(DateFunctionTests): self.assertEqual(model.pacific_time, pacific_start_datetime.time()) @needs_pytx + @ignore_warnings(category=RemovedInDjango50Warning) def test_trunc_ambiguous_and_invalid_times(self): sao = pytz.timezone('America/Sao_Paulo') utc = timezone.utc @@ -1303,8 +1306,8 @@ class DateFunctionWithTimeZoneTests(DateFunctionTests): """ start_datetime = datetime(2015, 6, 15, 14, 30, 50, 321) end_datetime = datetime(2016, 6, 15, 14, 10, 50, 123) - start_datetime = timezone.make_aware(start_datetime, is_dst=False) - end_datetime = timezone.make_aware(end_datetime, is_dst=False) + start_datetime = timezone.make_aware(start_datetime) + end_datetime = timezone.make_aware(end_datetime) self.create_model(start_datetime, end_datetime) self.create_model(end_datetime, start_datetime) diff --git a/tests/utils_tests/test_timezone.py b/tests/utils_tests/test_timezone.py index 8e9c1bf8da..93dd95bffc 100644 --- a/tests/utils_tests/test_timezone.py +++ b/tests/utils_tests/test_timezone.py @@ -222,6 +222,7 @@ class TimezoneTests(SimpleTestCase): ) @needs_pytx + @ignore_warnings(category=RemovedInDjango50Warning) def test_make_aware_pytz_ambiguous(self): # 2:30 happens twice, once before DST ends and once after ambiguous = datetime.datetime(2015, 10, 25, 2, 30) @@ -250,6 +251,7 @@ class TimezoneTests(SimpleTestCase): self.assertEqual(dst.utcoffset(), datetime.timedelta(hours=2)) @needs_pytx + @ignore_warnings(category=RemovedInDjango50Warning) def test_make_aware_pytz_non_existent(self): # 2:30 never happened due to DST non_existent = datetime.datetime(2015, 3, 29, 2, 30) |