test_message_views.py 3.1 KB

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