本文整理汇总了Python中wagtail.tests.testapp.models.SimplePage.save_revision方法的典型用法代码示例。如果您正苦于以下问题:Python SimplePage.save_revision方法的具体用法?Python SimplePage.save_revision怎么用?Python SimplePage.save_revision使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类wagtail.tests.testapp.models.SimplePage
的用法示例。
在下文中一共展示了SimplePage.save_revision方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_expired_pages_are_dropped_from_mod_queue
# 需要导入模块: from wagtail.tests.testapp.models import SimplePage [as 别名]
# 或者: from wagtail.tests.testapp.models.SimplePage import save_revision [as 别名]
def test_expired_pages_are_dropped_from_mod_queue(self):
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)
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())
示例2: TestServeLatestDraftPage
# 需要导入模块: from wagtail.tests.testapp.models import SimplePage [as 别名]
# 或者: from wagtail.tests.testapp.models.SimplePage import save_revision [as 别名]
class TestServeLatestDraftPage(TestCase):
def setUp(self):
self.default_site = Site.objects.get(is_default_site=True)
self.page = SimplePage(title='live', slug='test', content='test')
self.default_site.root_page.add_child(instance=self.page)
self.page.title = 'draft'
self.page.save_revision()
@override_settings(SERVE_LATEST_DRAFT_PAGES=[])
def test_not_serving_draft_serves_published_revision(self):
response = self.client.get('/test/')
self.assertContains(response, 'live')
self.assertIsNone(response.get('Serving-Wagtail-Draft'))
def test_serving_draft_serves_latest_revision_and_adds_header(self):
with override_settings(SERVE_LATEST_DRAFT_PAGES=[self.page.pk]):
response = self.client.get('/test/')
self.assertContains(response, 'draft')
self.assertEqual(response['Serving-Wagtail-Draft'], '1')
示例3: test_future_go_live_page_will_not_be_published
# 需要导入模块: from wagtail.tests.testapp.models import SimplePage [as 别名]
# 或者: from wagtail.tests.testapp.models.SimplePage import save_revision [as 别名]
def test_future_go_live_page_will_not_be_published(self):
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))
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())
示例4: TestRevisionPreviewView
# 需要导入模块: from wagtail.tests.testapp.models import SimplePage [as 别名]
# 或者: from wagtail.tests.testapp.models.SimplePage import save_revision [as 别名]
class TestRevisionPreviewView(TestCase, WagtailTestUtils):
def setUp(self):
# Login.
self.user = self.login()
# Find root page.
self.root_page = Page.objects.get(id=2)
# Add child page.
self.child_page = SimplePage(
title = 'Test Page',
slug = 'test-page',
)
self.root_page.add_child(instance=self.child_page)
# Create revisions.
for i in range(20):
self.child_page.save_revision(
user = self.user,
submitted_for_moderation = False,
approved_go_live_at = None
)
def get_url(self):
return reverse(
'wagtailrollbacks:preview_page_version',
args=(self.child_page.get_latest_revision().id,)
)
def get_get_permission_denied(self):
self.client.logout()
with self.assertRaises(PermissionDenied):
self.client.get(self.get_url())
def test_get(self):
# Generate the response.
response = self.client.get(self.get_url())
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, 'tests/simple_page.html')
示例5: test_go_live_when_newer_revision_exists
# 需要导入模块: from wagtail.tests.testapp.models import SimplePage [as 别名]
# 或者: from wagtail.tests.testapp.models.SimplePage import save_revision [as 别名]
def test_go_live_when_newer_revision_exists(self):
page = SimplePage(
title="Hello world!",
slug="hello-world",
live=False,
has_unpublished_changes=True,
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.title = "Goodbye world!"
page.save_revision(submitted_for_moderation=False)
management.call_command('publish_scheduled_pages')
p = Page.objects.get(slug='hello-world')
self.assertTrue(p.live)
self.assertTrue(p.has_unpublished_changes)
self.assertEqual(p.title, "Hello world!")
示例6: test_go_live_page_will_be_published
# 需要导入模块: from wagtail.tests.testapp.models import SimplePage [as 别名]
# 或者: from wagtail.tests.testapp.models.SimplePage import save_revision [as 别名]
def test_go_live_page_will_be_published(self):
# Connect a mock signal handler to page_published signal
signal_fired = [False]
signal_page = [None]
def page_published_handler(sender, instance, **kwargs):
signal_fired[0] = True
signal_page[0] = instance
page_published.connect(page_published_handler)
page = SimplePage(
title="Hello world!",
slug="hello-world",
content="hello",
live=False,
has_unpublished_changes=True,
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.assertTrue(p.first_published_at)
self.assertFalse(p.has_unpublished_changes)
self.assertFalse(PageRevision.objects.filter(page=p).exclude(approved_go_live_at__isnull=True).exists())
# Check that the page_published signal was fired
self.assertTrue(signal_fired[0])
self.assertEqual(signal_page[0], page)
self.assertEqual(signal_page[0], signal_page[0].specific)
示例7: TestPageRevisionsView
# 需要导入模块: from wagtail.tests.testapp.models import SimplePage [as 别名]
# 或者: from wagtail.tests.testapp.models.SimplePage import save_revision [as 别名]
class TestPageRevisionsView(TestCase, WagtailTestUtils):
def setUp(self):
# Login.
self.user = self.login()
# Find root page.
self.root_page = Page.objects.get(id=2)
# Add child page.
self.child_page = SimplePage(
title = 'Test Page',
slug = 'test-page',
)
self.root_page.add_child(instance=self.child_page)
# Create revisions.
for i in range(20):
self.child_page.save_revision(
user = self.user,
submitted_for_moderation = False,
approved_go_live_at = None
)
def get_get_permission_denied(self):
self.client.logout()
with self.assertRaises(PermissionDenied):
self.client.get(self.get_url())
def get(self, params=None):
if not params:
params = {}
return self.client.get(
reverse('wagtailrollbacks:page_revisions', args=(self.child_page.id,)),
params
)
def test_pagination(self):
# Generate the response.
page_num = 2
response = self.get({'p': 2})
# Check assertions.
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(
response,
'wagtailrollbacks/edit_handlers/revisions.html'
)
self.assertEqual(response.context['revisions'].number, page_num)
self.assertContains(response, 'Page {0} of '.format(page_num))
def test_pagination_invalid(self):
# Generate the response.
response = self.get({'p': 'fake'})
# Check assertions.
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(
response,
'wagtailrollbacks/edit_handlers/revisions.html'
)
self.assertEqual(response.context['revisions'].number, 1)
def test_pagination_out_of_range(self):
# Generate the response.
response = self.get({'p': 99999})
# Check assertions.
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(
response,
'wagtailrollbacks/edit_handlers/revisions.html'
)
self.assertEqual(
response.context['revisions'].number,
response.context['revisions'].paginator.num_pages
)
示例8: TestConfirmPageReversionView
# 需要导入模块: from wagtail.tests.testapp.models import SimplePage [as 别名]
# 或者: from wagtail.tests.testapp.models.SimplePage import save_revision [as 别名]
class TestConfirmPageReversionView(TestCase, WagtailTestUtils):
def setUp(self):
# Login.
self.user = self.login()
# Find root page.
self.root_page = Page.objects.get(id=2)
# Add child page.
self.child_page = SimplePage(
title = 'Test Page',
slug = 'test-page',
)
self.root_page.add_child(instance=self.child_page)
# Create revisions.
for i in range(20):
self.child_page.save_revision(
user = self.user,
submitted_for_moderation = False,
approved_go_live_at = None
)
def get_url(self):
return reverse(
'wagtailrollbacks:confirm_page_reversion',
args=(self.child_page.get_latest_revision().id,)
)
def get_get_permission_denied(self):
self.client.logout()
with self.assertRaises(PermissionDenied):
self.client.get(self.get_url())
def test_page_is_locked(self):
self.child_page.locked = True
Page.objects.filter(pk=self.child_page.pk).update(locked=True)
response = self.client.get(self.get_url())
self.assertRedirects(
response,
reverse('wagtailadmin_pages:edit', args=(self.child_page.id,))
)
def test_get(self):
response = self.client.get(self.get_url())
self.assertTemplateUsed(
response,
'wagtailrollbacks/pages/confirm_reversion.html'
)
def test_post_draft(self):
response = self.client.post(self.get_url(), {'fake': 'data'})
self.assertRedirects(
response,
reverse('wagtailadmin_explore', args=(self.child_page.get_parent().id,))
)
def test_post_publish(self):
post_data = {'action-publish': True}
response = self.client.post(self.get_url(), post_data)
self.assertRedirects(
response,
reverse('wagtailadmin_explore', args=(self.child_page.get_parent().id,))
)
def test_post_submit(self):
post_data = {'action-submit': True}
response = self.client.post(self.get_url(), post_data)
self.assertRedirects(
response,
reverse('wagtailadmin_explore', args=(self.child_page.get_parent().id,))
)
示例9: TestModerationList
# 需要导入模块: from wagtail.tests.testapp.models import SimplePage [as 别名]
# 或者: from wagtail.tests.testapp.models.SimplePage import save_revision [as 别名]
class TestModerationList(TestCase, WagtailTestUtils):
"""Test moderation list rendered by `wagtailadmin_home` view"""
def setUp(self):
# Create a submitter
submitter = get_user_model().objects.create_user(
username='submitter',
email='[email protected]',
password='password',
)
# Find root page
self.root_page = Page.objects.get(id=2)
# Create a page
self.page = SimplePage(
title='Wagtail, the powerful CMS for modern websites',
slug='wagtail',
content='Fast, elegant, open source',
)
self.root_page.add_child(instance=self.page)
# Submit it for moderation
self.page.save_revision(user=submitter, submitted_for_moderation=True)
# Create a revision
self.revision = self.page.get_latest_revision()
self.edit_page_url = reverse('wagtailadmin_pages:edit', args=(self.revision.page.id, ))
self.preview_page_url = reverse('wagtailadmin_pages:preview_for_moderation', args=(self.revision.id, ))
def login_as_moderator_without_edit(self):
# Create moderators group without edit permissions
moderators_group = Group.objects.create(name='Moderators without edit')
admin_permission = Permission.objects.get(
content_type__app_label='wagtailadmin',
codename='access_admin'
)
moderators_group.permissions.add(admin_permission)
# Create group permissions
GroupPagePermission.objects.create(
group=moderators_group,
page=self.root_page,
permission_type='publish',
)
# Create a moderator without edit permissions
moderator = get_user_model().objects.create_user(
username='moderator',
email='[email protected]',
password='password'
)
moderator.groups.add(moderators_group)
self.login(moderator)
def get(self):
return self.client.get(reverse('wagtailadmin_home'))
def test_edit_page(self):
# Login as moderator
self.login()
response = self.get()
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, 'wagtailadmin/home.html')
# Check response
self.assertContains(response, self.edit_page_url, count=2)
def test_preview_for_moderation(self):
# Login as moderator without edit permissions
self.login_as_moderator_without_edit()
response = self.get()
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, 'wagtailadmin/home.html')
# Check response
self.assertContains(response, self.preview_page_url, count=2)
self.assertNotContains(response, self.edit_page_url)