test_message_views.py 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. import pytest
  2. from werkzeug import exceptions
  3. from flask_login import login_user
  4. from flaskbb.message import views
  5. def test_message_not_logged_in(application):
  6. """ check for redirect if not logged in """
  7. view = views.Inbox.as_view('inbox')
  8. with application.test_request_context():
  9. resp = view()
  10. assert resp.status != 302
  11. def test_message_inbox(application, default_settings, conversation_msgs, user):
  12. view = views.Inbox()
  13. with application.test_request_context():
  14. login_user(user)
  15. resp = view.get()
  16. assert 'From <a href="/user/test_normal">test_normal</a>' in resp
  17. def test_message_view_conversation(
  18. application, default_settings,
  19. conversation_msgs, user):
  20. with application.test_request_context():
  21. login_user(user)
  22. view = views.ViewConversation()
  23. resp = view.get(conversation_msgs.id)
  24. assert conversation_msgs.first_message.message in resp
  25. def test_message_trash_restore_conversation(
  26. application, default_settings,
  27. conversation_msgs, user):
  28. move = views.MoveConversation()
  29. restore = views.RestoreConversation()
  30. with application.test_request_context():
  31. login_user(user)
  32. resp = move.post(conversation_msgs.id)
  33. assert resp.status != 302
  34. assert conversation_msgs.trash is True
  35. resp = restore.post(conversation_msgs.id)
  36. assert conversation_msgs.trash is False
  37. def test_message_delete_conversation(
  38. application, default_settings,
  39. conversation_msgs, user):
  40. view = views.DeleteConversation()
  41. with application.test_request_context():
  42. login_user(user)
  43. resp = view.post(conversation_msgs.id)
  44. assert resp.status != 302
  45. def test_message_trash(application, default_settings, user):
  46. # FIXME more sophisticated tests required
  47. view = views.TrashedMessages()
  48. with application.test_request_context():
  49. login_user(user)
  50. resp = view.get()
  51. assert 'No conversations found' in resp
  52. def test_message_drafts(application, default_settings, user):
  53. # FIXME more sophisticated tests required
  54. view = views.DraftMessages()
  55. with application.test_request_context():
  56. login_user(user)
  57. resp = view.get()
  58. assert 'No conversations found' in resp
  59. def test_message_sent(application, default_settings, user):
  60. # FIXME more sophisticated tests required
  61. view = views.SentMessages()
  62. with application.test_request_context():
  63. login_user(user)
  64. resp = view.get()
  65. assert 'No conversations found' in resp
  66. def test_message_view_raw(
  67. application, conversation_msgs,
  68. default_settings, user, moderator_user):
  69. view = views.RawMessage()
  70. with application.test_request_context():
  71. login_user(user)
  72. resp = view.get(conversation_msgs.last_message.id)
  73. assert conversation_msgs.last_message.message in resp
  74. # same view should raise a 404 for a different user
  75. login_user(moderator_user)
  76. with pytest.raises(exceptions.NotFound):
  77. resp = view.get(conversation_msgs.last_message.id)