|
@@ -0,0 +1,178 @@
|
|
|
+from django.core.urlresolvers import reverse
|
|
|
+from misago.admin.testutils import AdminTestCase
|
|
|
+from misago.users.models import WarningLevel
|
|
|
+
|
|
|
+
|
|
|
+class WarningsAdminViewsTests(AdminTestCase):
|
|
|
+ def test_link_registered(self):
|
|
|
+ """admin nav contains warning levels link"""
|
|
|
+ response = self.client.get(
|
|
|
+ reverse('misago:admin:users:accounts:index'))
|
|
|
+
|
|
|
+ response = self.client.get(response['location'])
|
|
|
+ self.assertIn(reverse('misago:admin:users:warnings:index'),
|
|
|
+ response.content)
|
|
|
+
|
|
|
+ def test_list_view(self):
|
|
|
+ """warning levels list view returns 200"""
|
|
|
+ response = self.client.get(
|
|
|
+ reverse('misago:admin:users:warnings:index'))
|
|
|
+
|
|
|
+ self.assertEqual(response.status_code, 200)
|
|
|
+ self.assertIn('No warning levels', response.content)
|
|
|
+
|
|
|
+ def test_new_view(self):
|
|
|
+ """new warning level view has no showstoppers"""
|
|
|
+ response = self.client.get(
|
|
|
+ reverse('misago:admin:users:warnings:new'))
|
|
|
+ self.assertEqual(response.status_code, 200)
|
|
|
+
|
|
|
+ response = self.client.post(
|
|
|
+ reverse('misago:admin:users:warnings:new'),
|
|
|
+ data={
|
|
|
+ 'name': 'Test Level',
|
|
|
+ 'description': 'Lorem ipsum dolor met',
|
|
|
+ 'length_in_minutes': 60,
|
|
|
+ 'restricts_posting_replies': '1',
|
|
|
+ 'restricts_posting_threads': '1',
|
|
|
+ })
|
|
|
+ self.assertEqual(response.status_code, 302)
|
|
|
+
|
|
|
+ response = self.client.get(reverse('misago:admin:users:warnings:index'))
|
|
|
+ self.assertEqual(response.status_code, 200)
|
|
|
+ self.assertIn('Test Level', response.content)
|
|
|
+
|
|
|
+ def test_edit_view(self):
|
|
|
+ """edit warning level view has no showstoppers"""
|
|
|
+ self.client.post(
|
|
|
+ reverse('misago:admin:users:warnings:new'),
|
|
|
+ data={
|
|
|
+ 'name': 'Test Level',
|
|
|
+ 'description': 'Lorem ipsum dolor met',
|
|
|
+ 'length_in_minutes': 60,
|
|
|
+ 'restricts_posting_replies': '1',
|
|
|
+ 'restricts_posting_threads': '1',
|
|
|
+ })
|
|
|
+
|
|
|
+ test_level = WarningLevel.objects.get(level=1)
|
|
|
+
|
|
|
+ response = self.client.get(
|
|
|
+ reverse('misago:admin:users:warnings:edit',
|
|
|
+ kwargs={'warning_id': test_level.pk}))
|
|
|
+ self.assertEqual(response.status_code, 200)
|
|
|
+ self.assertIn(test_level.name, response.content)
|
|
|
+ self.assertIn(test_level.description, response.content)
|
|
|
+
|
|
|
+ response = self.client.post(
|
|
|
+ reverse('misago:admin:users:warnings:edit',
|
|
|
+ kwargs={'warning_id': test_level.pk}),
|
|
|
+ data={
|
|
|
+ 'name': 'Edited Level',
|
|
|
+ 'description': 'Lorem ipsum dolor met',
|
|
|
+ 'length_in_minutes': 5,
|
|
|
+ 'restricts_posting_replies': '0',
|
|
|
+ 'restricts_posting_threads': '0',
|
|
|
+ })
|
|
|
+ self.assertEqual(response.status_code, 302)
|
|
|
+
|
|
|
+ test_level = WarningLevel.objects.get(level=1)
|
|
|
+ response = self.client.get(
|
|
|
+ reverse('misago:admin:users:warnings:index'))
|
|
|
+ self.assertEqual(response.status_code, 200)
|
|
|
+ self.assertIn(test_level.name, response.content)
|
|
|
+ self.assertTrue('Test Level' not in response.content)
|
|
|
+ self.assertIn("5 minutes", response.content)
|
|
|
+
|
|
|
+ def test_move_up_view(self):
|
|
|
+ """move warning level up view has no showstoppers"""
|
|
|
+ self.client.post(
|
|
|
+ reverse('misago:admin:users:warnings:new'),
|
|
|
+ data={
|
|
|
+ 'name': 'Level 1',
|
|
|
+ 'description': 'Lorem ipsum dolor met',
|
|
|
+ 'length_in_minutes': 5,
|
|
|
+ 'restricts_posting_replies': '0',
|
|
|
+ 'restricts_posting_threads': '0',
|
|
|
+ })
|
|
|
+ self.client.post(
|
|
|
+ reverse('misago:admin:users:warnings:new'),
|
|
|
+ data={
|
|
|
+ 'name': 'Level 2',
|
|
|
+ 'description': 'Lorem ipsum dolor met',
|
|
|
+ 'length_in_minutes': 5,
|
|
|
+ 'restricts_posting_replies': '0',
|
|
|
+ 'restricts_posting_threads': '0',
|
|
|
+ })
|
|
|
+
|
|
|
+ test_level_1 = WarningLevel.objects.get(level=1)
|
|
|
+ test_level_2 = WarningLevel.objects.get(level=2)
|
|
|
+
|
|
|
+ response = self.client.post(
|
|
|
+ reverse('misago:admin:users:warnings:up',
|
|
|
+ kwargs={'warning_id': test_level_2.pk}))
|
|
|
+ self.assertEqual(response.status_code, 302)
|
|
|
+
|
|
|
+ changed_level_1 = WarningLevel.objects.get(id=test_level_1.pk)
|
|
|
+ changed_level_2 = WarningLevel.objects.get(id=test_level_2.pk)
|
|
|
+ self.assertEqual(test_level_1.level, changed_level_2.level)
|
|
|
+ self.assertEqual(test_level_2.level, changed_level_1.level)
|
|
|
+
|
|
|
+ def test_move_down_view(self):
|
|
|
+ """move warning level down view has no showstoppers"""
|
|
|
+ self.client.post(
|
|
|
+ reverse('misago:admin:users:warnings:new'),
|
|
|
+ data={
|
|
|
+ 'name': 'Level 1',
|
|
|
+ 'description': 'Lorem ipsum dolor met',
|
|
|
+ 'length_in_minutes': 5,
|
|
|
+ 'restricts_posting_replies': '0',
|
|
|
+ 'restricts_posting_threads': '0',
|
|
|
+ })
|
|
|
+ self.client.post(
|
|
|
+ reverse('misago:admin:users:warnings:new'),
|
|
|
+ data={
|
|
|
+ 'name': 'Level 2',
|
|
|
+ 'description': 'Lorem ipsum dolor met',
|
|
|
+ 'length_in_minutes': 5,
|
|
|
+ 'restricts_posting_replies': '0',
|
|
|
+ 'restricts_posting_threads': '0',
|
|
|
+ })
|
|
|
+
|
|
|
+ test_level_1 = WarningLevel.objects.get(level=1)
|
|
|
+ test_level_2 = WarningLevel.objects.get(level=2)
|
|
|
+
|
|
|
+ response = self.client.post(
|
|
|
+ reverse('misago:admin:users:warnings:down',
|
|
|
+ kwargs={'warning_id': test_level_1.pk}))
|
|
|
+ self.assertEqual(response.status_code, 302)
|
|
|
+
|
|
|
+ changed_level_1 = WarningLevel.objects.get(id=test_level_1.pk)
|
|
|
+ changed_level_2 = WarningLevel.objects.get(id=test_level_2.pk)
|
|
|
+ self.assertEqual(test_level_1.level, changed_level_2.level)
|
|
|
+ self.assertEqual(test_level_2.level, changed_level_1.level)
|
|
|
+
|
|
|
+ def test_delete_view(self):
|
|
|
+ """delete warning level view has no showstoppers"""
|
|
|
+ self.client.post(
|
|
|
+ reverse('misago:admin:users:warnings:new'),
|
|
|
+ data={
|
|
|
+ 'name': 'Test Level',
|
|
|
+ 'description': 'Lorem ipsum dolor met',
|
|
|
+ 'length_in_minutes': 60,
|
|
|
+ 'restricts_posting_replies': '1',
|
|
|
+ 'restricts_posting_threads': '1',
|
|
|
+ })
|
|
|
+
|
|
|
+ test_level = WarningLevel.objects.get(level=1)
|
|
|
+
|
|
|
+ response = self.client.post(
|
|
|
+ reverse('misago:admin:users:warnings:delete',
|
|
|
+ kwargs={'warning_id': test_level.pk}))
|
|
|
+ self.assertEqual(response.status_code, 302)
|
|
|
+
|
|
|
+ self.client.get(reverse('misago:admin:users:warnings:index'))
|
|
|
+ response = self.client.get(
|
|
|
+ reverse('misago:admin:users:warnings:index'))
|
|
|
+ self.assertEqual(response.status_code, 200)
|
|
|
+
|
|
|
+ self.assertTrue(test_level.name not in response.content)
|