From 55cdf6c52db07f29128741b8734a523ed042e465 Mon Sep 17 00:00:00 2001 From: Hasan Ramezani Date: Fri, 20 Mar 2020 22:58:55 +0100 Subject: Fixed #29724 -- Fixed timezone handling in ModelAdmin.date_hierarchy queries. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thanks Alexander Holmbäck for the initial patch. --- tests/admin_views/tests.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'tests') diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py index c2b3ff0ff1..8fde8ed45c 100644 --- a/tests/admin_views/tests.py +++ b/tests/admin_views/tests.py @@ -981,6 +981,18 @@ class AdminViewBasicTest(AdminViewBasicTestCase): self.assertContains(response, 'question__expires__month=10') self.assertContains(response, 'question__expires__year=2016') + @override_settings(TIME_ZONE='America/Los_Angeles', USE_TZ=True) + def test_date_hierarchy_local_date_differ_from_utc(self): + # This datetime is 2017-01-01 in UTC. + date = pytz.timezone('America/Los_Angeles').localize(datetime.datetime(2016, 12, 31, 16)) + q = Question.objects.create(question='Why?', expires=date) + Answer2.objects.create(question=q, answer='Because.') + response = self.client.get(reverse('admin:admin_views_answer2_changelist')) + self.assertEqual(response.status_code, 200) + self.assertContains(response, 'question__expires__day=31') + self.assertContains(response, 'question__expires__month=12') + self.assertContains(response, 'question__expires__year=2016') + def test_sortable_by_columns_subset(self): expected_sortable_fields = ('date', 'callable_year') expected_not_sortable_fields = ( -- cgit v1.3