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

Commit88c2505

Browse files
nejchJohnVillalovos
authored andcommitted
refactor: migrate legacy EE tests to pytest
1 parent4eca9b9 commit88c2505

File tree

9 files changed

+173
-165
lines changed

9 files changed

+173
-165
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
deftest_project_boards(project):
2+
assertnotproject.boards.list()
3+
4+
board=project.boards.create({"name":"testboard"})
5+
board=project.boards.get(board.id)
6+
7+
project.boards.delete(board.id)
8+
assertnotproject.boards.list()
9+
10+
11+
deftest_group_boards(group):
12+
assertnotgroup.boards.list()
13+
14+
board=group.boards.create({"name":"testboard"})
15+
board=group.boards.get(board.id)
16+
17+
group.boards.delete(board.id)
18+
assertnotgroup.boards.list()

‎tests/functional/api/test_epics.py‎

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
importpytest
2+
3+
4+
deftest_epics(group):
5+
epic=group.epics.create({"title":"Test epic"})
6+
epic.title="Fixed title"
7+
epic.labels= ["label1","label2"]
8+
epic.save()
9+
10+
epic=group.epics.get(epic.iid)
11+
assertepic.title=="Fixed title"
12+
assertepic.labels== ["label1","label2"]
13+
assertgroup.epics.list()
14+
15+
16+
@pytest.mark.xfail(reason="404 on issue.id")
17+
deftest_epic_issues(epic,issue):
18+
assertnotepic.issues.list()
19+
20+
epic_issue=epic.issues.create({"issue_id":issue.id})
21+
assertepic.issues.list()
22+
23+
epic_issue.delete()
24+
assertnotepic.issues.list()
25+
26+
27+
deftest_epic_notes(epic):
28+
assertnotepic.notes.list()
29+
30+
epic.notes.create({"body":"Test note"})
31+
assertepic.notes.list()

‎tests/functional/api/test_gitlab.py‎

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,23 @@ def test_sidekiq_compound_metrics(gl):
8282
assert"queues"inout
8383

8484

85+
deftest_geo_nodes(gl):
86+
# Very basic geo nodes tests because we only have 1 node.
87+
nodes=gl.geonodes.list()
88+
assertisinstance(nodes,list)
89+
90+
status=gl.geonodes.status()
91+
assertisinstance(status,list)
92+
93+
94+
deftest_gitlab_license(gl):
95+
license=gl.get_license()
96+
assert"user_limit"inlicense
97+
98+
withpytest.raises(gitlab.GitlabLicenseError,match="The license key is invalid."):
99+
gl.set_license("dummy key")
100+
101+
85102
deftest_gitlab_settings(gl):
86103
settings=gl.settings.get()
87104
settings.default_projects_limit=42

‎tests/functional/api/test_groups.py‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,17 @@ def test_group_labels(group):
138138
assertlabelnotingroup.labels.list()
139139

140140

141+
@pytest.mark.xfail(reason="/ldap/groups endpoint is gone")
142+
deftest_group_ldap_links(gl,group):
143+
ldap_cn="common-name"
144+
ldap_provider="ldap-provider"
145+
assertgl.ldapgroups.list()
146+
147+
group.add_ldap_group_link(ldap_cn,30,ldap_provider)
148+
group.ldap_sync()
149+
group.delete_ldap_group_link(ldap_cn)
150+
151+
141152
deftest_group_notification_settings(group):
142153
settings=group.notificationsettings.get()
143154
settings.level="disabled"

‎tests/functional/api/test_issues.py‎

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,22 @@ def test_issue_labels(project, issue):
5050
assertissuenotinproject.issues.list(labels="None")
5151

5252

53+
deftest_issue_links(project,issue):
54+
linked_issue=project.issues.create({"title":"Linked issue"})
55+
source_issue,target_issue=issue.links.create(
56+
{"target_project_id":project.id,"target_issue_iid":linked_issue.iid}
57+
)
58+
assertsource_issue==issue
59+
asserttarget_issue==linked_issue
60+
61+
links=issue.links.list()
62+
assertlinks
63+
64+
link_id=links[0].issue_link_id
65+
issue.links.delete(link_id)
66+
assertnotissue.links.list()
67+
68+
5369
deftest_issue_events(issue):
5470
events=issue.resourcelabelevents.list()
5571
assertisinstance(events,list)

‎tests/functional/api/test_merge_requests.py‎

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,59 @@ def test_merge_request_rebase(project):
117117
assertmr.rebase()
118118

119119

120+
@pytest.mark.xfail(reason="project /approvers endpoint is gone")
121+
deftest_project_approvals(project):
122+
mr=project.mergerequests.list()[0]
123+
approval=project.approvals.get()
124+
125+
reset_value=approval.reset_approvals_on_push
126+
approval.reset_approvals_on_push=notreset_value
127+
approval.save()
128+
129+
approval=project.approvals.get()
130+
assertreset_value!=approval.reset_approvals_on_push
131+
132+
project.approvals.set_approvers([1], [])
133+
approval=project.approvals.get()
134+
assertapproval.approvers[0]["user"]["id"]==1
135+
136+
approval=mr.approvals.get()
137+
approval.approvals_required=2
138+
approval.save()
139+
approval=mr.approvals.get()
140+
assertapproval.approvals_required==2
141+
142+
approval.approvals_required=3
143+
approval.save()
144+
approval=mr.approvals.get()
145+
assertapproval.approvals_required==3
146+
147+
mr.approvals.set_approvers(1, [1], [])
148+
approval=mr.approvals.get()
149+
assertapproval.approvers[0]["user"]["id"]==1
150+
151+
152+
deftest_project_merge_request_approval_rules(group,project):
153+
approval_rules=project.approvalrules.list(get_all=True)
154+
assertnotapproval_rules
155+
156+
project.approvalrules.create(
157+
{"name":"approval-rule","approvals_required":2,"group_ids": [group.id]}
158+
)
159+
approval_rules=project.approvalrules.list(get_all=True)
160+
assertlen(approval_rules)==1
161+
assertapproval_rules[0].approvals_required==2
162+
163+
approval_rules[0].save()
164+
approval_rules=project.approvalrules.list(get_all=True)
165+
assertlen(approval_rules)==1
166+
assertapproval_rules[0].approvals_required==2
167+
168+
approval_rules[0].delete()
169+
ars=project.approvalrules.list(get_all=True)
170+
assertlen(ars)==0
171+
172+
120173
deftest_merge_request_reset_approvals(gitlab_url,project,wait_for_sidekiq):
121174
bot=project.access_tokens.create({"name":"bot","scopes": ["api"]})
122175
bot_gitlab=gitlab.Gitlab(gitlab_url,private_token=bot.token)
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
importpytest
2+
3+
4+
@pytest.mark.xfail(reason="need to relax RESTObject init for non-dict responses")
5+
deftest_project_push_rules(project):
6+
push_rules=project.pushrules.get()
7+
assertnotpush_rules
8+
9+
push_rules=project.pushrules.create({"deny_delete_tag":True})
10+
assertpush_rules.deny_delete_tag
11+
12+
push_rules.deny_delete_tag=False
13+
push_rules.save()
14+
15+
push_rules=project.pushrules.get()
16+
assertpush_rules
17+
assertnotpush_rules.deny_delete_tag
18+
19+
push_rules.delete()
20+
assertnotpush_rules

‎tests/functional/conftest.py‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -529,6 +529,13 @@ def group_label(group):
529529
returngroup.labels.create(data)
530530

531531

532+
@pytest.fixture(scope="module")
533+
defepic(group):
534+
"""Fixture for group epic API resource tests."""
535+
_id=uuid.uuid4().hex
536+
returngroup.epics.create({"title":f"epic-{_id}","description":f"Epic{_id}"})
537+
538+
532539
@pytest.fixture(scope="module")
533540
defvariable(project):
534541
"""Variable fixture for project variable API resource tests."""

‎tests/functional/ee-test.py‎

Lines changed: 0 additions & 165 deletions
Original file line numberDiff line numberDiff line change
@@ -1,165 +0,0 @@
1-
#!/usr/bin/env python
2-
3-
importgitlab
4-
5-
P1="root/project1"
6-
P2="root/project2"
7-
MR_P1=1
8-
I_P1=1
9-
I_P2=1
10-
EPIC_ISSUES= [4,5]
11-
EPIC_NOTES= ["rubeus","hagrid"]
12-
G1="group1"
13-
LDAP_CN="app1"
14-
LDAP_PROVIDER="ldapmain"
15-
16-
17-
defstart_log(message):
18-
print(f"Testing{message}... ",end="")
19-
20-
21-
defend_log():
22-
print("OK")
23-
24-
25-
gl=gitlab.Gitlab.from_config("ee")
26-
project1=gl.projects.get(P1)
27-
project2=gl.projects.get(P2)
28-
issue_p1=project1.issues.get(I_P1)
29-
issue_p2=project2.issues.get(I_P2)
30-
group1=gl.groups.get(G1)
31-
mr=project1.mergerequests.get(1)
32-
33-
start_log("MR approvals")
34-
approval=project1.approvals.get()
35-
v=approval.reset_approvals_on_push
36-
approval.reset_approvals_on_push=notv
37-
approval.save()
38-
approval=project1.approvals.get()
39-
assertv!=approval.reset_approvals_on_push
40-
project1.approvals.set_approvers(1, [1], [])
41-
approval=project1.approvals.get()
42-
assertapproval.approvers[0]["user"]["id"]==1
43-
44-
approval=mr.approvals.get()
45-
approval.approvals_required=2
46-
approval.save()
47-
approval=mr.approvals.get()
48-
assertapproval.approvals_required==2
49-
approval.approvals_required=3
50-
approval.save()
51-
approval=mr.approvals.get()
52-
assertapproval.approvals_required==3
53-
mr.approvals.set_approvers(1, [1], [])
54-
approval=mr.approvals.get()
55-
assertapproval.approvers[0]["user"]["id"]==1
56-
57-
ars=project1.approvalrules.list(get_all=True)
58-
assertlen(ars)==0
59-
project1.approvalrules.create(
60-
{"name":"approval-rule","approvals_required":1,"group_ids": [group1.id]}
61-
)
62-
ars=project1.approvalrules.list(get_all=True)
63-
assertlen(ars)==1
64-
assertars[0].approvals_required==2
65-
ars[0].save()
66-
ars=project1.approvalrules.list(get_all=True)
67-
assertlen(ars)==1
68-
assertars[0].approvals_required==2
69-
ars[0].delete()
70-
ars=project1.approvalrules.list(get_all=True)
71-
assertlen(ars)==0
72-
end_log()
73-
74-
start_log("geo nodes")
75-
# very basic tests because we only have 1 node...
76-
nodes=gl.geonodes.list()
77-
status=gl.geonodes.status()
78-
end_log()
79-
80-
start_log("issue links")
81-
# bit of cleanup just in case
82-
forlinkinissue_p1.links.list():
83-
issue_p1.links.delete(link.issue_link_id)
84-
85-
src,dst=issue_p1.links.create({"target_project_id":P2,"target_issue_iid":I_P2})
86-
links=issue_p1.links.list()
87-
link_id=links[0].issue_link_id
88-
issue_p1.links.delete(link_id)
89-
end_log()
90-
91-
start_log("LDAP links")
92-
# bit of cleanup just in case
93-
ifhasattr(group1,"ldap_group_links"):
94-
forlinkingroup1.ldap_group_links:
95-
group1.delete_ldap_group_link(link["cn"],link["provider"])
96-
assertgl.ldapgroups.list()
97-
group1.add_ldap_group_link(LDAP_CN,30,LDAP_PROVIDER)
98-
group1.ldap_sync()
99-
group1.delete_ldap_group_link(LDAP_CN)
100-
end_log()
101-
102-
start_log("boards")
103-
# bit of cleanup just in case
104-
forboardinproject1.boards.list():
105-
ifboard.name=="testboard":
106-
board.delete()
107-
board=project1.boards.create({"name":"testboard"})
108-
board=project1.boards.get(board.id)
109-
project1.boards.delete(board.id)
110-
111-
forboardingroup1.boards.list():
112-
ifboard.name=="testboard":
113-
board.delete()
114-
board=group1.boards.create({"name":"testboard"})
115-
board=group1.boards.get(board.id)
116-
group1.boards.delete(board.id)
117-
end_log()
118-
119-
start_log("push rules")
120-
pr=project1.pushrules.get()
121-
ifpr:
122-
pr.delete()
123-
pr=project1.pushrules.create({"deny_delete_tag":True})
124-
pr.deny_delete_tag=False
125-
pr.save()
126-
pr=project1.pushrules.get()
127-
assertprisnotNone
128-
assertpr.deny_delete_tagisFalse
129-
pr.delete()
130-
end_log()
131-
132-
start_log("license")
133-
license=gl.get_license()
134-
assert"user_limit"inlicense
135-
try:
136-
gl.set_license("dummykey")
137-
exceptExceptionase:
138-
assert"The license key is invalid."ine.error_message
139-
end_log()
140-
141-
start_log("epics")
142-
epic=group1.epics.create({"title":"Test epic"})
143-
epic.title="Fixed title"
144-
epic.labels= ["label1","label2"]
145-
epic.save()
146-
epic=group1.epics.get(epic.iid)
147-
assertepic.title=="Fixed title"
148-
assertlen(group1.epics.list())
149-
150-
# issues
151-
assertnotepic.issues.list()
152-
foriinEPIC_ISSUES:
153-
epic.issues.create({"issue_id":i})
154-
assertlen(EPIC_ISSUES)==len(epic.issues.list())
155-
foreiinepic.issues.list():
156-
ei.delete()
157-
158-
# epic notes
159-
assertnotepic.notes.list()
160-
foriinEPIC_NOTES:
161-
epic.notes.create({"body":i})
162-
assertlen(EPIC_NOTES==len(epic.notes.list()))
163-
164-
epic.delete()
165-
end_log()

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp