Advertisement
Guest User

Untitled

a guest
Apr 4th, 2019
373
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.81 KB | None | 0 0
  1. from django.test import TestCase
  2. from django.urls import reverse
  3. from django.contrib.auth import get_user_model
  4.  
  5. from apps.diary.models import Post
  6.  
  7.  
  8. class PostModelTest(TestCase):
  9.  
  10. def setUp(self):
  11. self.user = get_user_model().objects.create_user(
  12. username='testuser', email='test@email.com',
  13. password='secretpw', first_name='John',
  14. last_name='Doe'
  15. )
  16.  
  17. self.post = Post.objects.create(
  18. title='Test Title',
  19. content='Loren ipsum dolor sit amet',
  20. author=self.user,
  21. )
  22.  
  23. def test_string_representation(self):
  24. post = Post(title='Test Title')
  25. self.assertEqual(str(post), post.title)
  26.  
  27. def test_get_absolute_url(self):
  28. self.assertEqual(self.post.get_absolute_url(), '/post/1/')
  29.  
  30. def test_post_content(self):
  31. self.assertEqual(f'{self.post.title}', 'Test Title')
  32. self.assertEqual(f'{self.post.author}', 'John Doe')
  33. self.assertEqual(f'{self.post.content}', 'Loren ipsum dolor sit amet')
  34.  
  35. def test_post_list_view(self):
  36. self.client.force_login(self.user)
  37. response = self.client.get(reverse('diary:archive'))
  38. self.assertEqual(response.status_code, 200)
  39. self.assertContains(response, 'Loren ipsum dolor sit amet')
  40. self.assertTemplateUsed(response, 'diary/post_list.html')
  41.  
  42. def test_post_detail_view(self):
  43. self.client.force_login(self.user)
  44. response = self.client.get('/post/1/')
  45. no_response = self.client.get('/post/99999999/')
  46. self.assertEqual(response.status_code, 200)
  47. self.assertEqual(no_response.status_code, 404)
  48. self.assertContains(response, 'Test Title')
  49. self.assertTemplateUsed(response, 'diary/post_detail.html')
  50.  
  51. def test_post_create_view(self):
  52. self.client.force_login(self.user)
  53. response = self.client.post(reverse('diary:add'), {
  54. 'title': 'Test Title',
  55. 'author': self.user,
  56. 'content': 'Loren ipsum'
  57. }, follow=True)
  58. self.assertEqual(response.status_code, 200)
  59. self.assertContains(response, 'Test Title')
  60. self.assertContains(response, 'Loren ipsum')
  61.  
  62.  
  63. class HomePageViewTest(TestCase):
  64.  
  65. def test_view_url_exists_at_proper_location(self):
  66. response = self.client.get('/')
  67. self.assertEqual(response.status_code, 200)
  68.  
  69. def test_view_url_by_name(self):
  70. response = self.client.get(reverse('diary:home'))
  71. self.assertEqual(response.status_code, 200)
  72.  
  73. def test_view_uses_correct_template(self):
  74. response = self.client.get('/')
  75. self.assertEqual(response.status_code, 200)
  76. self.assertTemplateUsed(response, 'diary/home.html')
  77.  
  78.  
  79. class CreatePostViewTest(TestCase):
  80.  
  81. def test_view_url_exists_at_proper_location(self):
  82. response = self.client.get('/add/')
  83. self.assertEqual(response.status_code, 200)
  84.  
  85. def test_view_url_by_name(self):
  86. response = self.client.get(reverse('diary:add'))
  87. self.assertEqual(response.status_code, 200)
  88.  
  89. def test_view_uses_correct_template(self):
  90. response = self.client.get('/add/')
  91. self.assertEqual(response.status_code, 200)
  92. self.assertTemplateUsed(response, 'diary/post_form.html')
  93.  
  94.  
  95. class ArchiveViewTest(TestCase):
  96.  
  97. def setUp(self):
  98. self.user = get_user_model().objects.create_user(
  99. username='testuser', email='test@email.com',
  100. password='secretpw', first_name='John',
  101. last_name='Doe'
  102. )
  103.  
  104. def test_view_url_exists_at_proper_location(self):
  105. self.client.force_login(self.user)
  106. response = self.client.get('/archive/')
  107. self.assertEqual(response.status_code, 200)
  108.  
  109. def test_view_url_by_name(self):
  110. self.client.force_login(self.user)
  111. response = self.client.get(reverse('diary:archive'))
  112. self.assertEqual(response.status_code, 200)
  113.  
  114. def test_view_uses_correct_template(self):
  115. self.client.force_login(self.user)
  116. response = self.client.get('/archive/')
  117. self.assertEqual(response.status_code, 200)
  118. self.assertTemplateUsed(response, 'diary/post_list.html')
  119.  
  120.  
  121. class DetailViewTest(TestCase):
  122.  
  123. def setUp(self):
  124. self.user = get_user_model().objects.create_user(
  125. username='testuser', email='test@email.com',
  126. password='secretpw', first_name='John',
  127. last_name='Doe'
  128. )
  129. self.client.force_login(self.user)
  130. self.client.post(reverse('diary:add'), {
  131. 'title': 'Test Title',
  132. 'author': self.user,
  133. 'content': 'Loren ipsum'
  134. })
  135. self.client.logout()
  136. self.user2 = get_user_model().objects.create_user(
  137. username='testuser2', email='test2@email.com',
  138. password='secretpw', first_name='John',
  139. last_name='Doe'
  140. )
  141. self.client.force_login(self.user2)
  142. self.client.post(reverse('diary:add'), {
  143. 'title': 'Test Title',
  144. 'author': self.user,
  145. 'content': 'Loren ipsum'
  146. })
  147. self.client.logout()
  148.  
  149. def test_view_url_exists_at_proper_location(self):
  150. self.client.force_login(self.user)
  151. response = self.client.get('/post/1/')
  152. self.assertEqual(response.status_code, 200)
  153.  
  154. def test_view_uses_correct_template(self):
  155. self.client.force_login(self.user)
  156. response = self.client.get('/post/1/')
  157. self.assertEqual(response.status_code, 200)
  158. self.assertTemplateUsed(response, 'diary/post_detail.html')
  159.  
  160. def test_cannot_view_others_post(self):
  161. self.client.force_login(self.user2)
  162. response = self.client.get('/post/1/')
  163. self.assertEqual(response.status_code, 404)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement