/
ee-test.py
executable file
·98 lines (81 loc) · 2.39 KB
/
ee-test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!/usr/bin/env python
import gitlab
P1 = 'root/project1'
P2 = 'root/project2'
I_P1 = 1
I_P2 = 1
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)
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], [])
approval = project1.approvals.get()
assert(approval.approvers[0]['user']['id'] == 1)
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'])
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()