Procházet zdrojové kódy

Fix tests for USE_TZ=False

Matt Westcott před 4 roky
rodič
revize
900fdd8177

+ 4 - 1
wagtail/admin/tests/pages/timestamps.py

@@ -11,7 +11,10 @@ def submittable_timestamp(timestamp):
     need to pass it through timezone.localtime to ensure that the client and server are in
     agreement about what the timestamp means.
     """
-    return timezone.localtime(timestamp).strftime("%Y-%m-%d %H:%M")
+    if timezone.is_aware(timestamp):
+        return timezone.localtime(timestamp).strftime("%Y-%m-%d %H:%M")
+    else:
+        return timestamp.strftime("%Y-%m-%d %H:%M")
 
 
 def local_datetime(*args):

+ 21 - 5
wagtail/admin/tests/test_reports_views.py

@@ -1,6 +1,7 @@
 import datetime
 from io import BytesIO
 
+from django.conf import settings
 from django.test import TestCase
 from django.urls import reverse
 from django.utils import timezone
@@ -43,8 +44,14 @@ class TestLockedPagesView(TestCase, WagtailTestUtils):
         self.page = Page.objects.first()
         self.page.locked = True
         self.page.locked_by = self.user
-        self.page.locked_at = '2013-02-01T12:00:00.000Z'
-        self.page.latest_revision_created_at = '2013-01-01T12:00:00.000Z'
+        if settings.USE_TZ:
+            # 12:00 UTC
+            self.page.locked_at = '2013-02-01T12:00:00.000Z'
+            self.page.latest_revision_created_at = '2013-01-01T12:00:00.000Z'
+        else:
+            # 12:00 in no specific timezone
+            self.page.locked_at = '2013-02-01T12:00:00'
+            self.page.latest_revision_created_at = '2013-01-01T12:00:00'
         self.page.save()
 
         response = self.get(params={'export': 'csv'})
@@ -53,15 +60,24 @@ class TestLockedPagesView(TestCase, WagtailTestUtils):
         self.assertEqual(response.status_code, 200)
         data_lines = response.getvalue().decode().split("\n")
         self.assertEqual(data_lines[0], 'Title,Updated,Status,Type,Locked At,Locked By\r')
-        self.assertEqual(data_lines[1], 'Root,2013-01-01 12:00:00+00:00,live,Page,2013-02-01 12:00:00+00:00,test@email.com\r')
+        if settings.USE_TZ:
+            self.assertEqual(data_lines[1], 'Root,2013-01-01 12:00:00+00:00,live,Page,2013-02-01 12:00:00+00:00,test@email.com\r')
+        else:
+            self.assertEqual(data_lines[1], 'Root,2013-01-01 12:00:00,live,Page,2013-02-01 12:00:00,test@email.com\r')
 
     def test_xlsx_export(self):
 
         self.page = Page.objects.first()
         self.page.locked = True
         self.page.locked_by = self.user
-        self.page.locked_at = '2013-02-01T12:00:00.000Z'
-        self.page.latest_revision_created_at = '2013-01-01T12:00:00.000Z'
+        if settings.USE_TZ:
+            # 12:00 UTC
+            self.page.locked_at = '2013-02-01T12:00:00.000Z'
+            self.page.latest_revision_created_at = '2013-01-01T12:00:00.000Z'
+        else:
+            # 12:00 in no specific timezone
+            self.page.locked_at = '2013-02-01T12:00:00'
+            self.page.latest_revision_created_at = '2013-01-01T12:00:00'
         self.page.save()
 
         response = self.get(params={'export': 'xlsx'})

+ 107 - 26
wagtail/contrib/forms/tests/test_views.py

@@ -3,6 +3,7 @@ import datetime
 import json
 from io import BytesIO
 
+from django.conf import settings
 from django.contrib.auth.models import AnonymousUser
 from django.core.checks import Info
 from django.test import RequestFactory, TestCase
@@ -431,7 +432,10 @@ class TestFormsSubmissionsExport(TestCase, WagtailTestUtils):
                 'your_choices': ['foo', 'baz'],
             }),
         )
-        old_form_submission.submit_time = '2013-01-01T12:00:00.000Z'
+        if settings.USE_TZ:
+            old_form_submission.submit_time = '2013-01-01T12:00:00.000Z'
+        else:
+            old_form_submission.submit_time = '2013-01-01T12:00:00'
         old_form_submission.save()
 
         new_form_submission = FormSubmission.objects.create(
@@ -441,7 +445,10 @@ class TestFormsSubmissionsExport(TestCase, WagtailTestUtils):
                 'your_message': "this is a fairly new message",
             }),
         )
-        new_form_submission.submit_time = '2014-01-01T12:00:00.000Z'
+        if settings.USE_TZ:
+            new_form_submission.submit_time = '2014-01-01T12:00:00.000Z'
+        else:
+            new_form_submission.submit_time = '2014-01-01T12:00:00'
         new_form_submission.save()
 
         # Login
@@ -458,8 +465,12 @@ class TestFormsSubmissionsExport(TestCase, WagtailTestUtils):
         data_lines = response.getvalue().decode().split("\n")
 
         self.assertEqual(data_lines[0], 'Submission date,Your email,Your message,Your choices\r')
-        self.assertEqual(data_lines[1], '2013-01-01 12:00:00+00:00,old@example.com,this is a really old message,"foo, baz"\r')
-        self.assertEqual(data_lines[2], '2014-01-01 12:00:00+00:00,new@example.com,this is a fairly new message,None\r')
+        if settings.USE_TZ:
+            self.assertEqual(data_lines[1], '2013-01-01 12:00:00+00:00,old@example.com,this is a really old message,"foo, baz"\r')
+            self.assertEqual(data_lines[2], '2014-01-01 12:00:00+00:00,new@example.com,this is a fairly new message,None\r')
+        else:
+            self.assertEqual(data_lines[1], '2013-01-01 12:00:00,old@example.com,this is a really old message,"foo, baz"\r')
+            self.assertEqual(data_lines[2], '2014-01-01 12:00:00,new@example.com,this is a fairly new message,None\r')
 
     def test_list_submissions_xlsx_export(self):
         response = self.client.get(
@@ -485,7 +496,10 @@ class TestFormsSubmissionsExport(TestCase, WagtailTestUtils):
                     'your-message': "I like things x %s" % i,
                 }),
             )
-            new_form_submission.submit_time = '2014-01-01T12:00:00.000Z'
+            if settings.USE_TZ:
+                new_form_submission.submit_time = '2014-01-01T12:00:00.000Z'
+            else:
+                new_form_submission.submit_time = '2014-01-01T12:00:00'
             new_form_submission.save()
 
         response = self.client.get(
@@ -513,8 +527,12 @@ class TestFormsSubmissionsExport(TestCase, WagtailTestUtils):
         data_lines = response.getvalue().decode().split("\n")
 
         self.assertEqual(data_lines[0], 'Submission date,Your email,Your message,Your choices\r')
-        self.assertEqual(data_lines[1], '2013-01-01 12:00:00+00:00,old@example.com,this is a really old message,"foo, baz"\r')
-        self.assertEqual(data_lines[2], '2014-01-01 12:00:00+00:00,new@example.com,this is a fairly new message,None\r')
+        if settings.USE_TZ:
+            self.assertEqual(data_lines[1], '2013-01-01 12:00:00+00:00,old@example.com,this is a really old message,"foo, baz"\r')
+            self.assertEqual(data_lines[2], '2014-01-01 12:00:00+00:00,new@example.com,this is a fairly new message,None\r')
+        else:
+            self.assertEqual(data_lines[1], '2013-01-01 12:00:00,old@example.com,this is a really old message,"foo, baz"\r')
+            self.assertEqual(data_lines[2], '2014-01-01 12:00:00,new@example.com,this is a fairly new message,None\r')
 
         with self.register_hook('filter_form_submissions_for_user', construct_forms_for_user):
             response = self.client.get(
@@ -536,7 +554,10 @@ class TestFormsSubmissionsExport(TestCase, WagtailTestUtils):
         data_lines = response.getvalue().decode().split("\n")
 
         self.assertEqual(data_lines[0], 'Submission date,Your email,Your message,Your choices\r')
-        self.assertEqual(data_lines[1], '2014-01-01 12:00:00+00:00,new@example.com,this is a fairly new message,None\r')
+        if settings.USE_TZ:
+            self.assertEqual(data_lines[1], '2014-01-01 12:00:00+00:00,new@example.com,this is a fairly new message,None\r')
+        else:
+            self.assertEqual(data_lines[1], '2014-01-01 12:00:00,new@example.com,this is a fairly new message,None\r')
 
     def test_list_submissions_csv_export_with_date_to_filtering(self):
         response = self.client.get(
@@ -549,7 +570,10 @@ class TestFormsSubmissionsExport(TestCase, WagtailTestUtils):
         data_lines = response.getvalue().decode().split("\n")
 
         self.assertEqual(data_lines[0], 'Submission date,Your email,Your message,Your choices\r')
-        self.assertEqual(data_lines[1], '2013-01-01 12:00:00+00:00,old@example.com,this is a really old message,"foo, baz"\r')
+        if settings.USE_TZ:
+            self.assertEqual(data_lines[1], '2013-01-01 12:00:00+00:00,old@example.com,this is a really old message,"foo, baz"\r')
+        else:
+            self.assertEqual(data_lines[1], '2013-01-01 12:00:00,old@example.com,this is a really old message,"foo, baz"\r')
 
     def test_list_submissions_csv_export_with_range_filtering(self):
         response = self.client.get(
@@ -562,7 +586,10 @@ class TestFormsSubmissionsExport(TestCase, WagtailTestUtils):
         data_lines = response.getvalue().decode().split("\n")
 
         self.assertEqual(data_lines[0], 'Submission date,Your email,Your message,Your choices\r')
-        self.assertEqual(data_lines[1], '2014-01-01 12:00:00+00:00,new@example.com,this is a fairly new message,None\r')
+        if settings.USE_TZ:
+            self.assertEqual(data_lines[1], '2014-01-01 12:00:00+00:00,new@example.com,this is a fairly new message,None\r')
+        else:
+            self.assertEqual(data_lines[1], '2014-01-01 12:00:00,new@example.com,this is a fairly new message,None\r')
 
     def test_list_submissions_csv_export_with_unicode_in_submission(self):
         unicode_form_submission = FormSubmission.objects.create(
@@ -636,7 +663,10 @@ class TestCustomFormsSubmissionsExport(TestCase, WagtailTestUtils):
                 'your_message': "this is a really old message",
             }),
         )
-        old_form_submission.submit_time = '2013-01-01T12:00:00.000Z'
+        if settings.USE_TZ:
+            old_form_submission.submit_time = '2013-01-01T12:00:00.000Z'
+        else:
+            old_form_submission.submit_time = '2013-01-01T12:00:00'
         old_form_submission.save()
 
         new_form_submission = CustomFormPageSubmission.objects.create(
@@ -647,7 +677,10 @@ class TestCustomFormsSubmissionsExport(TestCase, WagtailTestUtils):
                 'your_message': "this is a fairly new message",
             }),
         )
-        new_form_submission.submit_time = '2014-01-01T12:00:00.000Z'
+        if settings.USE_TZ:
+            new_form_submission.submit_time = '2014-01-01T12:00:00.000Z'
+        else:
+            new_form_submission.submit_time = '2014-01-01T12:00:00'
         new_form_submission.save()
 
         # Login
@@ -664,10 +697,24 @@ class TestCustomFormsSubmissionsExport(TestCase, WagtailTestUtils):
         data_lines = response.getvalue().decode().split("\n")
 
         self.assertEqual(data_lines[0], 'User email,Submission date,Your email,Your message,Your choices\r')
-        self.assertEqual(data_lines[1],
-                         'user-john@example.com,2013-01-01 12:00:00+00:00,old@example.com,this is a really old message,None\r')
-        self.assertEqual(data_lines[2],
-                         'user-m1kola@example.com,2014-01-01 12:00:00+00:00,new@example.com,this is a fairly new message,None\r')
+        if settings.USE_TZ:
+            self.assertEqual(
+                data_lines[1],
+                'user-john@example.com,2013-01-01 12:00:00+00:00,old@example.com,this is a really old message,None\r'
+            )
+            self.assertEqual(
+                data_lines[2],
+                'user-m1kola@example.com,2014-01-01 12:00:00+00:00,new@example.com,this is a fairly new message,None\r'
+            )
+        else:
+            self.assertEqual(
+                data_lines[1],
+                'user-john@example.com,2013-01-01 12:00:00,old@example.com,this is a really old message,None\r'
+            )
+            self.assertEqual(
+                data_lines[2],
+                'user-m1kola@example.com,2014-01-01 12:00:00,new@example.com,this is a fairly new message,None\r'
+            )
 
     def test_list_submissions_csv_export_with_date_from_filtering(self):
         response = self.client.get(
@@ -680,8 +727,16 @@ class TestCustomFormsSubmissionsExport(TestCase, WagtailTestUtils):
         data_lines = response.getvalue().decode().split("\n")
 
         self.assertEqual(data_lines[0], 'User email,Submission date,Your email,Your message,Your choices\r')
-        self.assertEqual(data_lines[1],
-                         'user-m1kola@example.com,2014-01-01 12:00:00+00:00,new@example.com,this is a fairly new message,None\r')
+        if settings.USE_TZ:
+            self.assertEqual(
+                data_lines[1],
+                'user-m1kola@example.com,2014-01-01 12:00:00+00:00,new@example.com,this is a fairly new message,None\r'
+            )
+        else:
+            self.assertEqual(
+                data_lines[1],
+                'user-m1kola@example.com,2014-01-01 12:00:00,new@example.com,this is a fairly new message,None\r'
+            )
 
     def test_list_submissions_csv_export_with_date_to_filtering(self):
         response = self.client.get(
@@ -694,8 +749,16 @@ class TestCustomFormsSubmissionsExport(TestCase, WagtailTestUtils):
         data_lines = response.getvalue().decode().split("\n")
 
         self.assertEqual(data_lines[0], 'User email,Submission date,Your email,Your message,Your choices\r')
-        self.assertEqual(data_lines[1],
-                         'user-john@example.com,2013-01-01 12:00:00+00:00,old@example.com,this is a really old message,None\r')
+        if settings.USE_TZ:
+            self.assertEqual(
+                data_lines[1],
+                'user-john@example.com,2013-01-01 12:00:00+00:00,old@example.com,this is a really old message,None\r'
+            )
+        else:
+            self.assertEqual(
+                data_lines[1],
+                'user-john@example.com,2013-01-01 12:00:00,old@example.com,this is a really old message,None\r'
+            )
 
     def test_list_submissions_csv_export_with_range_filtering(self):
         response = self.client.get(
@@ -708,8 +771,16 @@ class TestCustomFormsSubmissionsExport(TestCase, WagtailTestUtils):
         data_lines = response.getvalue().decode().split("\n")
 
         self.assertEqual(data_lines[0], 'User email,Submission date,Your email,Your message,Your choices\r')
-        self.assertEqual(data_lines[1],
-                         'user-m1kola@example.com,2014-01-01 12:00:00+00:00,new@example.com,this is a fairly new message,None\r')
+        if settings.USE_TZ:
+            self.assertEqual(
+                data_lines[1],
+                'user-m1kola@example.com,2014-01-01 12:00:00+00:00,new@example.com,this is a fairly new message,None\r'
+            )
+        else:
+            self.assertEqual(
+                data_lines[1],
+                'user-m1kola@example.com,2014-01-01 12:00:00,new@example.com,this is a fairly new message,None\r'
+            )
 
     def test_list_submissions_csv_export_with_unicode_in_submission(self):
         unicode_form_submission = CustomFormPageSubmission.objects.create(
@@ -1098,7 +1169,10 @@ class TestFormsWithCustomSubmissionsList(TestCase, WagtailTestUtils):
                 'your_excitement': self.choices[2],
             }),
         )
-        new_form_submission.submit_time = '2017-10-01T12:00:00.000Z'
+        if settings.USE_TZ:
+            new_form_submission.submit_time = '2017-10-01T12:00:00.000Z'
+        else:
+            new_form_submission.submit_time = '2017-10-01T12:00:00'
         new_form_submission.save()
 
         old_form_submission = CustomFormPageSubmission.objects.create(
@@ -1111,7 +1185,10 @@ class TestFormsWithCustomSubmissionsList(TestCase, WagtailTestUtils):
                 'your_excitement': self.choices[0],
             }),
         )
-        old_form_submission.submit_time = '2017-01-01T12:00:00.000Z'
+        if settings.USE_TZ:
+            old_form_submission.submit_time = '2017-01-01T12:00:00.000Z'
+        else:
+            old_form_submission.submit_time = '2017-01-01T12:00:00'
         old_form_submission.save()
 
         self.login()
@@ -1168,8 +1245,12 @@ class TestFormsWithCustomSubmissionsList(TestCase, WagtailTestUtils):
         self.assertIn('filename="%s-export' % self.form_page.slug, response.get('Content-Disposition'))
         self.assertEqual(data_lines[0], 'User email,Submission date,Your email,Chocolate,Ingredients,Your Excitement\r')
         # first result should be the most recent as order_csv has been reversed
-        self.assertEqual(data_lines[1], 'user-chocolate-maniac@example.com,2017-10-01 12:00:00+00:00,new@example.com,White Chocolate,White colouring,Much excitement\r')
-        self.assertEqual(data_lines[2], 'user-chocolate-guy@example.com,2017-01-01 12:00:00+00:00,old@example.com,Dark Chocolate,Charcoal,What is chocolate?\r')
+        if settings.USE_TZ:
+            self.assertEqual(data_lines[1], 'user-chocolate-maniac@example.com,2017-10-01 12:00:00+00:00,new@example.com,White Chocolate,White colouring,Much excitement\r')
+            self.assertEqual(data_lines[2], 'user-chocolate-guy@example.com,2017-01-01 12:00:00+00:00,old@example.com,Dark Chocolate,Charcoal,What is chocolate?\r')
+        else:
+            self.assertEqual(data_lines[1], 'user-chocolate-maniac@example.com,2017-10-01 12:00:00,new@example.com,White Chocolate,White colouring,Much excitement\r')
+            self.assertEqual(data_lines[2], 'user-chocolate-guy@example.com,2017-01-01 12:00:00,old@example.com,Dark Chocolate,Charcoal,What is chocolate?\r')
 
     def test_list_submissions_ordering(self):
         form_submission = CustomFormPageSubmission.objects.create(

+ 11 - 3
wagtail/contrib/sitemaps/tests.py

@@ -1,9 +1,11 @@
 import datetime
 
 import pytz
+from django.conf import settings
 from django.contrib.contenttypes.models import ContentType
 from django.contrib.sites.shortcuts import get_current_site
 from django.test import RequestFactory, TestCase
+from django.utils import timezone
 
 from wagtail.core.models import Page, PageViewRestriction, Site
 from wagtail.tests.testapp.models import EventIndex, SimplePage
@@ -69,6 +71,12 @@ class TestSitemapGenerator(TestCase):
         request.META['SERVER_PORT'] = self.site.port
         return request, get_current_site(request)
 
+    def assertDatesEqual(self, actual, expected):
+        # Compare dates as naive or timezone-aware according to USE_TZ
+        if not settings.USE_TZ:
+            expected = timezone.make_naive(expected)
+        return self.assertEqual(actual, expected)
+
     def test_items(self):
         request, django_site = self.get_request_and_django_site('/sitemap.xml')
 
@@ -133,14 +141,14 @@ class TestSitemapGenerator(TestCase):
             url['lastmod'] for url in urls
             if url['location'] == 'http://localhost/hello-world/'
         ][0]
-        self.assertEqual(child_page_lastmod, datetime.datetime(2017, 1, 1, 12, 0, 0, tzinfo=pytz.utc))
+        self.assertDatesEqual(child_page_lastmod, datetime.datetime(2017, 1, 1, 12, 0, 0, tzinfo=pytz.utc))
 
         # if no last_publish_date is defined, use latest revision date
         child_page_lastmod = [
             url['lastmod'] for url in urls
             if url['location'] == 'http://localhost/no-last-publish-date/'
         ][0]
-        self.assertEqual(child_page_lastmod, datetime.datetime(2017, 2, 1, 12, 0, 0, tzinfo=pytz.utc))
+        self.assertDatesEqual(child_page_lastmod, datetime.datetime(2017, 2, 1, 12, 0, 0, tzinfo=pytz.utc))
 
     def test_latest_lastmod(self):
         # give the homepage a lastmod
@@ -153,7 +161,7 @@ class TestSitemapGenerator(TestCase):
         sitemap = Sitemap(request)
         sitemap.get_urls(1, django_site, req_protocol)
 
-        self.assertEqual(sitemap.latest_lastmod, datetime.datetime(2017, 3, 1, 12, 0, 0, tzinfo=pytz.utc))
+        self.assertDatesEqual(sitemap.latest_lastmod, datetime.datetime(2017, 3, 1, 12, 0, 0, tzinfo=pytz.utc))
 
     def test_latest_lastmod_missing(self):
         # ensure homepage does not have lastmod

+ 13 - 3
wagtail/core/tests/test_audit_log.py

@@ -1,5 +1,6 @@
 from datetime import datetime, timedelta
 
+from django.conf import settings
 from django.contrib.auth import get_user_model
 from django.test import TestCase
 from django.utils import timezone
@@ -126,7 +127,9 @@ class TestAuditLog(TestCase):
         self.assertEqual(PageLogEntry.objects.filter(action='wagtail.revert').count(), 1)
 
     def test_revision_schedule_publish(self):
-        go_live_at = timezone.make_aware(datetime.now() + timedelta(days=1))
+        go_live_at = datetime.now() + timedelta(days=1)
+        if settings.USE_TZ:
+            go_live_at = timezone.make_aware(go_live_at)
         self.home_page.go_live_at = go_live_at
 
         # with no live revision
@@ -142,7 +145,11 @@ class TestAuditLog(TestCase):
         revision1 = self.home_page.save_revision()
         revision2 = self.home_page.save_revision()
 
-        self.home_page.go_live_at = timezone.make_aware(datetime.now() + timedelta(days=1))
+        if settings.USE_TZ:
+            self.home_page.go_live_at = timezone.make_aware(datetime.now() + timedelta(days=1))
+        else:
+            self.home_page.go_live_at = datetime.now() + timedelta(days=1)
+
         schedule_revision = self.home_page.save_revision(log_action=True, previous_revision=revision2)
         schedule_revision.publish(previous_revision=revision1)
 
@@ -152,7 +159,10 @@ class TestAuditLog(TestCase):
         )
 
     def test_revision_cancel_schedule(self):
-        self.home_page.go_live_at = timezone.make_aware(datetime.now() + timedelta(days=1))
+        if settings.USE_TZ:
+            self.home_page.go_live_at = timezone.make_aware(datetime.now() + timedelta(days=1))
+        else:
+            self.home_page.go_live_at = datetime.now() + timedelta(days=1)
         revision = self.home_page.save_revision()
         revision.publish()
 

+ 78 - 15
wagtail/core/tests/test_page_model.py

@@ -3,6 +3,7 @@ import json
 from unittest.mock import Mock
 
 import pytz
+from django.conf import settings
 from django.contrib.auth import get_user_model
 from django.contrib.auth.models import AnonymousUser
 from django.contrib.contenttypes.models import ContentType
@@ -11,6 +12,7 @@ from django.http import Http404, HttpRequest
 from django.test import Client, TestCase
 from django.test.client import RequestFactory
 from django.test.utils import override_settings
+from django.utils import timezone
 from freezegun import freeze_time
 
 from wagtail.core.models import Page, PageManager, Site, get_page_models
@@ -639,9 +641,24 @@ class TestLiveRevision(TestCase):
 
         page.refresh_from_db()
         self.assertEqual(page.live_revision, revision)
-        self.assertEqual(page.last_published_at, datetime.datetime(2017, 1, 1, 12, 0, 0, tzinfo=pytz.utc))
-        # first_published_at should not change
-        self.assertEqual(page.first_published_at, datetime.datetime(2014, 1, 1, 12, 0, 0, tzinfo=pytz.utc))
+        if settings.USE_TZ:
+            self.assertEqual(
+                page.last_published_at, datetime.datetime(2017, 1, 1, 12, 0, 0, tzinfo=pytz.utc)
+            )
+            # first_published_at should not change
+            self.assertEqual(
+                page.first_published_at, datetime.datetime(2014, 1, 1, 12, 0, 0, tzinfo=pytz.utc)
+            )
+        else:
+            self.assertEqual(
+                # interpret the "2017-01-01 12:00:00" in freeze_time above as a naive local date
+                page.last_published_at, datetime.datetime(2017, 1, 1, 12, 0, 0)
+            )
+            # first_published_at should not change
+            self.assertEqual(
+                # convert the "2014-01-01T12:00:00.000Z" in the test fixture to a naive local time
+                page.first_published_at, timezone.make_naive(datetime.datetime(2014, 1, 1, 12, 0, 0, tzinfo=pytz.utc))
+            )
 
     @freeze_time("2017-01-01 12:00:00")
     def test_unpublish_method_will_clean_live_revision(self):
@@ -657,8 +674,22 @@ class TestLiveRevision(TestCase):
         page.refresh_from_db()
         self.assertIsNone(page.live_revision)
         # first_published_at / last_published_at should remain unchanged on unpublish
-        self.assertEqual(page.first_published_at, datetime.datetime(2014, 1, 1, 12, 0, 0, tzinfo=pytz.utc))
-        self.assertEqual(page.last_published_at, datetime.datetime(2017, 1, 1, 12, 0, 0, tzinfo=pytz.utc))
+        if settings.USE_TZ:
+            self.assertEqual(
+                page.first_published_at, datetime.datetime(2014, 1, 1, 12, 0, 0, tzinfo=pytz.utc)
+            )
+            self.assertEqual(
+                page.last_published_at, datetime.datetime(2017, 1, 1, 12, 0, 0, tzinfo=pytz.utc)
+            )
+        else:
+            self.assertEqual(
+                # convert the "2014-01-01T12:00:00.000Z" in the test fixture to a naive local time
+                page.first_published_at, timezone.make_naive(datetime.datetime(2014, 1, 1, 12, 0, 0, tzinfo=pytz.utc))
+            )
+            self.assertEqual(
+                # interpret the "2017-01-01 12:00:00" in freeze_time above as a naive local date
+                page.last_published_at, datetime.datetime(2017, 1, 1, 12, 0, 0)
+            )
 
     @freeze_time("2017-01-01 12:00:00")
     def test_copy_method_with_keep_live_will_update_live_revision(self):
@@ -673,8 +704,12 @@ class TestLiveRevision(TestCase):
         # first_published_at / last_published_at should reflect the current time,
         # not the source page's publish dates, since the copied page is being published
         # for the first time
-        self.assertEqual(new_about_us.first_published_at, datetime.datetime(2017, 1, 1, 12, 0, 0, tzinfo=pytz.utc))
-        self.assertEqual(new_about_us.last_published_at, datetime.datetime(2017, 1, 1, 12, 0, 0, tzinfo=pytz.utc))
+        if settings.USE_TZ:
+            self.assertEqual(new_about_us.first_published_at, datetime.datetime(2017, 1, 1, 12, 0, 0, tzinfo=pytz.utc))
+            self.assertEqual(new_about_us.last_published_at, datetime.datetime(2017, 1, 1, 12, 0, 0, tzinfo=pytz.utc))
+        else:
+            self.assertEqual(new_about_us.first_published_at, datetime.datetime(2017, 1, 1, 12, 0, 0))
+            self.assertEqual(new_about_us.last_published_at, datetime.datetime(2017, 1, 1, 12, 0, 0))
 
     def test_copy_method_without_keep_live_will_not_update_live_revision(self):
         about_us = SimplePage.objects.get(url_path='/home/about-us/')
@@ -693,7 +728,10 @@ class TestLiveRevision(TestCase):
     @freeze_time("2017-01-01 12:00:00")
     def test_publish_with_future_go_live_does_not_set_live_revision(self):
         about_us = SimplePage.objects.get(url_path='/home/about-us/')
-        about_us.go_live_at = datetime.datetime(2018, 1, 1, 12, 0, 0, tzinfo=pytz.utc)
+        if settings.USE_TZ:
+            about_us.go_live_at = datetime.datetime(2018, 1, 1, 12, 0, 0, tzinfo=pytz.utc)
+        else:
+            about_us.go_live_at = datetime.datetime(2018, 1, 1, 12, 0, 0)
         revision = about_us.save_revision()
         revision.publish()
         about_us.refresh_from_db()
@@ -702,8 +740,20 @@ class TestLiveRevision(TestCase):
         self.assertIsNone(about_us.live_revision)
 
         # first_published_at / last_published_at should remain unchanged
-        self.assertEqual(about_us.first_published_at, datetime.datetime(2014, 1, 1, 12, 0, 0, tzinfo=pytz.utc))
-        self.assertEqual(about_us.last_published_at, datetime.datetime(2014, 2, 1, 12, 0, 0, tzinfo=pytz.utc))
+        if settings.USE_TZ:
+            self.assertEqual(
+                about_us.first_published_at, datetime.datetime(2014, 1, 1, 12, 0, 0, tzinfo=pytz.utc)
+            )
+            self.assertEqual(
+                about_us.last_published_at, datetime.datetime(2014, 2, 1, 12, 0, 0, tzinfo=pytz.utc)
+            )
+        else:
+            self.assertEqual(
+                about_us.first_published_at, timezone.make_naive(datetime.datetime(2014, 1, 1, 12, 0, 0, tzinfo=pytz.utc))
+            )
+            self.assertEqual(
+                about_us.last_published_at, timezone.make_naive(datetime.datetime(2014, 2, 1, 12, 0, 0, tzinfo=pytz.utc))
+            )
 
 
 class TestCopyPage(TestCase):
@@ -925,7 +975,14 @@ class TestCopyPage(TestCase):
 
     def test_copy_page_copies_revisions_and_doesnt_schedule(self):
         christmas_event = EventPage.objects.get(url_path='/home/events/christmas/')
-        christmas_event.save_revision(approved_go_live_at=datetime.datetime(2014, 9, 16, 9, 12, 00, tzinfo=pytz.utc))
+        if settings.USE_TZ:
+            christmas_event.save_revision(
+                approved_go_live_at=datetime.datetime(2014, 9, 16, 9, 12, 00, tzinfo=pytz.utc)
+            )
+        else:
+            christmas_event.save_revision(
+                approved_go_live_at=datetime.datetime(2014, 9, 16, 9, 12, 00)
+            )
 
         # Copy it
         new_christmas_event = christmas_event.copy(
@@ -933,10 +990,16 @@ class TestCopyPage(TestCase):
         )
 
         # Check that the old revision is still scheduled
-        self.assertEqual(
-            christmas_event.revisions.order_by('created_at').first().approved_go_live_at,
-            datetime.datetime(2014, 9, 16, 9, 12, 00, tzinfo=pytz.utc)
-        )
+        if settings.USE_TZ:
+            self.assertEqual(
+                christmas_event.revisions.order_by('created_at').first().approved_go_live_at,
+                datetime.datetime(2014, 9, 16, 9, 12, 00, tzinfo=pytz.utc)
+            )
+        else:
+            self.assertEqual(
+                christmas_event.revisions.order_by('created_at').first().approved_go_live_at,
+                datetime.datetime(2014, 9, 16, 9, 12, 00)
+            )
 
         # Check that the new revision is not scheduled
         self.assertEqual(new_christmas_event.revisions.order_by('created_at').first().approved_go_live_at, None)

+ 13 - 3
wagtail/core/tests/test_workflow.py

@@ -1,6 +1,7 @@
 import datetime
 
 import pytz
+from django.conf import settings
 from django.contrib.auth import get_user_model
 from django.contrib.auth.models import Group
 from django.core.exceptions import ValidationError
@@ -112,14 +113,20 @@ class TestWorkflows(TestCase):
         self.assertEqual(workflow_state.workflow, workflow)
         self.assertEqual(workflow_state.page, homepage)
         self.assertEqual(workflow_state.status, 'in_progress')
-        self.assertEqual(workflow_state.created_at, datetime.datetime(2017, 1, 1, 12, 0, 0, tzinfo=pytz.utc))
+        if settings.USE_TZ:
+            self.assertEqual(workflow_state.created_at, datetime.datetime(2017, 1, 1, 12, 0, 0, tzinfo=pytz.utc))
+        else:
+            self.assertEqual(workflow_state.created_at, datetime.datetime(2017, 1, 1, 12, 0, 0))
         self.assertEqual(workflow_state.requested_by, user)
 
         task_state = workflow_state.current_task_state
         self.assertEqual(task_state.task, task_1)
         self.assertEqual(task_state.status, 'in_progress')
         self.assertEqual(task_state.page_revision, homepage.get_latest_revision())
-        self.assertEqual(task_state.started_at, datetime.datetime(2017, 1, 1, 12, 0, 0, tzinfo=pytz.utc))
+        if settings.USE_TZ:
+            self.assertEqual(task_state.started_at, datetime.datetime(2017, 1, 1, 12, 0, 0, tzinfo=pytz.utc))
+        else:
+            self.assertEqual(task_state.started_at, datetime.datetime(2017, 1, 1, 12, 0, 0))
         self.assertEqual(task_state.finished_at, None)
 
     @override_settings(WAGTAIL_WORKFLOW_CANCEL_ON_PUBLISH=True)
@@ -153,7 +160,10 @@ class TestWorkflows(TestCase):
         page = data['page']
         task_state = workflow_state.current_task_state
         task_state.task.on_action(task_state, user=None, action_name='approve')
-        self.assertEqual(task_state.finished_at, datetime.datetime(2017, 1, 1, 12, 0, 0, tzinfo=pytz.utc))
+        if settings.USE_TZ:
+            self.assertEqual(task_state.finished_at, datetime.datetime(2017, 1, 1, 12, 0, 0, tzinfo=pytz.utc))
+        else:
+            self.assertEqual(task_state.finished_at, datetime.datetime(2017, 1, 1, 12, 0, 0))
         self.assertEqual(task_state.status, 'approved')
         self.assertEqual(workflow_state.current_task_state.task, task_2)
         task_2.on_action(workflow_state.current_task_state, user=None, action_name='approve')