From 1674485ad9dc4fa7ef66e23f45e9f32add73b791 Mon Sep 17 00:00:00 2001 From: JayDwee Date: Tue, 28 Mar 2023 20:51:15 +0100 Subject: [PATCH 1/6] fix: edit message not updating message queue --- discord/ext/test/backend.py | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/discord/ext/test/backend.py b/discord/ext/test/backend.py index 5afb4dc..7e759d4 100644 --- a/discord/ext/test/backend.py +++ b/discord/ext/test/backend.py @@ -221,15 +221,8 @@ async def edit_message(self, channel_id: int, message_id: int, **fields: dhttp.M await callbacks.dispatch_event("edit_message", message.channel, message, fields) - out = facts.dict_from_message(message) - payload = fields.get("params").payload - # TODO : do something for files and stuff. - # if params.files: - # return self.request(r, files=params.files, form=params.multipart) - # else: - # return self.request(r, json=params.payload) - out.update(payload) - return out + return edit_message(message, **fields) + async def add_reaction(self, channel_id: int, message_id: int, emoji: str) -> None: locs = _get_higher_locs(1) @@ -853,6 +846,28 @@ def make_message( return state._get_message(data["id"]) +def edit_message( + message: discord.Message, **fields: dhttp.MultipartParameters +) -> _types.JsonDict: + data = facts.dict_from_message(message) + payload = fields.get("params").payload + # TODO : do something for files and stuff. + # if params.files: + # return self.request(r, files=params.files, form=params.multipart) + # else: + # return self.request(r, json=params.payload) + data.update(payload) + + state = get_state() + i = 0 + while i < len(_cur_config.messages[message.channel.id]): + i += 1 + if _cur_config.messages[message.channel.id][i].get("id") == data.get("id"): + _cur_config.messages[message.channel.id][i] = data + + return data + + MEMBER_MENTION: typing.Pattern = re.compile(r"<@!?[0-9]{17,21}>", re.MULTILINE) ROLE_MENTION: typing.Pattern = re.compile(r"<@&([0-9]{17,21})>", re.MULTILINE) CHANNEL_MENTION: typing.Pattern = re.compile(r"<#[0-9]{17,21}>", re.MULTILINE) From 92945705fa8e6bfbc609d8482127ebf6707376c7 Mon Sep 17 00:00:00 2001 From: JayDwee Date: Tue, 28 Mar 2023 20:58:37 +0100 Subject: [PATCH 2/6] fix: line ordering --- discord/ext/test/backend.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/discord/ext/test/backend.py b/discord/ext/test/backend.py index 7e759d4..e757c21 100644 --- a/discord/ext/test/backend.py +++ b/discord/ext/test/backend.py @@ -861,9 +861,9 @@ def edit_message( state = get_state() i = 0 while i < len(_cur_config.messages[message.channel.id]): - i += 1 if _cur_config.messages[message.channel.id][i].get("id") == data.get("id"): _cur_config.messages[message.channel.id][i] = data + i += 1 return data From 4a556e455519fe07b7d159dd910d34f7b4715fc4 Mon Sep 17 00:00:00 2001 From: JayDwee Date: Tue, 28 Mar 2023 21:04:19 +0100 Subject: [PATCH 3/6] test: add unit test for persisted message --- tests/test_edit.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/test_edit.py b/tests/test_edit.py index b1dc888..4e0fa9b 100644 --- a/tests/test_edit.py +++ b/tests/test_edit.py @@ -9,6 +9,10 @@ async def test_edit(bot): channel = guild.channels[0] mes = await channel.send("Test Message") + persisted_mes1 = await channel.fetch_message(mes.id) edited_mes = await mes.edit(content="New Message") - + persisted_mes2 = await channel.fetch_message(mes.id) + assert edited_mes.content == "New Message" + assert persisted_mes1.content == "Test Message" + assert persisted_mes2.content == "New Message" From ab05354b3db4abf0aac1626185a775af7c11d22b Mon Sep 17 00:00:00 2001 From: JayDwee Date: Tue, 28 Mar 2023 21:56:23 +0100 Subject: [PATCH 4/6] fix: lint issue --- discord/ext/test/backend.py | 1 - 1 file changed, 1 deletion(-) diff --git a/discord/ext/test/backend.py b/discord/ext/test/backend.py index e757c21..fa1b039 100644 --- a/discord/ext/test/backend.py +++ b/discord/ext/test/backend.py @@ -858,7 +858,6 @@ def edit_message( # return self.request(r, json=params.payload) data.update(payload) - state = get_state() i = 0 while i < len(_cur_config.messages[message.channel.id]): if _cur_config.messages[message.channel.id][i].get("id") == data.get("id"): From f7374b7f76add7aad1bea6e74848aac9a79f26f5 Mon Sep 17 00:00:00 2001 From: JayDwee Date: Tue, 28 Mar 2023 21:58:03 +0100 Subject: [PATCH 5/6] fix: lint issue damn this lint is annoying --- discord/ext/test/backend.py | 1 - 1 file changed, 1 deletion(-) diff --git a/discord/ext/test/backend.py b/discord/ext/test/backend.py index fa1b039..d734460 100644 --- a/discord/ext/test/backend.py +++ b/discord/ext/test/backend.py @@ -223,7 +223,6 @@ async def edit_message(self, channel_id: int, message_id: int, **fields: dhttp.M return edit_message(message, **fields) - async def add_reaction(self, channel_id: int, message_id: int, emoji: str) -> None: locs = _get_higher_locs(1) message = locs.get("self") From 2fcf1d260344a5e5d7d73ac3765ef30e0420fb0b Mon Sep 17 00:00:00 2001 From: JayDwee Date: Tue, 28 Mar 2023 21:59:24 +0100 Subject: [PATCH 6/6] fix: lint issue fr? --- tests/test_edit.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_edit.py b/tests/test_edit.py index 4e0fa9b..49847a7 100644 --- a/tests/test_edit.py +++ b/tests/test_edit.py @@ -12,7 +12,7 @@ async def test_edit(bot): persisted_mes1 = await channel.fetch_message(mes.id) edited_mes = await mes.edit(content="New Message") persisted_mes2 = await channel.fetch_message(mes.id) - + assert edited_mes.content == "New Message" assert persisted_mes1.content == "Test Message" assert persisted_mes2.content == "New Message"