test_roleadmin_views.py 3.7 KB

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