|
31 | 31 | gl.auth() |
32 | 32 | assert(isinstance(gl.user, gitlab.v4.objects.CurrentUser)) |
33 | 33 |
|
| 34 | +# sidekiq |
| 35 | +out = gl.sidekiq.queue_metrics() |
| 36 | +assert(isinstance(out, dict)) |
| 37 | +assert('pages' in out['queues']) |
| 38 | +out = gl.sidekiq.process_metrics() |
| 39 | +assert(isinstance(out, dict)) |
| 40 | +assert('hostname' in out['processes'][0]) |
| 41 | +out = gl.sidekiq.job_stats() |
| 42 | +assert(isinstance(out, dict)) |
| 43 | +assert('processed' in out['jobs']) |
| 44 | +out = gl.sidekiq.compound_metrics() |
| 45 | +assert(isinstance(out, dict)) |
| 46 | +assert('jobs' in out) |
| 47 | +assert('processes' in out) |
| 48 | +assert('queues' in out) |
| 49 | + |
34 | 50 | # settings |
35 | 51 | settings = gl.settings.get() |
36 | 52 | settings.default_projects_limit = 42 |
37 | 53 | settings.save() |
38 | 54 | settings = gl.settings.get() |
39 | 55 | assert(settings.default_projects_limit == 42) |
40 | 56 |
|
41 | | -# user manipulations |
| 57 | +# users |
42 | 58 | new_user = gl.users.create({'email': 'foo@bar.com', 'username': 'foo', |
43 | 59 | 'name': 'foo', 'password': 'foo_password'}) |
44 | 60 | users_list = gl.users.list() |
|
61 | 77 | actual = sorted(list(gl.users.list(search='foo')), cmp=usercmp) |
62 | 78 | assert len(expected) == len(actual) |
63 | 79 | assert len(gl.users.list(search='asdf')) == 0 |
| 80 | +foobar_user.bio = 'This is the user bio' |
| 81 | +foobar_user.save() |
64 | 82 |
|
65 | 83 | # SSH keys |
66 | 84 | key = new_user.keys.create({'title': 'testkey', 'key': SSH_KEY}) |
|
78 | 96 | foobar_user.delete() |
79 | 97 | assert(len(gl.users.list()) == 3) |
80 | 98 |
|
| 99 | +# current user mail |
| 100 | +mail = gl.user.emails.create({'email': 'current@user.com'}) |
| 101 | +assert(len(gl.user.emails.list()) == 1) |
| 102 | +mail.delete() |
| 103 | +assert(len(gl.user.emails.list()) == 0) |
| 104 | + |
81 | 105 | # current user key |
82 | 106 | key = gl.user.keys.create({'title': 'testkey', 'key': SSH_KEY}) |
83 | 107 | assert(len(gl.user.keys.list()) == 1) |
84 | 108 | key.delete() |
85 | 109 | assert(len(gl.user.keys.list()) == 0) |
86 | 110 |
|
| 111 | +# templates |
| 112 | +assert(gl.dockerfiles.list()) |
| 113 | +dockerfile = gl.dockerfiles.get('Node') |
| 114 | +assert(dockerfile.content is not None) |
| 115 | + |
| 116 | +assert(gl.gitignores.list()) |
| 117 | +gitignore = gl.gitignores.get('Node') |
| 118 | +assert(gitignore.content is not None) |
| 119 | + |
| 120 | +assert(gl.gitlabciymls.list()) |
| 121 | +gitlabciyml = gl.gitlabciymls.get('Nodejs') |
| 122 | +assert(gitlabciyml.content is not None) |
| 123 | + |
| 124 | +assert(gl.licenses.list()) |
| 125 | +license = gl.licenses.get('bsd-2-clause', project='mytestproject', |
| 126 | + fullname='mytestfullname') |
| 127 | +assert('mytestfullname' in license.content) |
| 128 | + |
87 | 129 | # groups |
88 | 130 | user1 = gl.users.create({'email': 'user1@test.com', 'username': 'user1', |
89 | 131 | 'name': 'user1', 'password': 'user1_pass'}) |
|
121 | 163 |
|
122 | 164 | group2.members.delete(gl.user.id) |
123 | 165 |
|
| 166 | +# group notification settings |
| 167 | +settings = group2.notificationsettings.get() |
| 168 | +settings.level = 'disabled' |
| 169 | +settings.save() |
| 170 | +settings = group2.notificationsettings.get() |
| 171 | +assert(settings.level == 'disabled') |
| 172 | + |
124 | 173 | # hooks |
125 | 174 | hook = gl.hooks.create({'url': 'http://whatever.com'}) |
126 | 175 | assert(len(gl.hooks.list()) == 1) |
|
175 | 224 | ] |
176 | 225 | } |
177 | 226 | admin_project.commits.create(data) |
| 227 | +assert('---' in admin_project.commits.list()[0].diff()[0]['diff']) |
178 | 228 |
|
| 229 | +# commit status |
| 230 | +commit = admin_project.commits.list()[0] |
| 231 | +status = commit.statuses.create({'state': 'success', 'sha': commit.id}) |
| 232 | +assert(len(commit.statuses.list()) == 1) |
| 233 | + |
| 234 | +# commit comment |
| 235 | +commit.comments.create({'note': 'This is a commit comment'}) |
| 236 | +assert(len(commit.comments.list()) == 1) |
| 237 | + |
| 238 | +# repository |
179 | 239 | tree = admin_project.repository_tree() |
180 | | -assert(len(tree) == 2) |
| 240 | +assert(len(tree) != 0) |
181 | 241 | assert(tree[0]['name'] == 'README.rst') |
182 | 242 | blob_id = tree[0]['id'] |
183 | 243 | blob = admin_project.repository_raw_blob(blob_id) |
|
186 | 246 | archive2 = admin_project.repository_archive('master') |
187 | 247 | assert(archive1 == archive2) |
188 | 248 |
|
| 249 | +# environments |
| 250 | +admin_project.environments.create({'name': 'env1', 'external_url': |
| 251 | + 'http://fake.env/whatever'}) |
| 252 | +envs = admin_project.environments.list() |
| 253 | +assert(len(envs) == 1) |
| 254 | +env = admin_project.environments.get(envs[0].id) |
| 255 | +env.external_url = 'http://new.env/whatever' |
| 256 | +env.save() |
| 257 | +env = admin_project.environments.get(envs[0].id) |
| 258 | +assert(env.external_url == 'http://new.env/whatever') |
| 259 | +env.delete() |
| 260 | +assert(len(admin_project.environments.list()) == 0) |
| 261 | + |
| 262 | +# events |
| 263 | +admin_project.events.list() |
| 264 | + |
| 265 | +# forks |
| 266 | +fork = admin_project.forks.create({'namespace': user1.username}) |
| 267 | +p = gl.projects.get(fork.id) |
| 268 | +assert(p.forked_from_project['id'] == admin_project.id) |
| 269 | + |
| 270 | +# project hooks |
| 271 | +hook = admin_project.hooks.create({'url': 'http://hook.url'}) |
| 272 | +assert(len(admin_project.hooks.list()) == 1) |
| 273 | +hook.note_events = True |
| 274 | +hook.save() |
| 275 | +hook = admin_project.hooks.get(hook.id) |
| 276 | +assert(hook.note_events is True) |
| 277 | +hook.delete() |
| 278 | + |
189 | 279 | # deploy keys |
190 | 280 | deploy_key = admin_project.keys.create({'title': 'foo@bar', 'key': DEPLOY_KEY}) |
191 | 281 | project_keys = list(admin_project.keys.list()) |
|
231 | 321 | assert(len(admin_project.issues.list(state='opened')) == 2) |
232 | 322 | assert(len(admin_project.issues.list(milestone='milestone1')) == 1) |
233 | 323 | assert(m1.issues().next().title == 'my issue 1') |
| 324 | +note = issue1.notes.create({'body': 'This is an issue note'}) |
| 325 | +assert(len(issue1.notes.list()) == 1) |
| 326 | +note.delete() |
| 327 | +assert(len(issue1.notes.list()) == 0) |
234 | 328 |
|
235 | 329 | # tags |
236 | 330 | tag1 = admin_project.tags.create({'tag_name': 'v1.0', 'ref': 'master'}) |
|
240 | 334 | assert(tag1.release['description'] == 'Description 2') |
241 | 335 | tag1.delete() |
242 | 336 |
|
| 337 | +# project snippet |
| 338 | +admin_project.snippets_enabled = True |
| 339 | +admin_project.save() |
| 340 | +snippet = admin_project.snippets.create( |
| 341 | + {'title': 'snip1', 'file_name': 'foo.py', 'code': 'initial content', |
| 342 | + 'visibility': gitlab.v4.objects.VISIBILITY_PRIVATE} |
| 343 | +) |
| 344 | +snippet.file_name = 'bar.py' |
| 345 | +snippet.save() |
| 346 | +snippet = admin_project.snippets.get(snippet.id) |
| 347 | +assert(snippet.content() == 'initial content') |
| 348 | +assert(snippet.file_name == 'bar.py') |
| 349 | +size = len(admin_project.snippets.list()) |
| 350 | +snippet.delete() |
| 351 | +assert(len(admin_project.snippets.list()) == (size - 1)) |
| 352 | + |
243 | 353 | # triggers |
244 | 354 | tr1 = admin_project.triggers.create({'description': 'trigger1'}) |
245 | 355 | assert(len(admin_project.triggers.list()) == 1) |
|
330 | 440 | assert(len(snippets) == 0) |
331 | 441 | snippet = gl.snippets.create({'title': 'snippet1', 'file_name': 'snippet1.py', |
332 | 442 | 'content': 'import gitlab'}) |
333 | | -snippet = gl.snippets.get(1) |
| 443 | +snippet = gl.snippets.get(snippet.id) |
334 | 444 | snippet.title = 'updated_title' |
335 | 445 | snippet.save() |
336 | | -snippet = gl.snippets.get(1) |
| 446 | +snippet = gl.snippets.get(snippet.id) |
337 | 447 | assert(snippet.title == 'updated_title') |
338 | 448 | content = snippet.content() |
339 | 449 | assert(content == 'import gitlab') |
340 | 450 | snippet.delete() |
341 | | -assert(len(gl.snippets.list()) == 0) |
|
0 commit comments