aboutsummaryrefslogtreecommitdiffstats
path: root/tests/cogs/test_security.py
diff options
context:
space:
mode:
authorGravatar Johannes Christ <[email protected]>2019-09-15 21:11:09 +0200
committerGravatar Johannes Christ <[email protected]>2019-09-15 21:11:09 +0200
commit43cc15121482de120dcc1158153a24d5cadf27fa (patch)
tree18fe8c764f69f60b2345271e287222f29827d541 /tests/cogs/test_security.py
parentMerge pull request #427 from python-discord/bot-resources-validation-tests (diff)
Add tests for `bot.cogs.security`.
Diffstat (limited to 'tests/cogs/test_security.py')
-rw-r--r--tests/cogs/test_security.py54
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/cogs/test_security.py b/tests/cogs/test_security.py
new file mode 100644
index 000000000..1efb460fe
--- /dev/null
+++ b/tests/cogs/test_security.py
@@ -0,0 +1,54 @@
+import logging
+from unittest.mock import MagicMock
+
+import pytest
+from discord.ext.commands import NoPrivateMessage
+
+from bot.cogs import security
+
+
+def cog():
+ bot = MagicMock()
+ return security.Security(bot)
+
+
+def context():
+ return MagicMock()
+
+
+def test_check_additions(cog):
+ cog.bot.check.assert_any_call(cog.check_on_guild)
+ cog.bot.check.assert_any_call(cog.check_not_bot)
+
+
+def test_check_not_bot_for_humans(cog, context):
+ context.author.bot = False
+ assert cog.check_not_bot(context)
+
+
+def test_check_not_bot_for_robots(cog, context):
+ context.author.bot = True
+ assert not cog.check_not_bot(context)
+
+
+def test_check_on_guild_outside_of_guild(cog, context):
+ context.guild = None
+
+ with pytest.raises(NoPrivateMessage, match="This command cannot be used in private messages."):
+ cog.check_on_guild(context)
+
+
+def test_check_on_guild_on_guild(cog, context):
+ context.guild = "lemon's lemonade stand"
+ assert cog.check_on_guild(context)
+
+
+def test_security_cog_load(caplog):
+ bot = MagicMock()
+ security.setup(bot)
+ bot.add_cog.assert_called_once()
+ [record] = caplog.records
+ assert record.message == "Cog loaded: Security"
+ assert record.levelno == logging.INFO