test_roleadmin_views.py 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. from django.core.urlresolvers import reverse
  2. from misago.admin.testutils import AdminTestCase
  3. from ..models import Role
  4. from ..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(reverse('misago:admin:permissions:users:index'))
  11. self.assertContains(response, reverse('misago:admin:permissions:users:index'))
  12. def test_list_view(self):
  13. """roles list view returns 200"""
  14. response = self.client.get(reverse('misago:admin:permissions:users:index'))
  15. self.assertEqual(response.status_code, 200)
  16. def test_new_view(self):
  17. """new role view has no showstoppers"""
  18. response = self.client.get(reverse('misago:admin:permissions:users:new'))
  19. self.assertEqual(response.status_code, 200)
  20. response = self.client.post(
  21. reverse('misago:admin:permissions:users:new'),
  22. data=fake_data({'name': 'Test Role'})
  23. )
  24. self.assertEqual(response.status_code, 302)
  25. test_role = Role.objects.get(name='Test Role')
  26. response = self.client.get(reverse('misago:admin:permissions:users:index'))
  27. self.assertEqual(response.status_code, 200)
  28. self.assertContains(response, test_role.name)
  29. def test_edit_view(self):
  30. """edit role view has no showstoppers"""
  31. self.client.post(
  32. reverse('misago:admin:permissions:users:new'),
  33. data=fake_data({'name': 'Test Role'})
  34. )
  35. test_role = Role.objects.get(name='Test Role')
  36. response = self.client.get(reverse('misago:admin:permissions:users:edit', kwargs={'pk': test_role.pk}))
  37. self.assertEqual(response.status_code, 200)
  38. self.assertContains(response, 'Test Role')
  39. response = self.client.post(
  40. reverse('misago:admin:permissions:users:edit', kwargs={'pk': test_role.pk}),
  41. data=fake_data({'name': 'Top Lel'})
  42. )
  43. self.assertEqual(response.status_code, 302)
  44. test_role = Role.objects.get(name='Top Lel')
  45. response = self.client.get(reverse('misago:admin:permissions:users:index'))
  46. self.assertEqual(response.status_code, 200)
  47. self.assertContains(response, test_role.name)
  48. def test_users_view(self):
  49. """users with this role view has no showstoppers"""
  50. response = self.client.post(
  51. reverse('misago:admin:permissions:users:new'),
  52. data=fake_data({'name': 'Test Role'})
  53. )
  54. test_role = Role.objects.get(name='Test Role')
  55. response = self.client.get(reverse('misago:admin:permissions:users:users', kwargs={'pk': test_role.pk}))
  56. self.assertEqual(response.status_code, 302)
  57. def test_delete_view(self):
  58. """delete role view has no showstoppers"""
  59. self.client.post(
  60. reverse('misago:admin:permissions:users:new'),
  61. data=fake_data({'name': 'Test Role'})
  62. )
  63. test_role = Role.objects.get(name='Test Role')
  64. response = self.client.post(reverse('misago:admin:permissions:users:delete', kwargs={'pk': test_role.pk}))
  65. self.assertEqual(response.status_code, 302)
  66. # Get the page twice so no alert is renderered on second request
  67. self.client.get(reverse('misago:admin:permissions:users:index'))
  68. response = self.client.get(reverse('misago:admin:permissions:users:index'))
  69. self.assertNotContains(response, test_role.name)