test_forums_admin_views.py 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. from django.core.urlresolvers import reverse
  2. from misago.admin.testutils import AdminTestCase
  3. from misago.forums.models import Forum
  4. class ForumAdminViewsTests(AdminTestCase):
  5. def test_link_registered(self):
  6. """admin nav contains forums link"""
  7. response = self.client.get(reverse('misago:admin:forums:nodes:index'))
  8. self.assertIn(reverse('misago:admin:forums:nodes:index'),
  9. response.content)
  10. def test_list_view(self):
  11. """forums list view returns 200"""
  12. response = self.client.get(reverse('misago:admin:forums:nodes:index'))
  13. self.assertEqual(response.status_code, 200)
  14. self.assertIn('No forums', response.content)
  15. def test_new_view(self):
  16. """new forum view has no showstoppers"""
  17. root = Forum.objects.root_category()
  18. response = self.client.get(
  19. reverse('misago:admin:forums:nodes:new'))
  20. self.assertEqual(response.status_code, 200)
  21. response = self.client.post(
  22. reverse('misago:admin:forums:nodes:new'),
  23. data={
  24. 'name': 'Test Category',
  25. 'description': 'Lorem ipsum dolor met',
  26. 'new_parent': root.pk,
  27. 'role': 'category',
  28. 'prune_started_after': 0,
  29. 'prune_replied_after': 0,
  30. })
  31. self.assertEqual(response.status_code, 302)
  32. response = self.client.get(reverse('misago:admin:forums:nodes:index'))
  33. self.assertEqual(response.status_code, 200)
  34. self.assertIn('Test Category', response.content)
  35. test_category = Forum.objects.all_forums().get(slug='test-category')
  36. response = self.client.post(
  37. reverse('misago:admin:forums:nodes:new'),
  38. data={
  39. 'name': 'Test Forum',
  40. 'new_parent': test_category.pk,
  41. 'role': 'forum',
  42. 'copy_permissions': test_category.pk,
  43. 'prune_started_after': 0,
  44. 'prune_replied_after': 0,
  45. })
  46. self.assertEqual(response.status_code, 302)
  47. response = self.client.get(reverse('misago:admin:forums:nodes:index'))
  48. self.assertEqual(response.status_code, 200)
  49. self.assertIn('Test Forum', response.content)
  50. def test_edit_view(self):
  51. """edit forum view has no showstoppers"""
  52. private_threads = Forum.objects.private_threads()
  53. root = Forum.objects.root_category()
  54. response = self.client.get(
  55. reverse('misago:admin:forums:nodes:edit',
  56. kwargs={'forum_id': private_threads.pk}))
  57. self.assertEqual(response.status_code, 302)
  58. def test_move_views(self):
  59. """move up view has no showstoppers"""
  60. root = Forum.objects.root_category()
  61. self.client.post(reverse('misago:admin:forums:nodes:new'),
  62. data={
  63. 'name': 'Category A',
  64. 'new_parent': root.pk,
  65. 'role': 'category',
  66. 'prune_started_after': 0,
  67. 'prune_replied_after': 0,
  68. })
  69. self.client.post(reverse('misago:admin:forums:nodes:new'),
  70. data={
  71. 'name': 'Category B',
  72. 'new_parent': root.pk,
  73. 'role': 'category',
  74. 'prune_started_after': 0,
  75. 'prune_replied_after': 0,
  76. })
  77. category_a = Forum.objects.get(slug='category-a')
  78. category_b = Forum.objects.get(slug='category-b')
  79. response = self.client.post(
  80. reverse('misago:admin:forums:nodes:up',
  81. kwargs={'forum_id': category_b.pk}))
  82. self.assertEqual(response.status_code, 302)
  83. self.client.get(reverse('misago:admin:forums:nodes:index'))
  84. response = self.client.get(reverse('misago:admin:forums:nodes:index'))
  85. self.assertEqual(response.status_code, 200)
  86. position_a = response.content.find('Category A')
  87. position_b = response.content.find('Category B')
  88. self.assertTrue(position_a > position_b)
  89. response = self.client.post(
  90. reverse('misago:admin:forums:nodes:up',
  91. kwargs={'forum_id': category_b.pk}))
  92. self.assertEqual(response.status_code, 302)
  93. self.client.get(reverse('misago:admin:forums:nodes:index'))
  94. response = self.client.get(reverse('misago:admin:forums:nodes:index'))
  95. self.assertEqual(response.status_code, 200)
  96. position_a = response.content.find('Category A')
  97. position_b = response.content.find('Category B')
  98. self.assertTrue(position_a > position_b)
  99. response = self.client.post(
  100. reverse('misago:admin:forums:nodes:down',
  101. kwargs={'forum_id': category_b.pk}))
  102. self.assertEqual(response.status_code, 302)
  103. self.client.get(reverse('misago:admin:forums:nodes:index'))
  104. response = self.client.get(reverse('misago:admin:forums:nodes:index'))
  105. self.assertEqual(response.status_code, 200)
  106. position_a = response.content.find('Category A')
  107. position_b = response.content.find('Category B')
  108. self.assertTrue(position_a < position_b)
  109. response = self.client.post(
  110. reverse('misago:admin:forums:nodes:down',
  111. kwargs={'forum_id': category_b.pk}))
  112. self.assertEqual(response.status_code, 302)
  113. self.client.get(reverse('misago:admin:forums:nodes:index'))
  114. response = self.client.get(reverse('misago:admin:forums:nodes:index'))
  115. self.assertEqual(response.status_code, 200)
  116. position_a = response.content.find('Category A')
  117. position_b = response.content.find('Category B')
  118. self.assertTrue(position_a < position_b)