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

Commit68a4162

Browse files
authored
Merge pull request#1205 from python-gitlab/refactor/split-functional-tests
refactor(tests): split functional tests
2 parents2002098 +65ce026 commit68a4162

15 files changed

+1504
-1164
lines changed

‎tools/functional/api/test_clusters.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
deftest_project_clusters(project):
2+
project.clusters.create(
3+
{
4+
"name":"cluster1",
5+
"platform_kubernetes_attributes": {
6+
"api_url":"http://url",
7+
"token":"tokenval",
8+
},
9+
}
10+
)
11+
clusters=project.clusters.list()
12+
assertlen(clusters)==1
13+
14+
cluster=clusters[0]
15+
cluster.platform_kubernetes_attributes= {"api_url":"http://newurl"}
16+
cluster.save()
17+
18+
cluster=project.clusters.list()[0]
19+
assertcluster.platform_kubernetes["api_url"]=="http://newurl"
20+
21+
cluster.delete()
22+
assertlen(project.clusters.list())==0
23+
24+
25+
deftest_group_clusters(group):
26+
group.clusters.create(
27+
{
28+
"name":"cluster1",
29+
"platform_kubernetes_attributes": {
30+
"api_url":"http://url",
31+
"token":"tokenval",
32+
},
33+
}
34+
)
35+
clusters=group.clusters.list()
36+
assertlen(clusters)==1
37+
38+
cluster=clusters[0]
39+
cluster.platform_kubernetes_attributes= {"api_url":"http://newurl"}
40+
cluster.save()
41+
42+
cluster=group.clusters.list()[0]
43+
assertcluster.platform_kubernetes["api_url"]=="http://newurl"
44+
45+
cluster.delete()
46+
assertlen(group.clusters.list())==0
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
deftest_current_user_email(gl):
2+
gl.auth()
3+
mail=gl.user.emails.create({"email":"current@user.com"})
4+
assertlen(gl.user.emails.list())==1
5+
6+
mail.delete()
7+
assertlen(gl.user.emails.list())==0
8+
9+
10+
deftest_current_user_gpg_keys(gl,GPG_KEY):
11+
gl.auth()
12+
gkey=gl.user.gpgkeys.create({"key":GPG_KEY})
13+
assertlen(gl.user.gpgkeys.list())==1
14+
15+
# Seems broken on the gitlab side
16+
gkey=gl.user.gpgkeys.get(gkey.id)
17+
gkey.delete()
18+
assertlen(gl.user.gpgkeys.list())==0
19+
20+
21+
deftest_current_user_ssh_keys(gl,SSH_KEY):
22+
gl.auth()
23+
key=gl.user.keys.create({"title":"testkey","key":SSH_KEY})
24+
assertlen(gl.user.keys.list())==1
25+
26+
key.delete()
27+
assertlen(gl.user.keys.list())==0
28+
29+
30+
deftest_current_user_status(gl):
31+
gl.auth()
32+
message="Test"
33+
emoji="thumbsup"
34+
status=gl.user.status.get()
35+
36+
status.message=message
37+
status.emoji=emoji
38+
status.save()
39+
40+
new_status=gl.user.status.get()
41+
assertnew_status.message==message
42+
assertnew_status.emoji==emoji
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
deftest_project_deploy_keys(gl,project,DEPLOY_KEY):
2+
deploy_key=project.keys.create({"title":"foo@bar","key":DEPLOY_KEY})
3+
project_keys=list(project.keys.list())
4+
assertlen(project_keys)==1
5+
6+
project2=gl.projects.create({"name":"deploy-key-project"})
7+
project2.keys.enable(deploy_key.id)
8+
assertlen(project2.keys.list())==1
9+
10+
project2.keys.delete(deploy_key.id)
11+
assertlen(project2.keys.list())==0
12+
project2.delete()
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
deftest_project_deploy_tokens(gl,project):
2+
deploy_token=project.deploytokens.create(
3+
{
4+
"name":"foo",
5+
"username":"bar",
6+
"expires_at":"2022-01-01",
7+
"scopes": ["read_registry"],
8+
}
9+
)
10+
assertlen(project.deploytokens.list())==1
11+
assertgl.deploytokens.list()==project.deploytokens.list()
12+
13+
assertproject.deploytokens.list()[0].name=="foo"
14+
assertproject.deploytokens.list()[0].expires_at=="2022-01-01T00:00:00.000Z"
15+
assertproject.deploytokens.list()[0].scopes== ["read_registry"]
16+
assertproject.deploytokens.list()[0].username=="bar"
17+
18+
deploy_token.delete()
19+
assertlen(project.deploytokens.list())==0
20+
assertlen(gl.deploytokens.list())==0
21+
22+
23+
deftest_group_deploy_tokens(gl,group):
24+
deploy_token=group.deploytokens.create(
25+
{
26+
"name":"foo",
27+
"scopes": ["read_registry"],
28+
}
29+
)
30+
31+
assertlen(group.deploytokens.list())==1
32+
assertgl.deploytokens.list()==group.deploytokens.list()
33+
34+
deploy_token.delete()
35+
assertlen(group.deploytokens.list())==0
36+
assertlen(gl.deploytokens.list())==0

‎tools/functional/api/test_gitlab.py

Lines changed: 181 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,183 @@
1-
"""
2-
Temporary module to run legacy tests as a single pytest test case
3-
as they're all plain asserts at module level.
4-
"""
1+
importpytest
52

3+
importgitlab
64

7-
deftest_api_v4(gl):
8-
fromtools.functionalimportpython_test_v4
5+
6+
deftest_auth_from_config(gl,temp_dir):
7+
"""Test token authentication from config file"""
8+
test_gitlab=gitlab.Gitlab.from_config(
9+
config_files=[temp_dir/"python-gitlab.cfg"]
10+
)
11+
test_gitlab.auth()
12+
assertisinstance(test_gitlab.user,gitlab.v4.objects.CurrentUser)
13+
14+
15+
deftest_broadcast_messages(gl):
16+
msg=gl.broadcastmessages.create({"message":"this is the message"})
17+
msg.color="#444444"
18+
msg.save()
19+
msg_id=msg.id
20+
21+
msg=gl.broadcastmessages.list(all=True)[0]
22+
assertmsg.color=="#444444"
23+
24+
msg=gl.broadcastmessages.get(msg_id)
25+
assertmsg.color=="#444444"
26+
27+
msg.delete()
28+
assertlen(gl.broadcastmessages.list())==0
29+
30+
31+
deftest_markdown(gl):
32+
html=gl.markdown("foo")
33+
assert"foo"inhtml
34+
35+
36+
deftest_lint(gl):
37+
success,errors=gl.lint("Invalid")
38+
assertsuccessisFalse
39+
asserterrors
40+
41+
42+
deftest_sidekiq_queue_metrics(gl):
43+
out=gl.sidekiq.queue_metrics()
44+
assertisinstance(out,dict)
45+
assert"pages"inout["queues"]
46+
47+
48+
deftest_sidekiq_process_metrics(gl):
49+
out=gl.sidekiq.process_metrics()
50+
assertisinstance(out,dict)
51+
assert"hostname"inout["processes"][0]
52+
53+
54+
deftest_sidekiq_job_stats(gl):
55+
out=gl.sidekiq.job_stats()
56+
assertisinstance(out,dict)
57+
assert"processed"inout["jobs"]
58+
59+
60+
deftest_sidekiq_compound_metrics(gl):
61+
out=gl.sidekiq.compound_metrics()
62+
assertisinstance(out,dict)
63+
assert"jobs"inout
64+
assert"processes"inout
65+
assert"queues"inout
66+
67+
68+
deftest_gitlab_settings(gl):
69+
settings=gl.settings.get()
70+
settings.default_projects_limit=42
71+
settings.save()
72+
settings=gl.settings.get()
73+
assertsettings.default_projects_limit==42
74+
75+
76+
deftest_template_dockerfile(gl):
77+
assertgl.dockerfiles.list()
78+
79+
dockerfile=gl.dockerfiles.get("Node")
80+
assertdockerfile.contentisnotNone
81+
82+
83+
deftest_template_gitignore(gl):
84+
assertgl.gitignores.list()
85+
gitignore=gl.gitignores.get("Node")
86+
assertgitignore.contentisnotNone
87+
88+
89+
deftest_template_gitlabciyml(gl):
90+
assertgl.gitlabciymls.list()
91+
gitlabciyml=gl.gitlabciymls.get("Nodejs")
92+
assertgitlabciyml.contentisnotNone
93+
94+
95+
deftest_template_license(gl):
96+
assertgl.licenses.list()
97+
license=gl.licenses.get(
98+
"bsd-2-clause",project="mytestproject",fullname="mytestfullname"
99+
)
100+
assert"mytestfullname"inlicense.content
101+
102+
103+
deftest_hooks(gl):
104+
hook=gl.hooks.create({"url":"http://whatever.com"})
105+
assertlen(gl.hooks.list())==1
106+
107+
hook.delete()
108+
assertlen(gl.hooks.list())==0
109+
110+
111+
deftest_namespaces(gl):
112+
namespace=gl.namespaces.list(all=True)
113+
assertnamespace
114+
115+
namespace=gl.namespaces.list(search="root",all=True)[0]
116+
assertnamespace.kind=="user"
117+
118+
119+
deftest_notification_settings(gl):
120+
settings=gl.notificationsettings.get()
121+
settings.level=gitlab.NOTIFICATION_LEVEL_WATCH
122+
settings.save()
123+
124+
settings=gl.notificationsettings.get()
125+
assertsettings.level==gitlab.NOTIFICATION_LEVEL_WATCH
126+
127+
128+
deftest_user_activities(gl):
129+
activities=gl.user_activities.list(query_parameters={"from":"2019-01-01"})
130+
assertisinstance(activities,list)
131+
132+
133+
deftest_events(gl):
134+
events=gl.events.list()
135+
assertisinstance(events,list)
136+
137+
138+
@pytest.mark.skip
139+
deftest_features(gl):
140+
feat=gl.features.set("foo",30)
141+
assertfeat.name=="foo"
142+
assertlen(gl.features.list())==1
143+
144+
feat.delete()
145+
assertlen(gl.features.list())==0
146+
147+
148+
deftest_pagination(gl,project):
149+
project2=gl.projects.create({"name":"project-page-2"})
150+
151+
list1=gl.projects.list(per_page=1,page=1)
152+
list2=gl.projects.list(per_page=1,page=2)
153+
assertlen(list1)==1
154+
assertlen(list2)==1
155+
assertlist1[0].id!=list2[0].id
156+
157+
project2.delete()
158+
159+
160+
deftest_rate_limits(gl):
161+
settings=gl.settings.get()
162+
settings.throttle_authenticated_api_enabled=True
163+
settings.throttle_authenticated_api_requests_per_period=1
164+
settings.throttle_authenticated_api_period_in_seconds=3
165+
settings.save()
166+
167+
projects=list()
168+
foriinrange(0,20):
169+
projects.append(gl.projects.create({"name":str(i)+"ok"}))
170+
171+
withpytest.raises(gitlab.GitlabCreateError)ase:
172+
foriinrange(20,40):
173+
projects.append(
174+
gl.projects.create(
175+
{"name":str(i)+"shouldfail"},obey_rate_limit=False
176+
)
177+
)
178+
179+
assert"Retry later"instr(e.value)
180+
181+
settings.throttle_authenticated_api_enabled=False
182+
settings.save()
183+
[project.delete()forprojectinprojects]

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp