Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor: migrate legacy EE tests to pytest
- Loading branch information
1 parent
4eca9b9
commit 88c2505
Showing
9 changed files
with
173 additions
and
165 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
def test_project_boards(project): | ||
assert not project.boards.list() | ||
|
||
board = project.boards.create({"name": "testboard"}) | ||
board = project.boards.get(board.id) | ||
|
||
project.boards.delete(board.id) | ||
assert not project.boards.list() | ||
|
||
|
||
def test_group_boards(group): | ||
assert not group.boards.list() | ||
|
||
board = group.boards.create({"name": "testboard"}) | ||
board = group.boards.get(board.id) | ||
|
||
group.boards.delete(board.id) | ||
assert not group.boards.list() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
import pytest | ||
|
||
|
||
def test_epics(group): | ||
epic = group.epics.create({"title": "Test epic"}) | ||
epic.title = "Fixed title" | ||
epic.labels = ["label1", "label2"] | ||
epic.save() | ||
|
||
epic = group.epics.get(epic.iid) | ||
assert epic.title == "Fixed title" | ||
assert epic.labels == ["label1", "label2"] | ||
assert group.epics.list() | ||
|
||
|
||
@pytest.mark.xfail(reason="404 on issue.id") | ||
def test_epic_issues(epic, issue): | ||
assert not epic.issues.list() | ||
|
||
epic_issue = epic.issues.create({"issue_id": issue.id}) | ||
assert epic.issues.list() | ||
|
||
epic_issue.delete() | ||
assert not epic.issues.list() | ||
|
||
|
||
def test_epic_notes(epic): | ||
assert not epic.notes.list() | ||
|
||
epic.notes.create({"body": "Test note"}) | ||
assert epic.notes.list() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
import pytest | ||
|
||
|
||
@pytest.mark.xfail(reason="need to relax RESTObject init for non-dict responses") | ||
def test_project_push_rules(project): | ||
push_rules = project.pushrules.get() | ||
assert not push_rules | ||
|
||
push_rules = project.pushrules.create({"deny_delete_tag": True}) | ||
assert push_rules.deny_delete_tag | ||
|
||
push_rules.deny_delete_tag = False | ||
push_rules.save() | ||
|
||
push_rules = project.pushrules.get() | ||
assert push_rules | ||
assert not push_rules.deny_delete_tag | ||
|
||
push_rules.delete() | ||
assert not push_rules |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,165 +0,0 @@ | ||
#!/usr/bin/env python | ||
|
||
import gitlab | ||
|
||
P1 = "root/project1" | ||
P2 = "root/project2" | ||
MR_P1 = 1 | ||
I_P1 = 1 | ||
I_P2 = 1 | ||
EPIC_ISSUES = [4, 5] | ||
EPIC_NOTES = ["rubeus", "hagrid"] | ||
G1 = "group1" | ||
LDAP_CN = "app1" | ||
LDAP_PROVIDER = "ldapmain" | ||
|
||
|
||
def start_log(message): | ||
print(f"Testing {message}... ", end="") | ||
|
||
|
||
def end_log(): | ||
print("OK") | ||
|
||
|
||
gl = gitlab.Gitlab.from_config("ee") | ||
project1 = gl.projects.get(P1) | ||
project2 = gl.projects.get(P2) | ||
issue_p1 = project1.issues.get(I_P1) | ||
issue_p2 = project2.issues.get(I_P2) | ||
group1 = gl.groups.get(G1) | ||
mr = project1.mergerequests.get(1) | ||
|
||
start_log("MR approvals") | ||
approval = project1.approvals.get() | ||
v = approval.reset_approvals_on_push | ||
approval.reset_approvals_on_push = not v | ||
approval.save() | ||
approval = project1.approvals.get() | ||
assert v != approval.reset_approvals_on_push | ||
project1.approvals.set_approvers(1, [1], []) | ||
approval = project1.approvals.get() | ||
assert approval.approvers[0]["user"]["id"] == 1 | ||
|
||
approval = mr.approvals.get() | ||
approval.approvals_required = 2 | ||
approval.save() | ||
approval = mr.approvals.get() | ||
assert approval.approvals_required == 2 | ||
approval.approvals_required = 3 | ||
approval.save() | ||
approval = mr.approvals.get() | ||
assert approval.approvals_required == 3 | ||
mr.approvals.set_approvers(1, [1], []) | ||
approval = mr.approvals.get() | ||
assert approval.approvers[0]["user"]["id"] == 1 | ||
|
||
ars = project1.approvalrules.list(get_all=True) | ||
assert len(ars) == 0 | ||
project1.approvalrules.create( | ||
{"name": "approval-rule", "approvals_required": 1, "group_ids": [group1.id]} | ||
) | ||
ars = project1.approvalrules.list(get_all=True) | ||
assert len(ars) == 1 | ||
assert ars[0].approvals_required == 2 | ||
ars[0].save() | ||
ars = project1.approvalrules.list(get_all=True) | ||
assert len(ars) == 1 | ||
assert ars[0].approvals_required == 2 | ||
ars[0].delete() | ||
ars = project1.approvalrules.list(get_all=True) | ||
assert len(ars) == 0 | ||
end_log() | ||
|
||
start_log("geo nodes") | ||
# very basic tests because we only have 1 node... | ||
nodes = gl.geonodes.list() | ||
status = gl.geonodes.status() | ||
end_log() | ||
|
||
start_log("issue links") | ||
# bit of cleanup just in case | ||
for link in issue_p1.links.list(): | ||
issue_p1.links.delete(link.issue_link_id) | ||
|
||
src, dst = issue_p1.links.create({"target_project_id": P2, "target_issue_iid": I_P2}) | ||
links = issue_p1.links.list() | ||
link_id = links[0].issue_link_id | ||
issue_p1.links.delete(link_id) | ||
end_log() | ||
|
||
start_log("LDAP links") | ||
# bit of cleanup just in case | ||
if hasattr(group1, "ldap_group_links"): | ||
for link in group1.ldap_group_links: | ||
group1.delete_ldap_group_link(link["cn"], link["provider"]) | ||
assert gl.ldapgroups.list() | ||
group1.add_ldap_group_link(LDAP_CN, 30, LDAP_PROVIDER) | ||
group1.ldap_sync() | ||
group1.delete_ldap_group_link(LDAP_CN) | ||
end_log() | ||
|
||
start_log("boards") | ||
# bit of cleanup just in case | ||
for board in project1.boards.list(): | ||
if board.name == "testboard": | ||
board.delete() | ||
board = project1.boards.create({"name": "testboard"}) | ||
board = project1.boards.get(board.id) | ||
project1.boards.delete(board.id) | ||
|
||
for board in group1.boards.list(): | ||
if board.name == "testboard": | ||
board.delete() | ||
board = group1.boards.create({"name": "testboard"}) | ||
board = group1.boards.get(board.id) | ||
group1.boards.delete(board.id) | ||
end_log() | ||
|
||
start_log("push rules") | ||
pr = project1.pushrules.get() | ||
if pr: | ||
pr.delete() | ||
pr = project1.pushrules.create({"deny_delete_tag": True}) | ||
pr.deny_delete_tag = False | ||
pr.save() | ||
pr = project1.pushrules.get() | ||
assert pr is not None | ||
assert pr.deny_delete_tag is False | ||
pr.delete() | ||
end_log() | ||
|
||
start_log("license") | ||
license = gl.get_license() | ||
assert "user_limit" in license | ||
try: | ||
gl.set_license("dummykey") | ||
except Exception as e: | ||
assert "The license key is invalid." in e.error_message | ||
end_log() | ||
|
||
start_log("epics") | ||
epic = group1.epics.create({"title": "Test epic"}) | ||
epic.title = "Fixed title" | ||
epic.labels = ["label1", "label2"] | ||
epic.save() | ||
epic = group1.epics.get(epic.iid) | ||
assert epic.title == "Fixed title" | ||
assert len(group1.epics.list()) | ||
|
||
# issues | ||
assert not epic.issues.list() | ||
for i in EPIC_ISSUES: | ||
epic.issues.create({"issue_id": i}) | ||
assert len(EPIC_ISSUES) == len(epic.issues.list()) | ||
for ei in epic.issues.list(): | ||
ei.delete() | ||
|
||
# epic notes | ||
assert not epic.notes.list() | ||
for i in EPIC_NOTES: | ||
epic.notes.create({"body": i}) | ||
assert len(EPIC_NOTES == len(epic.notes.list())) | ||
|
||
epic.delete() | ||
end_log() | ||