mirror of
https://github.com/Hopiu/wagtail.git
synced 2026-05-10 00:06:13 +00:00
Added tests for page locking views
This commit is contained in:
parent
a6a86d5a76
commit
31abaacb6a
1 changed files with 193 additions and 0 deletions
|
|
@ -1668,6 +1668,199 @@ class TestNotificationPreferences(TestCase, WagtailTestUtils):
|
|||
self.assertEqual(len(mail.outbox), 0)
|
||||
|
||||
|
||||
class TestLocking(TestCase, WagtailTestUtils):
|
||||
def setUp(self):
|
||||
# Find root page
|
||||
self.root_page = Page.objects.get(id=2)
|
||||
|
||||
# Login
|
||||
self.user = self.login()
|
||||
|
||||
# Create a page and submit it for moderation
|
||||
self.child_page = SimplePage(
|
||||
title="Hello world!",
|
||||
slug='hello-world',
|
||||
live=False,
|
||||
)
|
||||
self.root_page.add_child(instance=self.child_page)
|
||||
|
||||
def test_lock_post(self):
|
||||
response = self.client.post(reverse('wagtailadmin_pages_lock', args=(self.child_page.id, )))
|
||||
|
||||
# Check response
|
||||
self.assertRedirects(response, reverse('wagtailadmin_explore', args=(self.root_page.id, )))
|
||||
|
||||
# Check that the page is locked
|
||||
self.assertTrue(Page.objects.get(id=self.child_page.id).locked)
|
||||
|
||||
def test_lock_get(self):
|
||||
response = self.client.get(reverse('wagtailadmin_pages_lock', args=(self.child_page.id, )))
|
||||
|
||||
# Check response
|
||||
self.assertEqual(response.status_code, 405)
|
||||
|
||||
# Check that the page is still unlocked
|
||||
self.assertFalse(Page.objects.get(id=self.child_page.id).locked)
|
||||
|
||||
def test_lock_post_already_locked(self):
|
||||
# Lock the page
|
||||
self.child_page.locked = True
|
||||
self.child_page.save()
|
||||
|
||||
response = self.client.post(reverse('wagtailadmin_pages_lock', args=(self.child_page.id, )))
|
||||
|
||||
# Check response
|
||||
self.assertRedirects(response, reverse('wagtailadmin_explore', args=(self.root_page.id, )))
|
||||
|
||||
# Check that the page is still locked
|
||||
self.assertTrue(Page.objects.get(id=self.child_page.id).locked)
|
||||
|
||||
def test_lock_post_with_good_redirect(self):
|
||||
response = self.client.post(reverse('wagtailadmin_pages_lock', args=(self.child_page.id, )), {
|
||||
'next': reverse('wagtailadmin_pages_edit', args=(self.child_page.id, ))
|
||||
})
|
||||
|
||||
# Check response
|
||||
self.assertRedirects(response, reverse('wagtailadmin_pages_edit', args=(self.child_page.id, )))
|
||||
|
||||
# Check that the page is locked
|
||||
self.assertTrue(Page.objects.get(id=self.child_page.id).locked)
|
||||
|
||||
def test_unlock_post_with_bad_redirect(self):
|
||||
response = self.client.post(reverse('wagtailadmin_pages_lock', args=(self.child_page.id, )), {
|
||||
'next': 'http://www.google.co.uk'
|
||||
})
|
||||
|
||||
# Check response
|
||||
self.assertRedirects(response, reverse('wagtailadmin_explore', args=(self.root_page.id, )))
|
||||
|
||||
# Check that the page is locked
|
||||
self.assertTrue(page.objects.get(id=self.child_page.id).locked)
|
||||
|
||||
def test_lock_post_bad_page(self):
|
||||
response = self.client.post(reverse('wagtailadmin_pages_lock', args=(9999, )))
|
||||
|
||||
# Check response
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
# Check that the page is still unlocked
|
||||
self.assertFalse(Page.objects.get(id=self.child_page.id).locked)
|
||||
|
||||
def test_lock_post_bad_permissions(self):
|
||||
# Remove privileges from user
|
||||
self.user.is_superuser = False
|
||||
self.user.user_permissions.add(
|
||||
Permission.objects.get(content_type__app_label='wagtailadmin', codename='access_admin')
|
||||
)
|
||||
self.user.save()
|
||||
|
||||
response = self.client.post(reverse('wagtailadmin_pages_lock', args=(self.child_page.id, )))
|
||||
|
||||
# Check response
|
||||
self.assertEqual(response.status_code, 403)
|
||||
|
||||
# Check that the page is still unlocked
|
||||
self.assertFalse(Page.objects.get(id=self.child_page.id).locked)
|
||||
|
||||
def test_unlock_post(self):
|
||||
# Lock the page
|
||||
self.child_page.locked = True
|
||||
self.child_page.save()
|
||||
|
||||
response = self.client.post(reverse('wagtailadmin_pages_unlock', args=(self.child_page.id, )))
|
||||
|
||||
# Check response
|
||||
self.assertRedirects(response, reverse('wagtailadmin_explore', args=(self.root_page.id, )))
|
||||
|
||||
# Check that the page is unlocked
|
||||
self.assertFalse(Page.objects.get(id=self.child_page.id).locked)
|
||||
|
||||
def test_unlock_get(self):
|
||||
# Lock the page
|
||||
self.child_page.locked = True
|
||||
self.child_page.save()
|
||||
|
||||
response = self.client.get(reverse('wagtailadmin_pages_unlock', args=(self.child_page.id, )))
|
||||
|
||||
# Check response
|
||||
self.assertEqual(response.status_code, 405)
|
||||
|
||||
# Check that the page is still locked
|
||||
self.assertTrue(Page.objects.get(id=self.child_page.id).locked)
|
||||
|
||||
def test_unlock_post_already_unlocked(self):
|
||||
response = self.client.post(reverse('wagtailadmin_pages_unlock', args=(self.child_page.id, )))
|
||||
|
||||
# Check response
|
||||
self.assertRedirects(response, reverse('wagtailadmin_explore', args=(self.root_page.id, )))
|
||||
|
||||
# Check that the page is still unlocked
|
||||
self.assertFalse(Page.objects.get(id=self.child_page.id).locked)
|
||||
|
||||
def test_unlock_post_with_good_redirect(self):
|
||||
# Lock the page
|
||||
self.child_page.locked = True
|
||||
self.child_page.save()
|
||||
|
||||
response = self.client.post(reverse('wagtailadmin_pages_unlock', args=(self.child_page.id, )), {
|
||||
'next': reverse('wagtailadmin_pages_edit', args=(self.child_page.id, ))
|
||||
})
|
||||
|
||||
# Check response
|
||||
self.assertRedirects(response, reverse('wagtailadmin_pages_edit', args=(self.child_page.id, )))
|
||||
|
||||
# Check that the page is unlocked
|
||||
self.assertFalse(Page.objects.get(id=self.child_page.id).locked)
|
||||
|
||||
def test_unlock_post_with_bad_redirect(self):
|
||||
# Lock the page
|
||||
self.child_page.locked = True
|
||||
self.child_page.save()
|
||||
|
||||
response = self.client.post(reverse('wagtailadmin_pages_unlock', args=(self.child_page.id, )), {
|
||||
'next': 'http://www.google.co.uk'
|
||||
})
|
||||
|
||||
# Check response
|
||||
self.assertRedirects(response, reverse('wagtailadmin_explore', args=(self.root_page.id, )))
|
||||
|
||||
# Check that the page is unlocked
|
||||
self.assertFalse(Page.objects.get(id=self.child_page.id).locked)
|
||||
|
||||
def test_unlock_post_bad_page(self):
|
||||
# Lock the page
|
||||
self.child_page.locked = True
|
||||
self.child_page.save()
|
||||
|
||||
response = self.client.post(reverse('wagtailadmin_pages_unlock', args=(9999, )))
|
||||
|
||||
# Check response
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
# Check that the page is still locked
|
||||
self.assertTrue(Page.objects.get(id=self.child_page.id).locked)
|
||||
|
||||
def test_unlock_post_bad_permissions(self):
|
||||
# Remove privileges from user
|
||||
self.user.is_superuser = False
|
||||
self.user.user_permissions.add(
|
||||
Permission.objects.get(content_type__app_label='wagtailadmin', codename='access_admin')
|
||||
)
|
||||
self.user.save()
|
||||
|
||||
# Lock the page
|
||||
self.child_page.locked = True
|
||||
self.child_page.save()
|
||||
|
||||
response = self.client.post(reverse('wagtailadmin_pages_unlock', args=(self.child_page.id, )))
|
||||
|
||||
# Check response
|
||||
self.assertEqual(response.status_code, 403)
|
||||
|
||||
# Check that the page is still locked
|
||||
self.assertTrue(Page.objects.get(id=self.child_page.id).locked)
|
||||
|
||||
|
||||
class TestIssue197(TestCase, WagtailTestUtils):
|
||||
def test_issue_197(self):
|
||||
# Find root page
|
||||
|
|
|
|||
Loading…
Reference in a new issue