Exemple #1
0
def test_message_conversation_validation(mocker, session_user, session_user2):
    """Ensure a new message conversation goes through expected validation."""
    mocker.spy(MessageConversationSchema, "load")
    mocker.spy(SimpleString, "_validate")
    mocker.spy(Markdown, "_validate")

    MessageConversation(session_user, session_user2, "Subject", "Message")

    assert MessageConversationSchema.load.called
    assert SimpleString._validate.call_args[0][1] == "Subject"
    assert Markdown._validate.call_args[0][1] == "Message"
Exemple #2
0
def test_message_conversation_validation(mocker, session_user, session_user2):
    """Ensure a new message conversation goes through expected validation."""
    mocker.spy(MessageConversationSchema, 'load')
    mocker.spy(SimpleString, '_validate')
    mocker.spy(Markdown, '_validate')

    MessageConversation(session_user, session_user2, 'Subject', 'Message')

    assert MessageConversationSchema.load.called
    assert SimpleString._validate.call_args[0][1] == 'Subject'
    assert Markdown._validate.call_args[0][1] == 'Message'
Exemple #3
0
def post_user_message(request: Request, subject: str,
                      markdown: str) -> HTTPFound:
    """Start a new message conversation with a user."""
    new_conversation = MessageConversation(
        sender=request.user,
        recipient=request.context,
        subject=subject,
        markdown=markdown,
    )
    request.db_session.add(new_conversation)

    user_url = request.route_url("user", username=request.context.username)
    raise HTTPFound(location=user_url)
Exemple #4
0
def conversation(db, session_user, session_user2):
    """Create a message conversation and delete it as teardown."""
    new_conversation = MessageConversation(session_user, session_user2,
                                           "Subject", "Message")
    db.add(new_conversation)
    db.commit()

    yield new_conversation

    # delete any replies that were added to the conversation
    for reply in new_conversation.replies:
        db.delete(reply)

    db.delete(new_conversation)
    db.commit()
Exemple #5
0
def _send_welcome_message(recipient: User, request: Request) -> None:
    """Send the welcome message if a sender is configured in the INI."""
    sender_username = request.registry.settings.get(
        "tildes.welcome_message_sender")
    if not sender_username:
        return

    sender = request.query(User).filter(
        User.username == sender_username).one_or_none()
    if not sender:
        return

    welcome_message = MessageConversation(sender, recipient,
                                          WELCOME_MESSAGE_SUBJECT,
                                          WELCOME_MESSAGE_TEXT)
    request.db_session.add(welcome_message)