First unit tests
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
from unittest import TestCase
|
||||
import asyncio
|
||||
from unittest.mock import Mock, AsyncMock
|
||||
import discord
|
||||
from miniscord._discord_utils import delete_message, message_id
|
||||
|
||||
|
||||
class TestDeleteMessage(TestCase):
|
||||
def setUp(self):
|
||||
self.loop = asyncio.new_event_loop()
|
||||
asyncio.set_event_loop(None)
|
||||
|
||||
def tearDown(self):
|
||||
self.loop.close()
|
||||
|
||||
def test_success(self):
|
||||
mock = AsyncMock()
|
||||
self.assertTrue(self.loop.run_until_complete(delete_message(mock)))
|
||||
mock.delete.assert_awaited_once()
|
||||
|
||||
def test_forbidden(self):
|
||||
mock = AsyncMock()
|
||||
mock.delete.side_effect = discord.Forbidden(Mock(), "")
|
||||
self.assertFalse(self.loop.run_until_complete(delete_message(mock)))
|
||||
mock.delete.assert_awaited_once()
|
||||
|
||||
def test_not_found(self):
|
||||
mock = AsyncMock()
|
||||
mock.delete.side_effect = discord.NotFound(Mock(), "")
|
||||
self.assertFalse(self.loop.run_until_complete(delete_message(mock)))
|
||||
mock.delete.assert_awaited_once()
|
||||
|
||||
|
||||
class TestMessageId(TestCase):
|
||||
def test_direct(self):
|
||||
mock = Mock()
|
||||
mock.channel.type = discord.ChannelType.private
|
||||
mock.author.id = "TEST"
|
||||
self.assertEqual("TEST", message_id(mock))
|
||||
|
||||
def test_not_direct(self):
|
||||
mock = Mock()
|
||||
mock.channel.type = discord.ChannelType.text
|
||||
mock.guild.id = "TEST1"
|
||||
mock.channel.id = "TEST2"
|
||||
mock.author.id = "TEST3"
|
||||
self.assertEqual("TEST1/TEST2/TEST3", message_id(mock))
|
||||
@@ -0,0 +1,39 @@
|
||||
from unittest import TestCase
|
||||
from miniscord._utils import sanitize_input, parse_arguments
|
||||
|
||||
|
||||
class TestSanitizeInput(TestCase):
|
||||
def test_no_change(self):
|
||||
self.assertEqual("abc 0_9", sanitize_input("abc 0_9"))
|
||||
|
||||
def test_lower_trim(self):
|
||||
self.assertEqual("abc", sanitize_input(" ABC "))
|
||||
|
||||
def test_remove_special_chars(self):
|
||||
self.assertEqual("hello id some command", sanitize_input("Hello <@id> ! `some command`"))
|
||||
|
||||
|
||||
class TestParseArguments(TestCase):
|
||||
def test_empty(self):
|
||||
self.assertEqual([], parse_arguments(""))
|
||||
|
||||
def test_single_arg(self):
|
||||
self.assertEqual(["abc"], parse_arguments("abc"))
|
||||
|
||||
def test_multi_args(self):
|
||||
self.assertEqual(["abc", "def", "ghi"], parse_arguments("abc def ghi"))
|
||||
|
||||
def test_quotes(self):
|
||||
self.assertEqual(["abc def"], parse_arguments("'abc def'"))
|
||||
|
||||
def test_quotes_squotes(self):
|
||||
self.assertEqual(["abc 'def'"], parse_arguments("\"abc 'def'\""))
|
||||
|
||||
def test_squotes(self):
|
||||
self.assertEqual(["abc def"], parse_arguments("\"abc def\""))
|
||||
|
||||
def test_squotes_quotes(self):
|
||||
self.assertEqual(["\"abc\" def"], parse_arguments("'\"abc\" def'"))
|
||||
|
||||
def test_complex(self):
|
||||
self.assertEqual(["abc 'def'", "ghi", "jkl mno"], parse_arguments("\"abc 'def'\" ghi 'jkl mno'"))
|
||||
Reference in New Issue
Block a user