test_banadmin_views.py 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. from datetime import date
  2. from django.core.urlresolvers import reverse
  3. from misago.admin.testutils import AdminTestCase
  4. from misago.users.models import Ban
  5. class BanAdminViewsTests(AdminTestCase):
  6. def test_link_registered(self):
  7. """admin nav contains bans link"""
  8. response = self.client.get(
  9. reverse('misago:admin:users:accounts:index'))
  10. response = self.client.get(response['location'])
  11. self.assertIn(reverse('misago:admin:users:bans:index'),
  12. response.content)
  13. def test_list_view(self):
  14. """bans list view returns 200"""
  15. response = self.client.get(reverse('misago:admin:users:bans:index'))
  16. self.assertEqual(response.status_code, 302)
  17. response = self.client.get(response['location'])
  18. self.assertEqual(response.status_code, 200)
  19. def test_new_view(self):
  20. """new ban view has no showstoppers"""
  21. response = self.client.get(
  22. reverse('misago:admin:users:bans:new'))
  23. self.assertEqual(response.status_code, 200)
  24. response = self.client.post(
  25. reverse('misago:admin:users:bans:new'),
  26. data={
  27. 'test': '1',
  28. 'banned_value': 'test@test.com',
  29. 'user_message': 'Lorem ipsum dolor met',
  30. 'staff_message': 'Sit amet elit',
  31. 'valid_until': '12-24-%s' % unicode(date.today().year + 1),
  32. })
  33. self.assertEqual(response.status_code, 302)
  34. response = self.client.get(reverse('misago:admin:users:bans:index'))
  35. response = self.client.get(response['location'])
  36. self.assertEqual(response.status_code, 200)
  37. self.assertIn('test@test.com', response.content)
  38. def test_edit_view(self):
  39. """edit ban view has no showstoppers"""
  40. self.client.post(
  41. reverse('misago:admin:users:bans:new'),
  42. data={
  43. 'test': '0',
  44. 'banned_value': 'Admin',
  45. })
  46. test_ban = Ban.objects.get(banned_value='admin')
  47. response = self.client.post(
  48. reverse('misago:admin:users:bans:edit',
  49. kwargs={'ban_id': test_ban.pk}),
  50. data={
  51. 'test': '1',
  52. 'banned_value': 'test@test.com',
  53. 'user_message': 'Lorem ipsum dolor met',
  54. 'staff_message': 'Sit amet elit',
  55. 'valid_until': '12-24-%s' % unicode(date.today().year + 1),
  56. })
  57. self.assertEqual(response.status_code, 302)
  58. response = self.client.get(reverse('misago:admin:users:bans:index'))
  59. response = self.client.get(response['location'])
  60. self.assertEqual(response.status_code, 200)
  61. self.assertIn('test@test.com', response.content)
  62. def test_delete_view(self):
  63. """delete ban view has no showstoppers"""
  64. self.client.post(
  65. reverse('misago:admin:users:bans:new'),
  66. data={
  67. 'test': '0',
  68. 'banned_value': 'TestBan',
  69. })
  70. test_ban = Ban.objects.get(banned_value='testban')
  71. response = self.client.post(
  72. reverse('misago:admin:users:bans:delete',
  73. kwargs={'ban_id': test_ban.pk}))
  74. self.assertEqual(response.status_code, 302)
  75. response = self.client.get(reverse('misago:admin:users:bans:index'))
  76. self.client.get(response['location'])
  77. response = self.client.get(response['location'])
  78. self.assertEqual(response.status_code, 200)
  79. self.assertTrue(test_ban.banned_value not in response.content)