Skip to content

Commit 18f4ae2

Browse files
UpstreamDatab-rowan
authored andcommitted
tests: add tests to permissions.
Update pytest-asyncio because it was unable to find the event loop for new tests, see pytest-dev/pytest-asyncio#862
1 parent cb7e478 commit 18f4ae2

File tree

3 files changed

+55
-1
lines changed

3 files changed

+55
-1
lines changed

pyproject.toml

+4-1
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,12 @@ mkdocs-material = "^9.5.29"
4343

4444
[tool.poetry.group.tests.dependencies]
4545
pytest = "^8.3.1"
46-
pytest-asyncio = "^0.23.8"
46+
pytest-asyncio = "^0.24.0"
4747
pytest-md-report = "^0.6.2"
4848

49+
[tool.pytest]
50+
asyncio_mode = "auto"
51+
4952
[tool.isort]
5053
profile = "black"
5154

tests/auth/__init__.py

Whitespace-only changes.

tests/auth/test_permissions.py

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
from goosebit.auth import compare_permission, compare_permissions
2+
3+
4+
def test_compare_single_permission():
5+
assert compare_permission("home.read", "home.read")
6+
7+
8+
def test_compare_inverted_single_permission():
9+
assert not compare_permission("home.read", "!home.read")
10+
11+
12+
def test_compare_wildcard_sub_permission():
13+
assert compare_permission("home.read", "home.*")
14+
15+
16+
def test_compare_inverted_wildcard_sub_permission():
17+
assert not compare_permission("home.read", "!home.*")
18+
19+
20+
def test_compare_root_permission():
21+
assert compare_permission("home.read", "home")
22+
23+
24+
def test_compare_inverted_root_permission():
25+
assert not compare_permission("home.read", "!home")
26+
27+
28+
def test_compare_root_wildcard_permission():
29+
assert compare_permission("home.read", "*")
30+
31+
32+
def test_compare_inverted_root_wildcard_permission():
33+
assert not compare_permission("home.read", "!*")
34+
35+
36+
def test_compare_multiple_single_permissions():
37+
assert compare_permissions(["home.read", "device.write"], ["home.read", "device.write"])
38+
39+
40+
def test_compare_invalid_multiple_single_permissions():
41+
assert not compare_permissions(["home.read", "device.write"], ["home.read", "device.read"])
42+
43+
44+
def test_compare_inverted_multiple_permissions():
45+
assert not compare_permissions(["home.read", "device.write"], ["home.read", "device", "!device.write"])
46+
47+
48+
def test_compare_multiple_root_wildcard_permissions():
49+
assert compare_permissions(
50+
["home.read", "device.write", "device.read", "software.read"], ["*.read", "device.write"]
51+
)

0 commit comments

Comments
 (0)