Skip to content

Commit e9a211c

Browse files
Oleksii ShkurupiiOleksii Shkurupii
Oleksii Shkurupii
authored and
Oleksii Shkurupii
committed
test: add unit tests for resource label events API
1 parent 784cba6 commit e9a211c

File tree

1 file changed

+105
-0
lines changed

1 file changed

+105
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
"""
2+
GitLab API: https://docs.gitlab.com/ee/api/resource_label_events.html
3+
"""
4+
5+
import pytest
6+
import responses
7+
8+
from gitlab.v4.objects import (
9+
ProjectIssueResourceLabelEvent,
10+
ProjectMergeRequestResourceLabelEvent,
11+
GroupEpicResourceLabelEvent,
12+
)
13+
14+
15+
@pytest.fixture()
16+
def resp_group_epic_request_label_events():
17+
epic_content = {"id": 1}
18+
events_content = {"id": 1, "resource_type": "Epic"}
19+
with responses.RequestsMock() as rsps:
20+
rsps.add(
21+
method=responses.GET,
22+
url="http://localhost/api/v4/groups/1/epics",
23+
json=[epic_content],
24+
content_type="application/json",
25+
status=200,
26+
)
27+
rsps.add(
28+
method=responses.GET,
29+
url="http://localhost/api/v4/groups/1/epics/1/resource_label_events",
30+
json=[events_content],
31+
content_type="application/json",
32+
status=200,
33+
)
34+
yield rsps
35+
36+
37+
@pytest.fixture()
38+
def resp_merge_request_label_events():
39+
mr_content = {"iid": 1}
40+
events_content = {"id": 1, "resource_type": "MergeRequest"}
41+
with responses.RequestsMock() as rsps:
42+
rsps.add(
43+
method=responses.GET,
44+
url="http://localhost/api/v4/projects/1/merge_requests",
45+
json=[mr_content],
46+
content_type="application/json",
47+
status=200,
48+
)
49+
rsps.add(
50+
method=responses.GET,
51+
url="http://localhost/api/v4/projects/1/merge_requests/1/resource_label_events",
52+
json=[events_content],
53+
content_type="application/json",
54+
status=200,
55+
)
56+
yield rsps
57+
58+
59+
@pytest.fixture()
60+
def resp_project_issue_label_events():
61+
issue_content = {"iid": 1}
62+
events_content = {"id": 1, "resource_type": "Issue"}
63+
with responses.RequestsMock() as rsps:
64+
rsps.add(
65+
method=responses.GET,
66+
url="http://localhost/api/v4/projects/1/issues",
67+
json=[issue_content],
68+
content_type="application/json",
69+
status=200,
70+
)
71+
rsps.add(
72+
method=responses.GET,
73+
url="http://localhost/api/v4/projects/1/issues/1/resource_label_events",
74+
json=[events_content],
75+
content_type="application/json",
76+
status=200,
77+
)
78+
yield rsps
79+
80+
81+
def test_project_issue_label_events(project, resp_project_issue_label_events):
82+
issue = project.issues.list()[0]
83+
label_events = issue.resourcelabelevents.list()
84+
assert isinstance(label_events, list)
85+
label_event = label_events[0]
86+
assert isinstance(label_event, ProjectIssueResourceLabelEvent)
87+
assert label_event.resource_type == "Issue"
88+
89+
90+
def test_merge_request_label_events(project, resp_merge_request_label_events):
91+
mr = project.mergerequests.list()[0]
92+
label_events = mr.resourcelabelevents.list()
93+
assert isinstance(label_events, list)
94+
label_event = label_events[0]
95+
assert isinstance(label_event, ProjectMergeRequestResourceLabelEvent)
96+
assert label_event.resource_type == "MergeRequest"
97+
98+
99+
def test_group_epic_request_label_events(group, resp_group_epic_request_label_events):
100+
epic = group.epics.list()[0]
101+
label_events = epic.resourcelabelevents.list()
102+
assert isinstance(label_events, list)
103+
label_event = label_events[0]
104+
assert isinstance(label_event, GroupEpicResourceLabelEvent)
105+
assert label_event.resource_type == "Epic"

0 commit comments

Comments
 (0)