import pytest
from werkzeug import exceptions
from flask_login import login_user
from flaskbb.message import views, models
def test_message_not_logged_in(application):
""" check for redirect if not logged in """
view = views.Inbox.as_view('inbox')
with application.test_request_context():
resp = view()
assert resp.status != 302
def test_message_inbox(application, default_settings, conversation_msgs, user):
view = views.Inbox()
with application.test_request_context():
login_user(user)
resp = view.get()
assert '' in resp
assert 'test_normal' in resp
def test_message_view_conversation(
application, default_settings,
conversation_msgs, user):
with application.test_request_context():
login_user(user)
view = views.ViewConversation()
resp = view.get(conversation_msgs.id)
assert conversation_msgs.first_message.message in resp
def test_message_trash_restore_conversation(
application, default_settings,
conversation_msgs, user):
move = views.MoveConversation()
restore = views.RestoreConversation()
with application.test_request_context():
login_user(user)
resp = move.post(conversation_msgs.id)
assert resp.status != 302
assert conversation_msgs.trash is True
resp = restore.post(conversation_msgs.id)
assert conversation_msgs.trash is False
def test_message_delete_conversation(
application, default_settings,
conversation_msgs, user):
view = views.DeleteConversation()
with application.test_request_context():
login_user(user)
resp = view.post(conversation_msgs.id)
assert resp.status != 302
def test_message_trash(application, default_settings, user):
# FIXME more sophisticated tests required
view = views.TrashedMessages()
with application.test_request_context():
login_user(user)
resp = view.get()
assert 'No conversations found' in resp
def test_message_drafts(application, default_settings, user):
# FIXME more sophisticated tests required
view = views.DraftMessages()
with application.test_request_context():
login_user(user)
resp = view.get()
assert 'No conversations found' in resp
def test_message_sent(application, default_settings, user):
# FIXME more sophisticated tests required
view = views.SentMessages()
with application.test_request_context():
login_user(user)
resp = view.get()
assert 'No conversations found' in resp
def test_message_view_raw(
application, conversation_msgs,
default_settings, user, moderator_user):
view = views.RawMessage()
with application.test_request_context():
login_user(user)
resp = view.get(conversation_msgs.last_message.id)
assert conversation_msgs.last_message.message in resp
# same view should raise a 404 for a different user
login_user(moderator_user)
with pytest.raises(exceptions.NotFound):
resp = view.get(conversation_msgs.last_message.id)