forked from python-gitlab/python-gitlab
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_job_token_scope.py
More file actions
63 lines (46 loc) · 1.74 KB
/
test_job_token_scope.py
File metadata and controls
63 lines (46 loc) · 1.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
"""
GitLab API: https://docs.gitlab.com/ee/api/project_job_token_scopes.html
"""
import pytest
import responses
from gitlab.v4.objects import ProjectJobTokenScope
job_token_scope_content = {
"inbound_enabled": True,
"outbound_enabled": False,
}
@pytest.fixture
def resp_get_job_token_scope():
with responses.RequestsMock(assert_all_requests_are_fired=False) as rsps:
rsps.add(
method=responses.GET,
url="http://localhost/api/v4/projects/1/job_token_scope",
json=job_token_scope_content,
content_type="application/json",
status=200,
)
yield rsps
@pytest.fixture
def resp_patch_job_token_scope():
with responses.RequestsMock(assert_all_requests_are_fired=False) as rsps:
rsps.add(
method=responses.PATCH,
url="http://localhost/api/v4/projects/1/job_token_scope",
status=204,
match=[responses.matchers.json_params_matcher({"enabled": False})],
)
yield rsps
@pytest.fixture
def job_token_scope(project, resp_get_job_token_scope):
return project.job_token_scope.get()
def test_get_job_token_scope(project, resp_get_job_token_scope):
scope = project.job_token_scope.get()
assert isinstance(scope, ProjectJobTokenScope)
assert scope.inbound_enabled is True
def test_refresh_job_token_scope(job_token_scope, resp_get_job_token_scope):
job_token_scope.refresh()
assert job_token_scope.inbound_enabled is True
def test_save_job_token_scope(job_token_scope, resp_patch_job_token_scope):
job_token_scope.enabled = False
job_token_scope.save()
def test_update_job_token_scope(project, resp_patch_job_token_scope):
project.job_token_scope.update(new_data={"enabled": False})