aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bot/cogs/snekbox.py13
-rw-r--r--tests/bot/cogs/test_snekbox.py8
2 files changed, 10 insertions, 11 deletions
diff --git a/bot/cogs/snekbox.py b/bot/cogs/snekbox.py
index 52d830fa8..381b309e0 100644
--- a/bot/cogs/snekbox.py
+++ b/bot/cogs/snekbox.py
@@ -209,12 +209,11 @@ class Snekbox(Cog):
log.info(f"{ctx.author}'s job had a return code of {results['returncode']}")
return response
- async def continue_eval(self, ctx: Context, response: Message) -> Tuple[bool, Optional[str]]:
+ async def continue_eval(self, ctx: Context, response: Message) -> Optional[str]:
"""
Check if the eval session should continue.
- First item of the returned tuple is if the eval session should continue,
- the second is the new code to evaluate.
+ Return the new code to evaluate or None if the eval session should be terminated.
"""
_predicate_eval_message_edit = partial(predicate_eval_message_edit, ctx)
_predicate_emoji_reaction = partial(predicate_eval_emoji_reaction, ctx)
@@ -239,9 +238,9 @@ class Snekbox(Cog):
except asyncio.TimeoutError:
await ctx.message.clear_reactions()
- return False, None
+ return None
- return True, code
+ return code
@command(name="eval", aliases=("e",))
@guild_only()
@@ -275,8 +274,8 @@ class Snekbox(Cog):
finally:
del self.jobs[ctx.author.id]
- continue_eval, code = await self.continue_eval(ctx, response)
- if not continue_eval:
+ code = await self.continue_eval(ctx, response)
+ if not code:
break
log.info(f"Re-evaluating message {ctx.message.id}")
diff --git a/tests/bot/cogs/test_snekbox.py b/tests/bot/cogs/test_snekbox.py
index e7a1e3362..985bc66a1 100644
--- a/tests/bot/cogs/test_snekbox.py
+++ b/tests/bot/cogs/test_snekbox.py
@@ -179,7 +179,7 @@ class SnekboxTests(unittest.TestCase):
response = MockMessage()
self.cog.prepare_input = MagicMock(return_value='MyAwesomeFormattedCode')
self.cog.send_eval = AsyncMock(return_value=response)
- self.cog.continue_eval = AsyncMock(return_value=(False, None))
+ self.cog.continue_eval = AsyncMock(return_value=None)
await self.cog.eval_command.callback(self.cog, ctx=ctx, code='MyAwesomeCode')
self.cog.prepare_input.assert_called_once_with('MyAwesomeCode')
@@ -194,7 +194,7 @@ class SnekboxTests(unittest.TestCase):
self.cog.prepare_input = MagicMock(return_value='MyAwesomeFormattedCode')
self.cog.send_eval = AsyncMock(return_value=response)
self.cog.continue_eval = AsyncMock()
- self.cog.continue_eval.side_effect = ((True, 'MyAwesomeCode-2'), (False, None))
+ self.cog.continue_eval.side_effect = ('MyAwesomeCode-2', None)
await self.cog.eval_command.callback(self.cog, ctx=ctx, code='MyAwesomeCode')
self.cog.prepare_input.has_calls(call('MyAwesomeCode'), call('MyAwesomeCode-2'))
@@ -298,7 +298,7 @@ class SnekboxTests(unittest.TestCase):
self.bot.wait_for.side_effect = ((None, new_msg), None)
actual = await self.cog.continue_eval(ctx, response)
- self.assertEqual(actual, (True, 'NewCode'))
+ self.assertEqual(actual, 'NewCode')
self.bot.wait_for.has_calls(
call('message_edit', partial(snekbox.predicate_eval_message_edit, ctx), timeout=10),
call('reaction_add', partial(snekbox.predicate_eval_emoji_reaction, ctx), timeout=10)
@@ -313,7 +313,7 @@ class SnekboxTests(unittest.TestCase):
self.bot.wait_for.side_effect = asyncio.TimeoutError
actual = await self.cog.continue_eval(ctx, MockMessage())
- self.assertEqual(actual, (False, None))
+ self.assertEqual(actual, None)
ctx.message.clear_reactions.assert_called_once()
def test_predicate_eval_message_edit(self):