test_roleadmin_views.py 3.6 KB

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