test_permissions.py 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. """
  2. This test will use the default permissions found in
  3. flaskbb.utils.populate
  4. """
  5. from flaskbb.utils.permissions import *
  6. def test_moderator_permissions_in_forum(
  7. forum, moderator_user, topic, topic_moderator):
  8. """Test the moderator permissions in a forum where the user is a
  9. moderator.
  10. """
  11. assert moderator_user in forum.moderators
  12. assert can_post_reply(moderator_user, forum)
  13. assert can_post_topic(moderator_user, forum)
  14. assert can_edit_post(moderator_user, topic.user_id, forum)
  15. assert can_moderate(moderator_user, forum)
  16. assert can_delete_post(moderator_user, topic.user_id, forum)
  17. assert can_delete_topic(moderator_user, topic.user_id, forum)
  18. def test_moderator_permissions_without_forum(
  19. forum, moderator_user, topic, topic_moderator):
  20. """Test the moderator permissions in a forum where the user is not a
  21. moderator.
  22. """
  23. forum.moderators.remove(moderator_user)
  24. assert not moderator_user in forum.moderators
  25. assert not can_moderate(moderator_user, forum)
  26. assert can_post_reply(moderator_user, forum)
  27. assert can_post_topic(moderator_user, forum)
  28. assert not can_edit_post(moderator_user, topic.user_id, forum)
  29. assert not can_delete_post(moderator_user, topic.user_id, forum)
  30. assert not can_delete_topic(moderator_user, topic.user_id, forum)
  31. # Test with own topic
  32. assert can_delete_post(moderator_user, topic_moderator.user_id, forum)
  33. assert can_delete_topic(moderator_user, topic_moderator.user_id, forum)
  34. assert can_edit_post(moderator_user, topic_moderator.user_id, forum)
  35. # Test moderator permissions
  36. assert can_edit_user(moderator_user)
  37. assert can_ban_user(moderator_user)
  38. def test_normal_permissions(forum, user, topic):
  39. """Test the permissions for a normal user."""
  40. assert not can_moderate(user, forum)
  41. assert can_post_reply(user, forum)
  42. assert can_post_topic(user, forum)
  43. assert can_edit_post(user, topic.user_id, forum)
  44. assert not can_delete_post(user, topic.user_id, forum)
  45. assert not can_delete_topic(user, topic.user_id, forum)
  46. assert not can_edit_user(user)
  47. assert not can_ban_user(user)
  48. def test_admin_permissions(forum, admin_user, topic):
  49. """Test the permissions for a admin user."""
  50. assert can_moderate(admin_user, forum)
  51. assert can_post_reply(admin_user, forum)
  52. assert can_post_topic(admin_user, forum)
  53. assert can_edit_post(admin_user, topic.user_id, forum)
  54. assert can_delete_post(admin_user, topic.user_id, forum)
  55. assert can_delete_topic(admin_user, topic.user_id, forum)
  56. assert can_edit_user(admin_user)
  57. assert can_ban_user(admin_user)
  58. def test_super_moderator_permissions(forum, super_moderator_user, topic):
  59. """Test the permissions for a super moderator user."""
  60. assert can_moderate(super_moderator_user, forum)
  61. assert can_post_reply(super_moderator_user, forum)
  62. assert can_post_topic(super_moderator_user, forum)
  63. assert can_edit_post(super_moderator_user, topic.user_id, forum)
  64. assert can_delete_post(super_moderator_user, topic.user_id, forum)
  65. assert can_delete_topic(super_moderator_user, topic.user_id, forum)
  66. assert can_edit_user(super_moderator_user)
  67. assert can_ban_user(super_moderator_user)