"""
Tests
"""
from dataclasses import dataclass
from telegram_framework.test import SimpleTestCase
from telegram_framework import chats, messages
[docs]
@dataclass(frozen=True)
class EmptyBot:
id: int = 0
def __eq__(self, other):
return self.id == other.id
[docs]
class TestChat(SimpleTestCase):
"""
TestInfo TestCase
"""
[docs]
def setUp(self):
"""
setUp test data
"""
self.chat = chats.Chat()
[docs]
def test_add_bot(self):
"""
Test add_bot: success
"""
bot = EmptyBot()
self.assertEqual(0, len(self.chat.bots))
chat = chats.add_bot(self.chat, bot)
self.assertEqual(1, len(chat.bots))
chat_bot = chat.bots[0]
self.assertEqual(bot, chat_bot)
[docs]
def test_add_message(self):
"""
Test add_message: success
"""
self.assertEmptyChat(self.chat)
message = messages.Message(text='some text', sender='some sender')
chat = chats.add_message(self.chat, message)
self.assertNotEmptyChat(chat)
[docs]
def test_add_message_in_chat(self):
"""
Test add_message: success: Message.chat is not None
"""
message = messages.Message(text='some text', sender='some sender')
chat = chats.add_message(self.chat, message)
chat_message = chats.get_last_message(chat)
self.assertChatLastMessageEqual(chat, chat_message)
self.assertEqual(chat, chat_message.chat)
[docs]
def test_get_last_message_empty(self):
"""
Test get_last_message: success: from empty chat
"""
message = chats.get_last_message(self.chat)
self.assertIsNone(message)
[docs]
def test_get_last_message(self):
"""
Test get_last_message: success
"""
message = messages.Message(text='some text', sender='some sender')
chat = chats.add_message(self.chat, message)
self.assertEqual(1, len(chat.messages))
last_message = chats.get_last_message(chat)
self.assertEqual(message, last_message)
self.assertEqual(last_message.chat, chat)
self.assertEqual(len(last_message.chat.messages), len(chat.messages))