aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorGravatar ionite34 <[email protected]>2022-12-17 20:16:57 +0800
committerGravatar ionite34 <[email protected]>2022-12-17 20:16:57 +0800
commitd2de465e8fb3659eb1fe40aa2d1c9e9cb80e0d11 (patch)
tree976b92440dc124cb305bb866b10c081969ca4db0 /tests
parentAdd unit test for files_error_message (diff)
Add unit tests for EvalResult.files_error_str
Diffstat (limited to 'tests')
-rw-r--r--tests/bot/exts/utils/test_snekbox.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/bot/exts/utils/test_snekbox.py b/tests/bot/exts/utils/test_snekbox.py
index afe48dceb..5e13ac4bb 100644
--- a/tests/bot/exts/utils/test_snekbox.py
+++ b/tests/bot/exts/utils/test_snekbox.py
@@ -151,6 +151,27 @@ class SnekboxTests(unittest.IsolatedAsyncioTestCase):
msg = result.files_error_message
self.assertEqual(msg, expected_msg)
+ @patch("bot.exts.utils.snekbox._eval.FILE_COUNT_LIMIT", 2)
+ def test_eval_result_files_error_str(self):
+ """EvalResult.files_error_message, should return files error message."""
+ max_file_name = "a" * 32
+ cases = [
+ (["x.ini"], "x.ini"),
+ (["dog.py", "cat.py"], "dog.py, cat.py"),
+ # 3 files limit
+ (["a", "b", "c"], "a, b, c"),
+ (["a", "b", "c", "d"], "a, b, c, ..."),
+ (["x", "y", "z"] + ["a"] * 100, "x, y, z, ..."),
+ # 32 char limit
+ ([max_file_name], max_file_name),
+ ([max_file_name, "b"], f"{max_file_name}, ..."),
+ ([max_file_name + "a"], "...")
+ ]
+ for failed_files, expected in cases:
+ result = EvalResult("", 0, [], failed_files)
+ msg = result.failed_files_str(char_max=32, file_max=3)
+ self.assertEqual(msg, expected)
+
@patch('bot.exts.utils.snekbox._eval.Signals', side_effect=ValueError)
def test_eval_result_message_invalid_signal(self, _mock_signals: Mock):
result = EvalResult(stdout="", returncode=127)