Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion gitlab/const.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,14 @@ class GitlabEnum(str, Enum):
"""An enum mixed in with str to make it JSON-serializable."""


# https://gitlab.com/gitlab-org/gitlab/-/blob/e97357824bedf007e75f8782259fe07435b64fbb/lib/gitlab/access.rb#L12-18
# https://gitlab.com/gitlab-org/gitlab/-/blob/1fb8053d00f4085a8a99c3ab53dba46d2e765893/lib/gitlab/access.rb#L12-21
class AccessLevel(IntEnum):
NO_ACCESS = 0
MINIMAL_ACCESS = 5
GUEST = 10
PLANNER = 15
REPORTER = 20
SECURITY_MANAGER = 25
DEVELOPER = 30
MAINTAINER = 40
OWNER = 50
Expand Down Expand Up @@ -95,6 +96,7 @@ class PipelineStatus(GitlabEnum):
GUEST_ACCESS = AccessLevel.GUEST.value
PLANNER_ACCESS = AccessLevel.PLANNER.value
REPORTER_ACCESS = AccessLevel.REPORTER.value
SECURITY_MANAGER_ACCESS = AccessLevel.SECURITY_MANAGER.value
DEVELOPER_ACCESS = AccessLevel.DEVELOPER.value
MAINTAINER_ACCESS = AccessLevel.MAINTAINER.value
OWNER_ACCESS = AccessLevel.OWNER.value
Expand Down Expand Up @@ -164,6 +166,7 @@ class PipelineStatus(GitlabEnum):
"SEARCH_SCOPE_PROJECTS",
"SEARCH_SCOPE_USERS",
"SEARCH_SCOPE_WIKI_BLOBS",
"SECURITY_MANAGER_ACCESS",
"USER_AGENT",
"VISIBILITY_INTERNAL",
"VISIBILITY_PRIVATE",
Expand Down
21 changes: 21 additions & 0 deletions tests/unit/test_gitlab.py
Original file line number Diff line number Diff line change
Expand Up @@ -347,6 +347,27 @@ def test_gitlab_plain_const_does_not_warn(recwarn):
assert no_access == 0


@pytest.mark.parametrize(
"access_level,plain_const_name,expected_value",
[
(gitlab.const.AccessLevel.NO_ACCESS, "NO_ACCESS", 0),
(gitlab.const.AccessLevel.MINIMAL_ACCESS, "MINIMAL_ACCESS", 5),
(gitlab.const.AccessLevel.GUEST, "GUEST_ACCESS", 10),
(gitlab.const.AccessLevel.PLANNER, "PLANNER_ACCESS", 15),
(gitlab.const.AccessLevel.REPORTER, "REPORTER_ACCESS", 20),
(gitlab.const.AccessLevel.SECURITY_MANAGER, "SECURITY_MANAGER_ACCESS", 25),
(gitlab.const.AccessLevel.DEVELOPER, "DEVELOPER_ACCESS", 30),
(gitlab.const.AccessLevel.MAINTAINER, "MAINTAINER_ACCESS", 40),
(gitlab.const.AccessLevel.OWNER, "OWNER_ACCESS", 50),
(gitlab.const.AccessLevel.ADMIN, "ADMIN_ACCESS", 60),
],
)
def test_gitlab_access_level_constants(access_level, plain_const_name, expected_value):
assert access_level == expected_value
assert getattr(gitlab.const, plain_const_name) == expected_value
assert plain_const_name in gitlab.const.__all__


@responses.activate
@pytest.mark.parametrize(
"kwargs,link_header,expected_next_url,show_warning",
Expand Down
Loading