First unit tests

This commit is contained in:
klemek
2020-08-30 16:20:45 +02:00
parent 6c890c20d7
commit 16a90afe7c
5 changed files with 86 additions and 0 deletions
View File
View File
View File
@@ -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))
+39
View File
@@ -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'"))