Moved tests for publish pages command into wagtailcore

This commit is contained in:
Karl Hobley 2014-06-03 10:28:00 +01:00
parent ad3c62fed5
commit 97ab613f88
2 changed files with 108 additions and 108 deletions

View file

@ -1,12 +1,10 @@
from datetime import datetime, timedelta
from django.core import management
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
from django.core.urlresolvers import reverse
class TestHome(TestCase):
@ -472,106 +470,3 @@ class TestEditorHooks(TestCase):
self.assertEqual(response.status_code, 200)
self.assertContains(response, '<link rel="stylesheet" href="/path/to/my/custom.css">')
self.assertContains(response, '<script src="/path/to/my/custom.js"></script>')
class TestPublishScheduledPages(TestCase):
def setUp(self):
# Find root page
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)
self.root_page.add_child(instance=page)
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)
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)
self.root_page.add_child(instance=page)
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', )
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)
self.root_page.add_child(instance=page)
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', )
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)
self.root_page.add_child(instance=page)
p = Page.objects.get(slug='hello-world')
self.assertTrue(p.live)
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)
self.root_page.add_child(instance=page)
p = Page.objects.get(slug='hello-world')
self.assertTrue(p.live)
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)
self.root_page.add_child(instance=page)
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', )
p = Page.objects.get(slug='hello-world')
self.assertFalse(PageRevision.objects.filter(page=p, submitted_for_moderation=True).exists())

View file

@ -1,9 +1,12 @@
from datetime import timedelta
from django.test import TestCase, Client
from django.http import HttpRequest, Http404
from django.utils import timezone
from django.contrib.auth.models import User
from django.core import management
from wagtail.wagtailcore.models import Page, Site, UserPagePermissionsProxy
from wagtail.wagtailcore.models import Page, Site, UserPagePermissionsProxy, PageRevision
from wagtail.tests.models import EventPage, EventIndex, SimplePage
@ -776,3 +779,105 @@ class TestIssue157(TestCase):
# Check url
self.assertEqual(homepage.url, '/')
class TestPublishScheduledPagesCommand(TestCase):
def setUp(self):
# Find root page
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)
self.root_page.add_child(instance=page)
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)
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)
self.root_page.add_child(instance=page)
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', )
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)
self.root_page.add_child(instance=page)
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', )
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)
self.root_page.add_child(instance=page)
p = Page.objects.get(slug='hello-world')
self.assertTrue(p.live)
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)
self.root_page.add_child(instance=page)
p = Page.objects.get(slug='hello-world')
self.assertTrue(p.live)
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)
self.root_page.add_child(instance=page)
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', )
p = Page.objects.get(slug='hello-world')
self.assertFalse(PageRevision.objects.filter(page=p, submitted_for_moderation=True).exists())