Skip to content

Commit 5e33753

Browse files
committed
Add SingleGroupResourceAccessControl unit tests
1 parent 5753d94 commit 5e33753

2 files changed

Lines changed: 24 additions & 3 deletions

File tree

bluesky_httpserver/authorization/resource_access.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ def get_resource_group(self, username, group):
122122
Name of the user group.
123123
"""
124124
if isinstance(group, list):
125-
if group[-1] in [_DEFAULT_ROLE_PUBLIC, _DEFAULT_ROLE_SINGLE_USER]:
126-
return self._default_group
127-
return group[-1]
125+
group = group[-1]
126+
if group in [_DEFAULT_ROLE_PUBLIC, _DEFAULT_ROLE_SINGLE_USER]:
127+
return self._default_group
128128
return group

bluesky_httpserver/tests/test_access_policies.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
DefaultResourceAccessControl,
1515
DictionaryAPIAccessControl,
1616
ServerBasedAPIAccessControl,
17+
SingleGroupResourceAccessControl,
1718
)
1819
from bluesky_httpserver.authorization._defaults import (
1920
_DEFAULT_RESOURCE_ACCESS_GROUP,
@@ -550,3 +551,23 @@ def test_DefaultResourceAccessControl_01(params, group, success):
550551
else:
551552
with pytest.raises(ConfigError):
552553
DefaultResourceAccessControl(**params)
554+
555+
556+
# fmt: off
557+
@pytest.mark.parametrize("params, role, group, success", [
558+
({"default_group": "expert"}, [_DEFAULT_ROLE_PUBLIC], "expert", True),
559+
({"default_group": "user"}, _DEFAULT_ROLE_SINGLE_USER, "user", True),
560+
({"default_group": "user"}, _DEFAULT_ROLE_SINGLE_USER, _DEFAULT_ROLE_SINGLE_USER, False),
561+
({"default_group": "user"}, ["expert"], "expert", True),
562+
({"default_group": "user"}, "advanced", "advanced", True),
563+
({"default_group": "user"}, "advanced", "user", False),
564+
])
565+
# fmt: on
566+
def test_SingleGroupResourceAccessControl_01(params, role, group, success):
567+
"""
568+
SingleGroupResourceAccessControl: basic tests.
569+
"""
570+
manager = SingleGroupResourceAccessControl(**params)
571+
result = manager.get_resource_group("arbitrary_user_name", role) == group
572+
print(manager.get_resource_group("arbitrary_user_name", role))
573+
assert result == success

0 commit comments

Comments
 (0)