test_user_feeds_api.py 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. from django.core.urlresolvers import reverse
  2. from misago.threads import testutils
  3. from misago.threads.tests.test_threads_api import ThreadsApiTestCase
  4. class UserThreadsApiTests(ThreadsApiTestCase):
  5. def setUp(self):
  6. super(UserThreadsApiTests, self).setUp()
  7. self.api_link = reverse('misago:api:user-threads', kwargs={'pk': self.user.pk})
  8. def test_invalid_user_id(self):
  9. """api validates user id"""
  10. link = reverse('misago:api:user-threads', kwargs={'pk': 'abcd'})
  11. response = self.client.get(link)
  12. self.assertEqual(response.status_code, 404)
  13. def test_nonexistant_user_id(self):
  14. """api validates that user for id exists"""
  15. link = reverse('misago:api:user-threads', kwargs={'pk': self.user.pk + 1})
  16. response = self.client.get(link)
  17. self.assertEqual(response.status_code, 404)
  18. def test_empty_response(self):
  19. """api has no showstopers on empty response"""
  20. response = self.client.get(self.api_link)
  21. self.assertEqual(response.status_code, 200)
  22. self.assertEqual(response.json()['count'], 0)
  23. def test_user_post(self):
  24. """user post doesn't show in feed because its not first post in thread"""
  25. testutils.reply_thread(self.thread, poster=self.user)
  26. response = self.client.get(self.api_link)
  27. self.assertEqual(response.status_code, 200)
  28. self.assertEqual(response.json()['count'], 0)
  29. def test_user_thread(self):
  30. """user thread shows in feed"""
  31. thread = testutils.post_thread(category=self.category, poster=self.user)
  32. response = self.client.get(self.api_link)
  33. self.assertEqual(response.status_code, 200)
  34. self.assertEqual(response.json()['count'], 1)
  35. self.assertEqual(response.json()['results'][0]['id'], thread.first_post_id)
  36. def test_user_thread_anonymous(self):
  37. """user thread shows in feed requested by unauthenticated user"""
  38. thread = testutils.post_thread(category=self.category, poster=self.user)
  39. self.logout_user()
  40. response = self.client.get(self.api_link)
  41. self.assertEqual(response.status_code, 200)
  42. self.assertEqual(response.json()['count'], 1)
  43. self.assertEqual(response.json()['results'][0]['id'], thread.first_post_id)
  44. class UserPostsApiTests(ThreadsApiTestCase):
  45. def setUp(self):
  46. super(UserPostsApiTests, self).setUp()
  47. self.api_link = reverse('misago:api:user-posts', kwargs={'pk': self.user.pk})
  48. def test_invalid_user_id(self):
  49. """api validates user id"""
  50. link = reverse('misago:api:user-posts', kwargs={'pk': 'abcd'})
  51. response = self.client.get(link)
  52. self.assertEqual(response.status_code, 404)
  53. def test_nonexistant_user_id(self):
  54. """api validates that user for id exists"""
  55. link = reverse('misago:api:user-posts', kwargs={'pk': self.user.pk + 1})
  56. response = self.client.get(link)
  57. self.assertEqual(response.status_code, 404)
  58. def test_empty_response(self):
  59. """api has no showstopers on empty response"""
  60. response = self.client.get(self.api_link)
  61. self.assertEqual(response.status_code, 200)
  62. self.assertEqual(response.json()['count'], 0)
  63. def test_user_post(self):
  64. """user post shows in feed"""
  65. post = testutils.reply_thread(self.thread, poster=self.user)
  66. response = self.client.get(self.api_link)
  67. self.assertEqual(response.status_code, 200)
  68. self.assertEqual(response.json()['count'], 1)
  69. self.assertEqual(response.json()['results'][0]['id'], post.pk)
  70. def test_user_thread(self):
  71. """user thread shows in feed"""
  72. thread = testutils.post_thread(category=self.category, poster=self.user)
  73. response = self.client.get(self.api_link)
  74. self.assertEqual(response.status_code, 200)
  75. self.assertEqual(response.json()['count'], 1)
  76. self.assertEqual(response.json()['results'][0]['id'], thread.first_post_id)
  77. def test_user_post_anonymous(self):
  78. """user post shows in feed requested by unauthenticated user"""
  79. post = testutils.reply_thread(self.thread, poster=self.user)
  80. self.logout_user()
  81. response = self.client.get(self.api_link)
  82. self.assertEqual(response.status_code, 200)
  83. self.assertEqual(response.json()['count'], 1)
  84. self.assertEqual(response.json()['results'][0]['id'], post.pk)
  85. def test_user_thread_anonymous(self):
  86. """user thread shows in feed requested by unauthenticated user"""
  87. thread = testutils.post_thread(category=self.category, poster=self.user)
  88. self.logout_user()
  89. response = self.client.get(self.api_link)
  90. self.assertEqual(response.status_code, 200)
  91. self.assertEqual(response.json()['count'], 1)
  92. self.assertEqual(response.json()['results'][0]['id'], thread.first_post_id)