Skip to content

Commit

Permalink
Merge pull request #29 from luke-hdl/3-retest-system
Browse files Browse the repository at this point in the history
Retest System fix for empty message
  • Loading branch information
luke-hdl committed Apr 17, 2024
2 parents e9af538 + 0d2e430 commit 4f2a943
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 0 deletions.
5 changes: 5 additions & 0 deletions src/run/message_responder.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,11 @@ async def process_guild_message_text_from_player(self, channel, message):
return # By default, SlapChop shouldn't see messages that it doesn't ask for, but it's better safe than sorry.
message_text = message.content
tokenized_message_text = re.split("[ \t]{1,1000}", message_text)

if len(tokenized_message_text) < 2:
await self.send_help_response(channel)
return

if equal_inputs(tokenized_message_text[1], "retest"):
if message.author not in self.challenges_by_player:
await channel.send(
Expand Down
18 changes: 18 additions & 0 deletions src/test/test_message_responder_challenges.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from .framework.test_framework import *
from .framework.spoof_factory import *
from run.message_responder import MessageResponder
from time import sleep

spoof = None
responder = None
Expand Down Expand Up @@ -43,7 +44,24 @@ async def spoof_a_basic_challenge():
expect(beckett not in responder.challenges_by_player, "Beckett remained in the challenge after it was done.")
expect(vykos not in responder.challenges_by_player, "Vykos remained in the challenge after it was done.")

@test
async def test_expiration():
responder.timeout = 1
beckett = spoof.users[0]
vykos = spoof.users[1]
beckett.channel.message_history = []
vykos.channel.message_history = []
channel = spoof.guild_channels[0]
message = Message(beckett, channel, spoof.client.user.mention + " challenge " + vykos.mention, [spoof.client.user, vykos])
await channel.spoof_send(message, responder)
sleep(1)
empty_at = Message(beckett, channel, spoof.client.user.mention, [spoof.client.user])
await channel.spoof_send(empty_at, responder)
expect(len(responder.challenges_by_player.keys()) == 0, "Challenge failed to expire.")
expect(len(beckett.channel.message_history) == 2, "Beckett was not alerted that his challenge expired.")
expect(len(vykos.channel.message_history) == 2, "Vykos was not alerted that Beckett's challenge expired.")

async def run_tests():
await set_up_spoof()
await spoof_a_basic_challenge()
await test_expiration()

0 comments on commit 4f2a943

Please sign in to comment.