clone / tests /unit /test_messages.py
tanbushi's picture
update
82f9be0
"""
消息结构测试
"""
import sys
import os
sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
import unittest
from datetime import datetime
from src.core import Message
class TestMessage(unittest.TestCase):
"""测试Message类"""
def test_message_creation(self):
"""测试消息创建"""
timestamp = datetime.now()
message = Message(
sender_id="sender-001",
receiver_id="receiver-001",
timestamp=timestamp,
content="Test message content"
)
self.assertEqual(message.sender_id, "sender-001")
self.assertEqual(message.receiver_id, "receiver-001")
self.assertEqual(message.timestamp, timestamp)
self.assertEqual(message.content, "Test message content")
def test_message_to_dict(self):
"""测试消息转换为字典"""
timestamp = datetime.now()
message = Message(
sender_id="sender-001",
receiver_id="receiver-001",
timestamp=timestamp,
content="Test message"
)
message_dict = message.to_dict()
self.assertEqual(message_dict['sender_id'], "sender-001")
self.assertEqual(message_dict['receiver_id'], "receiver-001")
self.assertEqual(message_dict['timestamp'], timestamp.isoformat())
self.assertEqual(message_dict['content'], "Test message")
def test_message_from_dict(self):
"""测试从字典创建消息"""
timestamp = datetime.now()
message_dict = {
'sender_id': 'sender-001',
'receiver_id': 'receiver-001',
'timestamp': timestamp.isoformat(),
'content': 'Test message'
}
message = Message.from_dict(message_dict)
self.assertEqual(message.sender_id, "sender-001")
self.assertEqual(message.receiver_id, "receiver-001")
self.assertEqual(message.content, "Test message")
# 比较datetime对象可能会有毫秒级差异,所以转换为字符串比较
self.assertEqual(message.timestamp.isoformat(), timestamp.isoformat())
if __name__ == "__main__":
unittest.main()