test_profile_views.py 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. from django.contrib.auth import get_user_model
  2. from django.core.urlresolvers import reverse
  3. from misago.acl.testutils import override_acl
  4. from misago.admin.testutils import AdminTestCase
  5. from misago.users.models import Ban
  6. class UserProfileViewsTests(AdminTestCase):
  7. def setUp(self):
  8. super(UserProfileViewsTests, self).setUp()
  9. self.link_kwargs = {
  10. 'user_slug': self.test_admin.slug,
  11. 'user_id': self.test_admin.pk
  12. }
  13. def test_outdated_slugs(self):
  14. """user profile view redirects to valid slig"""
  15. invalid_kwargs = {'user_slug': 'baww', 'user_id': self.test_admin.pk}
  16. response = self.client.get(reverse('misago:user_posts',
  17. kwargs=invalid_kwargs))
  18. self.assertEqual(response.status_code, 301)
  19. def test_user_posts_list(self):
  20. """user profile posts list has no showstoppers"""
  21. response = self.client.get(reverse('misago:user_posts',
  22. kwargs=self.link_kwargs))
  23. self.assertEqual(response.status_code, 200)
  24. self.assertIn('posted no messages', response.content)
  25. def test_user_threads_list(self):
  26. """user profile threads list has no showstoppers"""
  27. response = self.client.get(reverse('misago:user_threads',
  28. kwargs=self.link_kwargs))
  29. self.assertEqual(response.status_code, 200)
  30. self.assertIn('started no threads', response.content)
  31. def test_user_name_history_list(self):
  32. """user name changes history list has no showstoppers"""
  33. response = self.client.get(reverse('misago:user_name_history',
  34. kwargs=self.link_kwargs))
  35. self.assertEqual(response.status_code, 200)
  36. self.assertIn('Your username was never changed', response.content)
  37. self.test_admin.set_username('RenamedAdmin')
  38. self.test_admin.save()
  39. self.test_admin.set_username('TestAdmin')
  40. self.test_admin.save()
  41. response = self.client.get(reverse('misago:user_name_history',
  42. kwargs=self.link_kwargs))
  43. self.assertEqual(response.status_code, 200)
  44. self.assertIn("TestAdmin</strong> changed name to <strong>Renamed",
  45. response.content)
  46. def test_user_ban(self):
  47. """user ban details page has no showstoppers"""
  48. override_acl(self.test_admin, {
  49. 'misago.users.permissions.profiles': {
  50. 'can_see_ban_details': 0,
  51. },
  52. })
  53. User = get_user_model()
  54. test_user = User.objects.create_user("Bob", "bob@bob.com", 'pass.123')
  55. link_kwargs = {'user_slug': test_user.slug, 'user_id': test_user.pk}
  56. response = self.client.get(reverse('misago:user_ban',
  57. kwargs=link_kwargs))
  58. self.assertEqual(response.status_code, 404)
  59. override_acl(self.test_admin, {
  60. 'misago.users.permissions.profiles': {
  61. 'can_see_ban_details': 1,
  62. },
  63. })
  64. test_ban = Ban.objects.create(banned_value=test_user.username,
  65. user_message="User m3ss4ge.",
  66. staff_message="Staff m3ss4ge.")
  67. response = self.client.get(reverse('misago:user_ban',
  68. kwargs=link_kwargs))
  69. self.assertEqual(response.status_code, 200)
  70. self.assertIn('User m3ss4ge', response.content)
  71. self.assertIn('Staff m3ss4ge', response.content)