Skip to content

Commit 5386c20

Browse files
committed
test: add tests
1 parent 4153678 commit 5386c20

File tree

1 file changed

+82
-0
lines changed

1 file changed

+82
-0
lines changed

tests/ext/commands/test_base_core.py

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
import pytest
2+
3+
from disnake import Permissions
4+
from disnake.ext import commands
5+
6+
7+
class TestDefaultPermissions:
8+
def test_decorator(self):
9+
class Cog(commands.Cog):
10+
@commands.slash_command(default_member_permissions=64)
11+
async def cmd(self, _):
12+
...
13+
14+
@commands.default_member_permissions(64)
15+
@commands.slash_command()
16+
async def above(self, _):
17+
...
18+
19+
@commands.slash_command()
20+
@commands.default_member_permissions(64)
21+
async def below(self, _):
22+
...
23+
24+
for c in (Cog, Cog()):
25+
assert c.cmd.default_member_permissions == Permissions(64)
26+
assert c.above.default_member_permissions == Permissions(64)
27+
assert c.below.default_member_permissions == Permissions(64)
28+
29+
def test_decorator_overwrite(self):
30+
# putting the decorator above should fail
31+
with pytest.raises(ValueError, match="Cannot set `default_member_permissions`"):
32+
33+
class Cog(commands.Cog):
34+
@commands.default_member_permissions(32)
35+
@commands.slash_command(default_member_permissions=64)
36+
async def above(self, _):
37+
...
38+
39+
# putting the decorator below shouldn't fail
40+
# (this is a side effect of how command copying works,
41+
# and while this *should* probably fail, we're just testing
42+
# for regressions for now)
43+
class Cog2(commands.Cog):
44+
@commands.slash_command(default_member_permissions=64)
45+
@commands.default_member_permissions(32)
46+
async def below(self, _):
47+
...
48+
49+
for c in (Cog2, Cog2()):
50+
assert c.below.default_member_permissions == Permissions(32)
51+
52+
def test_attrs(self):
53+
class Cog(commands.Cog, slash_command_attrs={"default_member_permissions": 32}):
54+
@commands.slash_command()
55+
async def no_overwrite(self, _):
56+
...
57+
58+
@commands.slash_command(default_member_permissions=64)
59+
async def overwrite(self, _):
60+
...
61+
62+
@commands.default_member_permissions(64)
63+
@commands.slash_command()
64+
async def overwrite_decorator_above(self, _):
65+
...
66+
67+
@commands.slash_command()
68+
@commands.default_member_permissions(64)
69+
async def overwrite_decorator_below(self, _):
70+
...
71+
72+
assert Cog.no_overwrite.default_member_permissions is None
73+
assert Cog().no_overwrite.default_member_permissions == Permissions(32)
74+
75+
assert Cog.overwrite.default_member_permissions == Permissions(64)
76+
assert Cog().overwrite.default_member_permissions == Permissions(64)
77+
78+
assert Cog.overwrite_decorator_above.default_member_permissions == Permissions(64)
79+
assert Cog().overwrite_decorator_above.default_member_permissions == Permissions(64)
80+
81+
assert Cog.overwrite_decorator_below.default_member_permissions == Permissions(64)
82+
assert Cog().overwrite_decorator_below.default_member_permissions == Permissions(64)

0 commit comments

Comments
 (0)