test_requirements.py 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. from flaskbb.utils import requirements as r
  2. from flaskbb.utils.datastructures import SimpleNamespace
  3. def test_Fred_IsNotAdmin(Fred):
  4. assert not r.IsAdmin(Fred, None)
  5. def test_IsAdmin_with_admin(admin_user):
  6. assert r.IsAdmin(admin_user, None)
  7. def test_IsAtleastModerator_with_mod(moderator_user):
  8. assert r.IsAtleastModerator(moderator_user, None)
  9. def test_IsAtleastModerator_with_supermod(super_moderator_user):
  10. assert r.IsAtleastModerator(super_moderator_user, None)
  11. def test_IsAtleastModerator_with_admin(admin_user):
  12. assert r.IsAtleastModerator(admin_user, None)
  13. def test_IsAtleastSuperModerator_with_not_smod(moderator_user):
  14. assert not r.IsAtleastSuperModerator(moderator_user, None)
  15. def test_CanBanUser_with_admin(admin_user):
  16. assert r.CanBanUser(admin_user, None)
  17. def test_CanBanUser_with_smod(super_moderator_user):
  18. assert r.CanBanUser(super_moderator_user, None)
  19. def test_CanBanUser_with_mod(moderator_user):
  20. assert r.CanBanUser(moderator_user, None)
  21. def test_Fred_CannotBanUser(Fred):
  22. assert not r.CanBanUser(Fred, None)
  23. def test_CanEditTopic_with_member(user, topic):
  24. request = SimpleNamespace(view_args={'topic_id': topic.id})
  25. assert r.CanEditPost(user, request)
  26. def test_Fred_cannot_edit_other_members_post(user, Fred, topic):
  27. request = SimpleNamespace(view_args={'topic_id': topic.id})
  28. assert not r.CanEditPost(Fred, request)
  29. def test_Fred_CannotEditLockedTopic(Fred, topic_locked):
  30. request = SimpleNamespace(view_args={'topic_id': topic_locked.id})
  31. assert not r.CanEditPost(Fred, request)
  32. def test_Moderator_in_Forum_CanEditLockedTopic(moderator_user, topic_locked):
  33. request = SimpleNamespace(view_args={'topic_id': topic_locked.id})
  34. assert r.CanEditPost(moderator_user, request)
  35. def test_FredIsAMod_but_still_cant_edit_topic_in_locked_forum(
  36. Fred, topic_locked, default_groups):
  37. request = SimpleNamespace(view_args={'topic_id': topic_locked.id})
  38. Fred.primary_group = default_groups[2]
  39. assert not r.CanEditPost(Fred, request)
  40. def test_Fred_cannot_reply_to_locked_topic(Fred, topic_locked):
  41. request = SimpleNamespace(view_args={'topic_id': topic_locked.id})
  42. assert not r.CanPostReply(Fred, request)
  43. def test_Fred_cannot_delete_others_post(Fred, topic):
  44. request = SimpleNamespace(view_args={'post_id': topic.first_post.id})
  45. assert not r.CanDeletePost(Fred, request)
  46. def test_Mod_can_delete_others_post(moderator_user, topic):
  47. request = SimpleNamespace(view_args={'post_id': topic.first_post.id})
  48. assert r.CanDeletePost(moderator_user, request)