test_permissions_admin_views.py 3.4 KB

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