Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit2720b73

Browse files
Oleksii ShkurupiiOleksii Shkurupii
Oleksii Shkurupii
authored and
Oleksii Shkurupii
committed
test: add unit tests for badges API
1 parent2a6801e commit2720b73

File tree

1 file changed

+210
-0
lines changed

1 file changed

+210
-0
lines changed

‎gitlab/tests/objects/test_badges.py

Lines changed: 210 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,210 @@
1+
"""
2+
GitLab API: https://docs.gitlab.com/ee/api/project_badges.html
3+
GitLab API: https://docs.gitlab.com/ee/api/group_badges.html
4+
"""
5+
importre
6+
7+
importpytest
8+
importresponses
9+
10+
fromgitlab.v4.objectsimportProjectBadge,GroupBadge
11+
12+
link_url= (
13+
"http://example.com/ci_status.svg?project=example-org/example-project&ref=master"
14+
)
15+
image_url="https://example.io/my/badge"
16+
17+
rendered_link_url= (
18+
"http://example.com/ci_status.svg?project=example-org/example-project&ref=master"
19+
)
20+
rendered_image_url="https://example.io/my/badge"
21+
22+
new_badge= {
23+
"link_url":link_url,
24+
"image_url":image_url,
25+
}
26+
27+
badge_content= {
28+
"name":"Coverage",
29+
"id":1,
30+
"link_url":link_url,
31+
"image_url":image_url,
32+
"rendered_link_url":rendered_image_url,
33+
"rendered_image_url":rendered_image_url,
34+
}
35+
36+
preview_badge_content= {
37+
"link_url":link_url,
38+
"image_url":image_url,
39+
"rendered_link_url":rendered_link_url,
40+
"rendered_image_url":rendered_image_url,
41+
}
42+
43+
44+
@pytest.fixture()
45+
defresp_get_badge():
46+
withresponses.RequestsMock()asrsps:
47+
rsps.add(
48+
method=responses.GET,
49+
url=re.compile(r"http://localhost/api/v4/(projects|groups)/1/badges/1"),
50+
json=badge_content,
51+
content_type="application/json",
52+
status=200,
53+
)
54+
yieldrsps
55+
56+
57+
@pytest.fixture()
58+
defresp_list_badges():
59+
withresponses.RequestsMock()asrsps:
60+
rsps.add(
61+
method=responses.GET,
62+
url=re.compile(r"http://localhost/api/v4/(projects|groups)/1/badges"),
63+
json=[badge_content],
64+
content_type="application/json",
65+
status=200,
66+
)
67+
yieldrsps
68+
69+
70+
@pytest.fixture()
71+
defresp_create_badge():
72+
withresponses.RequestsMock()asrsps:
73+
rsps.add(
74+
method=responses.POST,
75+
url=re.compile(r"http://localhost/api/v4/(projects|groups)/1/badges"),
76+
json=badge_content,
77+
content_type="application/json",
78+
status=200,
79+
)
80+
yieldrsps
81+
82+
83+
@pytest.fixture()
84+
defresp_update_badge():
85+
updated_content=dict(badge_content)
86+
updated_content["link_url"]="http://link_url"
87+
88+
withresponses.RequestsMock()asrsps:
89+
rsps.add(
90+
method=responses.PUT,
91+
url=re.compile(r"http://localhost/api/v4/(projects|groups)/1/badges/1"),
92+
json=updated_content,
93+
content_type="application/json",
94+
status=200,
95+
)
96+
yieldrsps
97+
98+
99+
@pytest.fixture()
100+
defresp_delete_badge(no_content):
101+
withresponses.RequestsMock()asrsps:
102+
rsps.add(
103+
method=responses.DELETE,
104+
url=re.compile(r"http://localhost/api/v4/(projects|groups)/1/badges/1"),
105+
json=no_content,
106+
content_type="application/json",
107+
status=204,
108+
)
109+
yieldrsps
110+
111+
112+
@pytest.fixture()
113+
defresp_preview_badge():
114+
withresponses.RequestsMock()asrsps:
115+
rsps.add(
116+
method=responses.GET,
117+
url=re.compile(
118+
r"http://localhost/api/v4/(projects|groups)/1/badges/render"
119+
),
120+
json=preview_badge_content,
121+
content_type="application/json",
122+
status=200,
123+
)
124+
yieldrsps
125+
126+
127+
deftest_list_project_badges(project,resp_list_badges):
128+
badges=project.badges.list()
129+
assertisinstance(badges,list)
130+
assertisinstance(badges[0],ProjectBadge)
131+
132+
133+
deftest_list_group_badges(group,resp_list_badges):
134+
badges=group.badges.list()
135+
assertisinstance(badges,list)
136+
assertisinstance(badges[0],GroupBadge)
137+
138+
139+
deftest_get_project_badge(project,resp_get_badge):
140+
badge=project.badges.get(1)
141+
assertisinstance(badge,ProjectBadge)
142+
assertbadge.name=="Coverage"
143+
assertbadge.id==1
144+
145+
146+
deftest_get_group_badge(group,resp_get_badge):
147+
badge=group.badges.get(1)
148+
assertisinstance(badge,GroupBadge)
149+
assertbadge.name=="Coverage"
150+
assertbadge.id==1
151+
152+
153+
deftest_delete_project_badge(project,resp_delete_badge):
154+
badge=project.badges.get(1,lazy=True)
155+
badge.delete()
156+
157+
158+
deftest_delete_group_badge(group,resp_delete_badge):
159+
badge=group.badges.get(1,lazy=True)
160+
badge.delete()
161+
162+
163+
deftest_create_project_badge(project,resp_create_badge):
164+
badge=project.badges.create(new_badge)
165+
assertisinstance(badge,ProjectBadge)
166+
assertbadge.image_url==image_url
167+
168+
169+
deftest_create_group_badge(group,resp_create_badge):
170+
badge=group.badges.create(new_badge)
171+
assertisinstance(badge,GroupBadge)
172+
assertbadge.image_url==image_url
173+
174+
175+
deftest_preview_project_badge(project,resp_preview_badge):
176+
output=project.badges.render(
177+
link_url=link_url,
178+
image_url=image_url,
179+
)
180+
assertisinstance(output,dict)
181+
assert"rendered_link_url"inoutput
182+
assert"rendered_image_url"inoutput
183+
assertoutput["link_url"]==output["rendered_link_url"]
184+
assertoutput["image_url"]==output["rendered_image_url"]
185+
186+
187+
deftest_preview_group_badge(group,resp_preview_badge):
188+
output=group.badges.render(
189+
link_url=link_url,
190+
image_url=image_url,
191+
)
192+
assertisinstance(output,dict)
193+
assert"rendered_link_url"inoutput
194+
assert"rendered_image_url"inoutput
195+
assertoutput["link_url"]==output["rendered_link_url"]
196+
assertoutput["image_url"]==output["rendered_image_url"]
197+
198+
199+
deftest_update_project_badge(project,resp_update_badge):
200+
badge=project.badges.get(1,lazy=True)
201+
badge.link_url="http://link_url"
202+
badge.save()
203+
assertbadge.link_url=="http://link_url"
204+
205+
206+
deftest_update_group_badge(group,resp_update_badge):
207+
badge=group.badges.get(1,lazy=True)
208+
badge.link_url="http://link_url"
209+
badge.save()
210+
assertbadge.link_url=="http://link_url"

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp