diff --git a/wagtail/wagtailadmin/tests.py b/wagtail/wagtailadmin/tests.py index c657c1efb..3e4103137 100644 --- a/wagtail/wagtailadmin/tests.py +++ b/wagtail/wagtailadmin/tests.py @@ -1,7 +1,9 @@ from datetime import timedelta + from django.core.urlresolvers import reverse from django.utils import timezone from django.test import TestCase + from wagtail.tests.models import SimplePage, EventPage from wagtail.tests.utils import login, unittest from wagtail.wagtailcore.models import Page, PageRevision @@ -266,8 +268,10 @@ class TestPageEdit(TestCase): # The page will still be live self.assertTrue(child_page_new.live) + # A revision with approved_go_live_at should not exist self.assertFalse(PageRevision.objects.filter(page=child_page_new).exclude(approved_go_live_at__isnull=True).exists()) + # But a revision with go_live_at and expire_at in their content json *should* exist self.assertTrue(PageRevision.objects.filter(page=child_page_new, content_json__contains=str(go_live_at.date())).exists()) self.assertTrue(PageRevision.objects.filter(page=child_page_new, content_json__contains=str(expire_at.date())).exists()) @@ -309,8 +313,10 @@ class TestPageEdit(TestCase): self.assertEqual(response.status_code, 302) child_page_new = SimplePage.objects.get(id=self.child_page.id) + # The page should not be live anymore self.assertFalse(child_page_new.live) + # Instead a revision with approved_go_live_at should now exist self.assertTrue(PageRevision.objects.filter(page=child_page_new).exclude(approved_go_live_at__isnull=True).exists()) @@ -332,8 +338,10 @@ class TestPageEdit(TestCase): self.assertEqual(response.status_code, 302) child_page_new = SimplePage.objects.get(id=self.child_page.id) + # The page should not be live anymore self.assertFalse(child_page_new.live) + # Instead a revision with approved_go_live_at should now exist self.assertTrue(PageRevision.objects.filter(page=child_page_new).exclude(approved_go_live_at__isnull=True).exists()) @@ -352,11 +360,14 @@ class TestPageEdit(TestCase): self.assertEqual(response.status_code, 302) child_page_new = SimplePage.objects.get(id=self.child_page.id) + # The page should be live now self.assertTrue(child_page_new.live) + # And a revision with approved_go_live_at should not exist self.assertFalse(PageRevision.objects.filter(page=child_page_new).exclude(approved_go_live_at__isnull=True).exists()) + class TestPageDelete(TestCase): def setUp(self): # Find root page diff --git a/wagtail/wagtailcore/tests.py b/wagtail/wagtailcore/tests.py index 3eede0e4a..32ec3a826 100644 --- a/wagtail/wagtailcore/tests.py +++ b/wagtail/wagtailcore/tests.py @@ -787,97 +787,120 @@ class TestPublishScheduledPagesCommand(TestCase): self.root_page = Page.objects.get(id=2) def test_go_live_page_will_be_published(self): - page = SimplePage() - page.title = "Hello world!" - page.slug = "hello-world" - page.live = False - page.go_live_at = timezone.now() - timedelta(days=1) + page = SimplePage( + title="Hello world!", + slug="hello-world", + live=False, + go_live_at=timezone.now() - timedelta(days=1), + ) self.root_page.add_child(instance=page) - page.save_revision( - approved_go_live_at = timezone.now() - timedelta(days=1) - ) + page.save_revision(approved_go_live_at=timezone.now() - timedelta(days=1)) + p = Page.objects.get(slug='hello-world') self.assertFalse(p.live) self.assertTrue(PageRevision.objects.filter(page=p).exclude(approved_go_live_at__isnull=True).exists()) - management.call_command('publish_scheduled_pages', verbosity=3, interactive=False) - #management.call_command('publish_scheduled_pages', dryrun=True, verbosity=3, interactive=False) + + management.call_command('publish_scheduled_pages') + p = Page.objects.get(slug='hello-world') self.assertTrue(p.live) self.assertFalse(PageRevision.objects.filter(page=p).exclude(approved_go_live_at__isnull=True).exists()) def test_go_live_page_will_be_published(self): - page = SimplePage() - page.title = "Hello world!" - page.slug = "hello-world" - page.live = False - page.go_live_at = timezone.now() - timedelta(days=1) + page = SimplePage( + title="Hello world!", + slug="hello-world", + live=False, + go_live_at=timezone.now() - timedelta(days=1), + ) self.root_page.add_child(instance=page) - page.save_revision(approved_go_live_at = timezone.now() - timedelta(days=1)) + page.save_revision(approved_go_live_at=timezone.now() - timedelta(days=1)) + p = Page.objects.get(slug='hello-world') self.assertFalse(p.live) self.assertTrue(PageRevision.objects.filter(page=p).exclude(approved_go_live_at__isnull=True).exists()) - management.call_command('publish_scheduled_pages', ) + + management.call_command('publish_scheduled_pages') + p = Page.objects.get(slug='hello-world') self.assertTrue(p.live) self.assertFalse(PageRevision.objects.filter(page=p).exclude(approved_go_live_at__isnull=True).exists()) def test_future_go_live_page_will_not_be_published(self): - page = SimplePage() - page.title = "Hello world!" - page.slug = "hello-world" - page.live = False - page.go_live_at = timezone.now() + timedelta(days=1) + page = SimplePage( + title="Hello world!", + slug="hello-world", + live=False, + go_live_at=timezone.now() + timedelta(days=1), + ) self.root_page.add_child(instance=page) - page.save_revision(approved_go_live_at = timezone.now() - timedelta(days=1)) + + page.save_revision(approved_go_live_at=timezone.now() - timedelta(days=1)) + p = Page.objects.get(slug='hello-world') self.assertFalse(p.live) self.assertTrue(PageRevision.objects.filter(page=p).exclude(approved_go_live_at__isnull=True).exists()) - management.call_command('publish_scheduled_pages', ) + + management.call_command('publish_scheduled_pages') + p = Page.objects.get(slug='hello-world') self.assertFalse(p.live) self.assertTrue(PageRevision.objects.filter(page=p).exclude(approved_go_live_at__isnull=True).exists()) def test_expired_page_will_be_unpublished(self): - page = SimplePage() - page.title = "Hello world!" - page.slug = "hello-world" - page.live = True - page.expire_at = timezone.now() - timedelta(days=1) + page = SimplePage( + title="Hello world!", + slug="hello-world", + live=True, + expire_at=timezone.now() - timedelta(days=1), + ) self.root_page.add_child(instance=page) + p = Page.objects.get(slug='hello-world') self.assertTrue(p.live) - management.call_command('publish_scheduled_pages', ) + + management.call_command('publish_scheduled_pages') + p = Page.objects.get(slug='hello-world') self.assertFalse(p.live) self.assertTrue(p.expired) def test_future_expired_page_will_not_be_unpublished(self): - page = SimplePage() - page.title = "Hello world!" - page.slug = "hello-world" - page.live = True - page.expire_at = timezone.now() + timedelta(days=1) + page = SimplePage( + title="Hello world!", + slug="hello-world", + live=True, + expire_at=timezone.now() + timedelta(days=1), + ) self.root_page.add_child(instance=page) + p = Page.objects.get(slug='hello-world') self.assertTrue(p.live) - management.call_command('publish_scheduled_pages', ) + + management.call_command('publish_scheduled_pages') + p = Page.objects.get(slug='hello-world') self.assertTrue(p.live) self.assertFalse(p.expired) def test_expired_pages_are_dropped_from_mod_queue(self): - page = SimplePage() - page.title = "Hello world!" - page.slug = "hello-world" - page.live = False - page.expire_at = timezone.now() - timedelta(days=1) + page = SimplePage( + title="Hello world!", + slug="hello-world", + live=False, + expire_at=timezone.now() - timedelta(days=1), + ) self.root_page.add_child(instance=page) - page.save_revision(submitted_for_moderation = True) + + page.save_revision(submitted_for_moderation=True) + p = Page.objects.get(slug='hello-world') self.assertFalse(p.live) self.assertTrue(PageRevision.objects.filter(page=p, submitted_for_moderation=True).exists()) - management.call_command('publish_scheduled_pages', ) + + management.call_command('publish_scheduled_pages') + p = Page.objects.get(slug='hello-world') self.assertFalse(PageRevision.objects.filter(page=p, submitted_for_moderation=True).exists())