test_roleadmin_views.py 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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.assertIn(reverse('misago:admin:permissions:users:index'), response.content)
  12. self.assertContains(response, reverse('misago:admin:permissions:users:index'))
  13. def test_list_view(self):
  14. """roles list view returns 200"""
  15. response = self.client.get(reverse('misago:admin:permissions:users:index'))
  16. self.assertEqual(response.status_code, 200)
  17. def test_new_view(self):
  18. """new role view has no showstoppers"""
  19. response = self.client.get(reverse('misago:admin:permissions:users:new'))
  20. self.assertEqual(response.status_code, 200)
  21. response = self.client.post(
  22. reverse('misago:admin:permissions:users:new'),
  23. data=fake_data({'name': 'Test Role'})
  24. )
  25. self.assertEqual(response.status_code, 302)
  26. test_role = Role.objects.get(name='Test Role')
  27. response = self.client.get(reverse('misago:admin:permissions:users:index'))
  28. self.assertEqual(response.status_code, 200)
  29. self.assertContains(response, test_role.name)
  30. def test_edit_view(self):
  31. """edit role view has no showstoppers"""
  32. self.client.post(
  33. reverse('misago:admin:permissions:users:new'),
  34. data=fake_data({'name': 'Test Role'})
  35. )
  36. test_role = Role.objects.get(name='Test Role')
  37. response = self.client.get(reverse('misago:admin:permissions:users:edit', kwargs={'pk': test_role.pk}))
  38. self.assertEqual(response.status_code, 200)
  39. self.assertContains(response, 'Test Role')
  40. response = self.client.post(
  41. reverse('misago:admin:permissions:users:edit', kwargs={'pk': test_role.pk}),
  42. data=fake_data({'name': 'Top Lel'})
  43. )
  44. self.assertEqual(response.status_code, 302)
  45. test_role = Role.objects.get(name='Top Lel')
  46. response = self.client.get(reverse('misago:admin:permissions:users:index'))
  47. self.assertEqual(response.status_code, 200)
  48. self.assertContains(response, test_role.name)
  49. def test_users_view(self):
  50. """users with this role view has no showstoppers"""
  51. response = self.client.post(
  52. reverse('misago:admin:permissions:users:new'),
  53. data=fake_data({'name': 'Test Role'})
  54. )
  55. test_role = Role.objects.get(name='Test Role')
  56. response = self.client.get(reverse('misago:admin:permissions:users:users', kwargs={'pk': test_role.pk}))
  57. self.assertEqual(response.status_code, 302)
  58. def test_delete_view(self):
  59. """delete role view has no showstoppers"""
  60. self.client.post(
  61. reverse('misago:admin:permissions:users:new'),
  62. data=fake_data({'name': 'Test Role'})
  63. )
  64. test_role = Role.objects.get(name='Test Role')
  65. response = self.client.post(reverse('misago:admin:permissions:users:delete', kwargs={'pk': test_role.pk}))
  66. self.assertEqual(response.status_code, 302)
  67. self.client.get(reverse('misago:admin:permissions:users:index'))
  68. response = self.client.get(reverse('misago:admin:permissions:users:index'))
  69. self.assertEqual(response.status_code, 200)
  70. self.assertTrue(test_role.name not in response.content)