Added tests for unpublish view

pull/273/head
Karl Hobley 2014-05-30 14:13:43 +01:00
rodzic 90a08fffe5
commit 526cfba682
2 zmienionych plików z 72 dodań i 2 usunięć

Wyświetl plik

@ -1,4 +1,4 @@
from django.contrib.auth.models import User from django.contrib.auth.models import User, Permission
# We need to make sure that we're using the same unittest library that Django uses internally # We need to make sure that we're using the same unittest library that Django uses internally
# Otherwise, we get issues with the "SkipTest" and "ExpectedFailure" exceptions being recognised as errors # Otherwise, we get issues with the "SkipTest" and "ExpectedFailure" exceptions being recognised as errors
@ -14,7 +14,9 @@ except ImportError:
def login(client): def login(client):
# Create a user # Create a user
User.objects.create_superuser(username='test', email='test@email.com', password='password') user = User.objects.create_superuser(username='test', email='test@email.com', password='password')
# Login # Login
client.login(username='test', password='password') client.login(username='test', password='password')
return user

Wyświetl plik

@ -3,6 +3,7 @@ from wagtail.tests.models import SimplePage, EventPage
from wagtail.tests.utils import login, unittest from wagtail.tests.utils import login, unittest
from wagtail.wagtailcore.models import Page from wagtail.wagtailcore.models import Page
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.contrib.auth.models import Permission
class TestPageExplorer(TestCase): class TestPageExplorer(TestCase):
@ -271,3 +272,70 @@ class TestPageMove(TestCase):
def test_page_set_page_position(self): def test_page_set_page_position(self):
response = self.client.get(reverse('wagtailadmin_pages_set_page_position', args=(self.test_page.id, ))) response = self.client.get(reverse('wagtailadmin_pages_set_page_position', args=(self.test_page.id, )))
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
class TestPageUnpublish(TestCase):
def setUp(self):
self.user = login(self.client)
# Create a page to unpublish
root_page = Page.objects.get(id=2)
self.page = SimplePage(
title="Hello world!",
slug='hello-world',
live=True,
)
root_page.add_child(instance=self.page)
def test_unpublish_view(self):
"""
This tests that the unpublish view responds with an unpublish confirm page
"""
# Get unpublish page
response = self.client.get(reverse('wagtailadmin_pages_unpublish', args=(self.page.id, )))
# Check that the user recieved an unpublish confirm page
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, 'wagtailadmin/pages/confirm_unpublish.html')
def test_unpublish_view_invalid_page_id(self):
"""
This tests that the unpublish view returns an error if the page id is invalid
"""
# Get unpublish page
response = self.client.get(reverse('wagtailadmin_pages_unpublish', args=(12345, )))
# Check that the user recieved a 404 response
self.assertEqual(response.status_code, 404)
def test_unpublish_view_bad_permissions(self):
"""
This tests that the unpublish view doesn't allow users without unpublish permissions
"""
# 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()
# Get unpublish page
response = self.client.get(reverse('wagtailadmin_pages_unpublish', args=(self.page.id, )))
# Check that the user recieved a 403 response
self.assertEqual(response.status_code, 403)
def test_unpublish_view_post(self):
"""
This posts to the unpublish view and checks that the page was unpublished
"""
# Post to the unpublish page
response = self.client.post(reverse('wagtailadmin_pages_unpublish', args=(self.page.id, )), {
'foo': "Must post something or the view won't see this as a POST request",
})
# Check that the user was redirected
self.assertEqual(response.status_code, 302)
# Check that the page was unpublished
self.assertFalse(SimplePage.objects.get(id=self.page.id).live)