summaryrefslogtreecommitdiff
path: root/tools/functional/ee-test.py
diff options
context:
space:
mode:
authorNejc Habjan <nejc.habjan@siemens.com>2020-09-05 00:15:04 +0200
committerNejc Habjan <nejc.habjan@siemens.com>2020-09-15 22:05:48 +0200
commit79489c775141c4ddd1f7aecae90dae8061d541fe (patch)
tree7c8f45e232049e0cad13af57e05b7ccbd8c6bb82 /tools/functional/ee-test.py
parent0d89a6e61bd4ae244c1545463272ef830d72dda9 (diff)
downloadgitlab-79489c775141c4ddd1f7aecae90dae8061d541fe.tar.gz
test(env): replace custom scripts with pytest and docker-compose
Diffstat (limited to 'tools/functional/ee-test.py')
-rwxr-xr-xtools/functional/ee-test.py159
1 files changed, 159 insertions, 0 deletions
diff --git a/tools/functional/ee-test.py b/tools/functional/ee-test.py
new file mode 100755
index 0000000..3f75655
--- /dev/null
+++ b/tools/functional/ee-test.py
@@ -0,0 +1,159 @@
+#!/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]
+G1 = "group1"
+LDAP_CN = "app1"
+LDAP_PROVIDER = "ldapmain"
+
+
+def start_log(message):
+ print("Testing %s... " % 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(all=True)
+assert len(ars) == 0
+project1.approvalrules.create(
+ {"name": "approval-rule", "approvals_required": 1, "group_ids": [group1.id]}
+)
+ars = project1.approvalrules.list(all=True)
+assert len(ars) == 1
+assert ars[0].approvals_required == 2
+ars[0].save()
+ars = project1.approvalrules.list(all=True)
+assert len(ars) == 1
+assert ars[0].approvals_required == 2
+ars[0].delete()
+ars = project1.approvalrules.list(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 == False
+pr.delete()
+end_log()
+
+start_log("license")
+l = gl.get_license()
+assert "user_limit" in l
+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.delete()
+end_log()