test_requirements.py 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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(Fred, topic_locked, default_groups):
  36. request = SimpleNamespace(view_args={'topic_id': topic_locked.id})
  37. Fred.primary_group = default_groups[2]
  38. assert not r.CanEditPost(Fred, request)
  39. def test_Fred_cannot_reply_to_locked_topic(Fred, topic_locked):
  40. request = SimpleNamespace(view_args={'topic_id': topic_locked.id})
  41. assert not r.CanPostReply(Fred, request)
  42. def test_Fred_cannot_delete_others_post(Fred, topic):
  43. request = SimpleNamespace(view_args={'post_id': topic.first_post.id})
  44. assert not r.CanDeletePost(Fred, request)
  45. def test_Mod_can_delete_others_post(moderator_user, topic):
  46. request = SimpleNamespace(view_args={'post_id': topic.first_post.id})
  47. assert r.CanDeletePost(moderator_user, request)