Browse Source

unit tests for message models

Gordon JC Pearce 8 years ago
parent
commit
8dbb451ef9
3 changed files with 62 additions and 0 deletions
  1. 1 0
      tests/conftest.py
  2. 32 0
      tests/fixtures/message.py
  3. 29 0
      tests/unit/test_message_models.py

+ 1 - 0
tests/conftest.py

@@ -1,3 +1,4 @@
 from tests.fixtures.app import *  # noqa
 from tests.fixtures.forum import *  # noqa
 from tests.fixtures.user import *  # noqa
+from tests.fixtures.message import *  # noqa

+ 32 - 0
tests/fixtures/message.py

@@ -0,0 +1,32 @@
+import pytest
+import uuid
+from flaskbb.message.models import Conversation, Message
+
+
+@pytest.fixture
+def conversation(database, user, admin_user):
+    conversation = Conversation(
+        user_id=user.id,
+        from_user_id=user.id,
+        to_user_id=admin_user.id,
+        shared_id=uuid.uuid4()
+    )
+    conversation.save()
+    return conversation
+
+
+@pytest.fixture
+def conversation_msgs(conversation, user, admin_user):
+    message = Message(
+        user_id=user.id,
+        conversation_id=conversation.id,
+        message="First message"
+    )
+    conversation.save(message=message)
+    message = Message(
+        user_id=admin_user.id,
+        conversation_id=conversation.id,
+        message="Second message"
+    )
+    conversation.save(message=message)
+    return conversation

+ 29 - 0
tests/unit/test_message_models.py

@@ -0,0 +1,29 @@
+from flaskbb.message.models import Message, Conversation
+
+
+def test_conversation_save(conversation):
+    """ also tests message.save() since we must create a message to save """
+    message = Message(
+        user_id=conversation.user_id,
+        conversation_id=conversation.id,
+        message="Hello World"
+    )
+    conversation.save(message=message)
+    assert conversation.shared_id is not None
+
+
+def test_first_message(conversation_msgs, user):
+    conversation = conversation_msgs
+    assert conversation.first_message.message == "First message"
+
+
+def test_last_message(conversation_msgs, user):
+    conversation = conversation_msgs
+    assert conversation.last_message.message == "Second message"
+
+    message = Message(
+        user_id=user.id,
+        message="Third message"
+    )
+    conversation.save(message=message)
+    assert conversation.last_message.message != "Second message"