test_admin_views.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. from django.contrib.auth import get_user_model
  2. from django.core.urlresolvers import reverse
  3. from django.test import TestCase
  4. from misago.admin.testutils import admin_login
  5. from misago.admin.views import get_protected_namespace
  6. from misago.conf.models import SettingsGroup
  7. class AdminSettingsViewsTests(TestCase):
  8. def setUp(self):
  9. User = get_user_model()
  10. User.objects.create_superuser('Bob', 'bob@test.com', 'Pass.123')
  11. admin_login(self.client, 'Bob', 'Pass.123')
  12. def test_link_registered(self):
  13. """admin index view contains settings link"""
  14. response = self.client.get(reverse('misago:admin:index'))
  15. self.assertIn(reverse('misago:admin:settings:index'), response.content)
  16. def test_groups_list_view(self):
  17. """settings group view returns 200 and contains all settings groups"""
  18. response = self.client.get(reverse('misago:admin:settings:index'))
  19. self.assertEqual(response.status_code, 200)
  20. for group in SettingsGroup.objects.all():
  21. group_link = reverse('misago:admin:settings:group',
  22. kwargs={'group_key': group.key})
  23. self.assertIn(group.name, response.content)
  24. self.assertIn(group_link, response.content)
  25. def test_groups_views(self):
  26. """
  27. each settings group view returns 200 and contains all settings in group
  28. """
  29. for group in SettingsGroup.objects.all():
  30. group_link = reverse('misago:admin:settings:group',
  31. kwargs={'group_key': group.key})
  32. response = self.client.get(group_link)
  33. self.assertEqual(response.status_code, 200)
  34. self.assertIn(group.name, response.content)
  35. values = {}
  36. for setting in group.setting_set.all():
  37. values[setting.setting] = setting.dry_value
  38. self.assertIn(setting.name, response.content)
  39. post_response = self.client.post(group_link, data=values)
  40. self.assertEqual(post_response.status_code, 302)