From b64a9b0f5a27f8a7d29256cf718d7836733d9649 Mon Sep 17 00:00:00 2001 From: palaptin <> Date: Fri, 16 Aug 2024 23:56:34 +0200 Subject: [PATCH 1/2] Updated 3 tests of test_message.py. The tests test_link_with_topics and test_link_with_reply were failing if beeing runned alone ( since message.chat.type was private). The test test_build_reply_arguments_chat_id_and_message_id was failing randomly, mostly when using pytest --lf (about 1 in 10 times). The reason was message.chat.username being set to 'username', so setting it to None will solve this problem. --- tests/test_message.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tests/test_message.py b/tests/test_message.py index 7b4fc0a45a7..1d719247707 100644 --- a/tests/test_message.py +++ b/tests/test_message.py @@ -1193,16 +1193,20 @@ def test_link_with_id(self, message, type_, id_): # The leading - for group ids/ -100 for supergroup ids isn't supposed to be in the link assert message.link == f"https://t.me/c/{3}/{message.message_id}" - def test_link_with_topics(self, message): + @pytest.mark.parametrize("type_", argvalues=[Chat.SUPERGROUP, Chat.CHANNEL]) + def test_link_with_topics(self, message, type_): message.chat.username = None message.chat.id = -1003 + message.chat.type = type_ message.is_topic_message = True message.message_thread_id = 123 assert message.link == f"https://t.me/c/3/{message.message_id}?thread=123" - def test_link_with_reply(self, message): + @pytest.mark.parametrize("type_", argvalues=[Chat.SUPERGROUP, Chat.CHANNEL]) + def test_link_with_reply(self, message, type_): message.chat.username = None message.chat.id = -1003 + message.chat.type = type_ message.reply_to_message = Message(7, self.from_user, self.date, self.chat, text="Reply") message.message_thread_id = 123 assert message.link == f"https://t.me/c/3/{message.message_id}?thread=123" @@ -1349,6 +1353,7 @@ def test_compute_quote_position_and_entities_entities(self, message): ) def test_build_reply_arguments_chat_id_and_message_id(self, message, target_chat_id, expected): message.chat.id = 3 + message.chat.username = None reply_kwargs = message.build_reply_arguments(target_chat_id=target_chat_id) assert reply_kwargs["chat_id"] == expected assert reply_kwargs["reply_parameters"].chat_id == (None if expected == 3 else 3) From d0a026e51631ebdc4472817ea956fda5898781c3 Mon Sep 17 00:00:00 2001 From: palaptin <> Date: Sat, 17 Aug 2024 08:25:14 +0200 Subject: [PATCH 2/2] Changed pytest scope of the function message from 'module' to default value 'function' Removed setting of message.chat.username to None in test 'test_build_reply_arguments_chat_id_and_message_id' since it is no longer needed. executed multiple times 'pytest -m no_req -n auto --dist=loadgroup --lf' to validate all tests in test_message.py will still pass. --- tests/test_message.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/test_message.py b/tests/test_message.py index 1d719247707..3cf237a5537 100644 --- a/tests/test_message.py +++ b/tests/test_message.py @@ -90,7 +90,7 @@ from tests.auxil.slots import mro_slots -@pytest.fixture(scope="module") +@pytest.fixture def message(bot): message = PytestMessage( message_id=TestMessageBase.id_, @@ -1353,7 +1353,6 @@ def test_compute_quote_position_and_entities_entities(self, message): ) def test_build_reply_arguments_chat_id_and_message_id(self, message, target_chat_id, expected): message.chat.id = 3 - message.chat.username = None reply_kwargs = message.build_reply_arguments(target_chat_id=target_chat_id) assert reply_kwargs["chat_id"] == expected assert reply_kwargs["reply_parameters"].chat_id == (None if expected == 3 else 3)