123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- from datetime import datetime, timedelta
- from django.urls import reverse
- from misago.admin.testutils import AdminTestCase
- from misago.users.models import Ban
- class BanAdminViewsTests(AdminTestCase):
- def test_link_registered(self):
- """admin nav contains bans link"""
- response = self.client.get(reverse('misago:admin:users:accounts:index'))
- response = self.client.get(response['location'])
- self.assertContains(response, reverse('misago:admin:users:bans:index'))
- def test_list_view(self):
- """bans list view returns 200"""
- response = self.client.get(reverse('misago:admin:users:bans:index'))
- self.assertEqual(response.status_code, 302)
- response = self.client.get(response['location'])
- self.assertEqual(response.status_code, 200)
- def test_mass_delete(self):
- """adminview deletes multiple bans"""
- test_date = datetime.now() + timedelta(days=180)
- for i in range(10):
- response = self.client.post(
- reverse('misago:admin:users:bans:new'),
- data={
- 'check_type': '1',
- 'banned_value': '%stest@test.com' % i,
- 'user_message': 'Lorem ipsum dolor met',
- 'staff_message': 'Sit amet elit',
- 'expires_on': test_date.isoformat(),
- }
- )
- self.assertEqual(response.status_code, 302)
- self.assertEqual(Ban.objects.count(), 10)
- bans_pks = []
- for ban in Ban.objects.iterator():
- bans_pks.append(ban.pk)
- response = self.client.post(
- reverse('misago:admin:users:bans:index'),
- data={'action': 'delete',
- 'selected_items': bans_pks}
- )
- self.assertEqual(response.status_code, 302)
- self.assertEqual(Ban.objects.count(), 0)
- def test_new_view(self):
- """new ban view has no showstoppers"""
- response = self.client.get(reverse('misago:admin:users:bans:new'))
- self.assertEqual(response.status_code, 200)
- test_date = datetime.now() + timedelta(days=180)
- response = self.client.post(
- reverse('misago:admin:users:bans:new'),
- data={
- 'check_type': '1',
- 'banned_value': 'test@test.com',
- 'user_message': 'Lorem ipsum dolor met',
- 'staff_message': 'Sit amet elit',
- 'expires_on': test_date.isoformat(),
- }
- )
- self.assertEqual(response.status_code, 302)
- response = self.client.get(reverse('misago:admin:users:bans:index'))
- response = self.client.get(response['location'])
- self.assertEqual(response.status_code, 200)
- self.assertContains(response, 'test@test.com')
- def test_edit_view(self):
- """edit ban view has no showstoppers"""
- self.client.post(
- reverse('misago:admin:users:bans:new'),
- data={
- 'check_type': '0',
- 'banned_value': 'Admin',
- }
- )
- test_ban = Ban.objects.get(banned_value='admin')
- form_link = reverse('misago:admin:users:bans:edit', kwargs={'pk': test_ban.pk})
- response = self.client.post(
- form_link,
- data={
- 'check_type': '1',
- 'banned_value': 'test@test.com',
- 'user_message': 'Lorem ipsum dolor met',
- 'staff_message': 'Sit amet elit',
- 'expires_on': '',
- }
- )
- self.assertEqual(response.status_code, 302)
- response = self.client.get(reverse('misago:admin:users:bans:index'))
- response = self.client.get(response['location'])
- self.assertEqual(response.status_code, 200)
- self.assertContains(response, 'test@test.com')
- def test_delete_view(self):
- """delete ban view has no showstoppers"""
- self.client.post(
- reverse('misago:admin:users:bans:new'),
- data={
- 'check_type': '0',
- 'banned_value': 'TestBan',
- }
- )
- test_ban = Ban.objects.get(banned_value='testban')
- response = self.client.post(
- reverse('misago:admin:users:bans:delete', kwargs={'pk': test_ban.pk})
- )
- self.assertEqual(response.status_code, 302)
- response = self.client.get(reverse('misago:admin:users:bans:index'))
- self.client.get(response['location'])
- response = self.client.get(response['location'])
- self.assertEqual(response.status_code, 200)
- self.assertNotContains(response, test_ban.banned_value)
|