Advertisement
Guest User

Untitled

a guest
May 31st, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.80 KB | None | 0 0
  1. from django.core.urlresolvers import reverse
  2. from django.test import TestCase, Client
  3.  
  4. from hypothesis import given, strategies as st
  5.  
  6. from .models import User
  7.  
  8.  
  9. class ViewsTestCase(TestCase):
  10. PUBLIC_URLS = ['login', ]
  11. PRIVATE_URLS = ['dashboard', 'user_list', 'user_add', ]
  12.  
  13. def setUp(self):
  14. self.c = Client()
  15.  
  16. def assert_redirect_to_page(self, page_reverse_string, redirect_reverse_string, next_in_url=True):
  17. response = self.c.get(reverse(page_reverse_string))
  18. redirect_url = reverse(redirect_reverse_string)
  19. if next_in_url:
  20. redirect_url += "?next=" + reverse(page_reverse_string)
  21. self.assertRedirects(response, redirect_url)
  22.  
  23. def assert_200_response_code(self, page_reverse_string):
  24. response = self.c.get(reverse(page_reverse_string))
  25. self.assertEquals(response.status_code, 200)
  26.  
  27.  
  28. class AnonymousUserViewsTests(ViewsTestCase):
  29.  
  30. @given(url_name=st.sampled_from(ViewsTestCase.PUBLIC_URLS))
  31. def test_public_urls(self, url_name):
  32. self.assert_200_response_code(url_name)
  33.  
  34. @given(url_name=st.sampled_from(ViewsTestCase.PRIVATE_URLS))
  35. def test_private_urls(self, url_name):
  36. self.assert_redirect_to_page(url_name, 'login')
  37.  
  38.  
  39. class LoggedInUserViewsTests(ViewsTestCase):
  40.  
  41. def setUp(self):
  42. super(LoggedInUserViewsTests, self).setUp()
  43. self.user = User.objects.create_superuser(username='email@email.com', password='password')
  44. self.c.login(username='email@email.com', password='password')
  45.  
  46. @given(url_name=st.sampled_from(ViewsTestCase.PUBLIC_URLS))
  47. def test_public_urls(self, url_name):
  48. self.assert_200_response_code(url_name)
  49.  
  50. @given(url_name=st.sampled_from(ViewsTestCase.PRIVATE_URLS))
  51. def test_public_urls(self, url_name):
  52. self.assert_200_response_code(url_name)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement