test_forumroleadmin_views.py 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. from django.core.urlresolvers import reverse
  2. from misago.admin.testutils import AdminTestCase
  3. from misago.acl.models import ForumRole
  4. def fake_data(data_dict):
  5. data_dict.update({
  6. 'can_see_forum': 0,
  7. 'can_browse_forum': 0,
  8. })
  9. return data_dict
  10. class ForumRoleAdminViewsTests(AdminTestCase):
  11. def test_link_registered(self):
  12. """admin nav contains forum roles link"""
  13. response = self.client.get(
  14. reverse('misago:admin:permissions:forums:index'))
  15. self.assertIn(reverse('misago:admin:permissions:forums:index'),
  16. response.content)
  17. def test_list_view(self):
  18. """roles list view returns 200"""
  19. response = self.client.get(
  20. reverse('misago:admin:permissions:forums:index'))
  21. self.assertEqual(response.status_code, 200)
  22. def test_new_view(self):
  23. """new role view has no showstoppers"""
  24. response = self.client.get(
  25. reverse('misago:admin:permissions:forums:new'))
  26. self.assertEqual(response.status_code, 200)
  27. response = self.client.post(
  28. reverse('misago:admin:permissions:forums:new'),
  29. data=fake_data({'name': 'Test ForumRole'}))
  30. self.assertEqual(response.status_code, 302)
  31. test_role = ForumRole.objects.get(name='Test ForumRole')
  32. response = self.client.get(
  33. reverse('misago:admin:permissions:forums:index'))
  34. self.assertEqual(response.status_code, 200)
  35. self.assertIn(test_role.name, response.content)
  36. def test_edit_view(self):
  37. """edit role view has no showstoppers"""
  38. self.client.post(
  39. reverse('misago:admin:permissions:forums:new'),
  40. data=fake_data({'name': 'Test ForumRole'}))
  41. test_role = ForumRole.objects.get(name='Test ForumRole')
  42. response = self.client.get(
  43. reverse('misago:admin:permissions:forums:edit',
  44. kwargs={'role_id': test_role.pk}))
  45. self.assertEqual(response.status_code, 200)
  46. self.assertIn('Test ForumRole', response.content)
  47. response = self.client.post(
  48. reverse('misago:admin:permissions:forums:edit',
  49. kwargs={'role_id': test_role.pk}),
  50. data=fake_data({'name': 'Top Lel'}))
  51. self.assertEqual(response.status_code, 302)
  52. test_role = ForumRole.objects.get(name='Top Lel')
  53. response = self.client.get(
  54. reverse('misago:admin:permissions:forums:index'))
  55. self.assertEqual(response.status_code, 200)
  56. self.assertIn(test_role.name, response.content)
  57. def test_delete_view(self):
  58. """delete role view has no showstoppers"""
  59. self.client.post(
  60. reverse('misago:admin:permissions:forums:new'),
  61. data=fake_data({'name': 'Test ForumRole'}))
  62. test_role = ForumRole.objects.get(name='Test ForumRole')
  63. response = self.client.post(
  64. reverse('misago:admin:permissions:forums:delete',
  65. kwargs={'role_id': test_role.pk}))
  66. self.assertEqual(response.status_code, 302)
  67. self.client.get(reverse('misago:admin:permissions:forums:index'))
  68. response = self.client.get(
  69. reverse('misago:admin:permissions:forums:index'))
  70. self.assertEqual(response.status_code, 200)
  71. self.assertTrue(test_role.name not in response.content)