Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from django.core.urlresolvers import reverse
- from django.test import TestCase, Client
- from hypothesis import given, strategies as st
- from .models import User
- class ViewsTestCase(TestCase):
- PUBLIC_URLS = ['login', ]
- PRIVATE_URLS = ['dashboard', 'user_list', 'user_add', ]
- def setUp(self):
- self.c = Client()
- def assert_redirect_to_page(self, page_reverse_string, redirect_reverse_string, next_in_url=True):
- response = self.c.get(reverse(page_reverse_string))
- redirect_url = reverse(redirect_reverse_string)
- if next_in_url:
- redirect_url += "?next=" + reverse(page_reverse_string)
- self.assertRedirects(response, redirect_url)
- def assert_200_response_code(self, page_reverse_string):
- response = self.c.get(reverse(page_reverse_string))
- self.assertEquals(response.status_code, 200)
- class AnonymousUserViewsTests(ViewsTestCase):
- @given(url_name=st.sampled_from(ViewsTestCase.PUBLIC_URLS))
- def test_public_urls(self, url_name):
- self.assert_200_response_code(url_name)
- @given(url_name=st.sampled_from(ViewsTestCase.PRIVATE_URLS))
- def test_private_urls(self, url_name):
- self.assert_redirect_to_page(url_name, 'login')
- class LoggedInUserViewsTests(ViewsTestCase):
- def setUp(self):
- super(LoggedInUserViewsTests, self).setUp()
- self.user = User.objects.create_superuser(username='email@email.com', password='password')
- self.c.login(username='email@email.com', password='password')
- @given(url_name=st.sampled_from(ViewsTestCase.PUBLIC_URLS))
- def test_public_urls(self, url_name):
- self.assert_200_response_code(url_name)
- @given(url_name=st.sampled_from(ViewsTestCase.PRIVATE_URLS))
- def test_public_urls(self, url_name):
- self.assert_200_response_code(url_name)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement