test_permissions.py 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  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. moderator_user.permissions = moderator_user.get_permissions()
  12. assert moderator_user in forum.moderators
  13. assert can_post_reply(moderator_user, forum)
  14. assert can_post_topic(moderator_user, forum)
  15. assert can_edit_post(moderator_user, topic.user_id, forum)
  16. assert can_moderate(moderator_user, forum)
  17. assert can_delete_post(moderator_user, topic.user_id, forum)
  18. assert can_delete_topic(moderator_user, topic.user_id, forum)
  19. assert can_lock_topic(moderator_user, forum)
  20. assert can_merge_topic(moderator_user, forum)
  21. assert can_move_topic(moderator_user, forum)
  22. def test_moderator_permissions_without_forum(
  23. forum, moderator_user, topic, topic_moderator):
  24. """Test the moderator permissions in a forum where the user is not a
  25. moderator.
  26. """
  27. forum.moderators.remove(moderator_user)
  28. moderator_user.permissions = moderator_user.get_permissions()
  29. assert not moderator_user in forum.moderators
  30. assert not can_moderate(moderator_user, forum)
  31. assert can_post_reply(moderator_user, forum)
  32. assert can_post_topic(moderator_user, forum)
  33. assert not can_edit_post(moderator_user, topic.user_id, forum)
  34. assert not can_delete_post(moderator_user, topic.user_id, forum)
  35. assert not can_delete_topic(moderator_user, topic.user_id, forum)
  36. assert not can_lock_topic(moderator_user, forum)
  37. assert not can_merge_topic(moderator_user, forum)
  38. assert not can_move_topic(moderator_user, forum)
  39. # Test with own topic
  40. assert can_delete_post(moderator_user, topic_moderator.user_id, forum)
  41. assert can_delete_topic(moderator_user, topic_moderator.user_id, forum)
  42. assert can_edit_post(moderator_user, topic_moderator.user_id, forum)
  43. def test_normal_permissions(forum, user, topic):
  44. """Test the permissions for a normal user."""
  45. user.permissions = user.get_permissions()
  46. assert not can_moderate(user, forum)
  47. assert can_post_reply(user, forum)
  48. assert can_post_topic(user, forum)
  49. assert can_edit_post(user, topic.user_id, forum)
  50. assert not can_delete_post(user, topic.user_id, forum)
  51. assert not can_delete_topic(user, topic.user_id, forum)
  52. assert not can_lock_topic(user, forum)
  53. assert not can_merge_topic(user, forum)
  54. assert not can_move_topic(user, forum)
  55. def test_admin_permissions(forum, admin_user, topic):
  56. """Test the permissions for a admin user."""
  57. admin_user.permissions = admin_user.get_permissions()
  58. assert can_moderate(admin_user, forum)
  59. assert can_post_reply(admin_user, forum)
  60. assert can_post_topic(admin_user, forum)
  61. assert can_edit_post(admin_user, topic.user_id, forum)
  62. assert can_delete_post(admin_user, topic.user_id, forum)
  63. assert can_delete_topic(admin_user, topic.user_id, forum)
  64. assert can_lock_topic(admin_user, forum)
  65. assert can_merge_topic(admin_user, forum)
  66. assert can_move_topic(admin_user, forum)
  67. def test_super_moderator_permissions(forum, super_moderator_user, topic):
  68. """Test the permissions for a super moderator user."""
  69. super_moderator_user.permissions = super_moderator_user.get_permissions()
  70. assert can_moderate(super_moderator_user, forum)
  71. assert can_post_reply(super_moderator_user, forum)
  72. assert can_post_topic(super_moderator_user, forum)
  73. assert can_edit_post(super_moderator_user, topic.user_id, forum)
  74. assert can_delete_post(super_moderator_user, topic.user_id, forum)
  75. assert can_delete_topic(super_moderator_user, topic.user_id, forum)
  76. assert can_lock_topic(super_moderator_user, forum)
  77. assert can_merge_topic(super_moderator_user, forum)
  78. assert can_move_topic(super_moderator_user, forum)