|
1 |
| -""" |
2 |
| -Temporary module to run legacy tests as a single pytest test case |
3 |
| -as they're all plain asserts at module level. |
4 |
| -""" |
| 1 | +importpytest |
5 | 2 |
|
| 3 | +importgitlab |
6 | 4 |
|
7 |
| -deftest_api_v4(gl): |
8 |
| -fromtools.functionalimportpython_test_v4 |
| 5 | + |
| 6 | +deftest_auth_from_config(gl,temp_dir): |
| 7 | +"""Test token authentication from config file""" |
| 8 | +test_gitlab=gitlab.Gitlab.from_config( |
| 9 | +config_files=[temp_dir/"python-gitlab.cfg"] |
| 10 | + ) |
| 11 | +test_gitlab.auth() |
| 12 | +assertisinstance(test_gitlab.user,gitlab.v4.objects.CurrentUser) |
| 13 | + |
| 14 | + |
| 15 | +deftest_broadcast_messages(gl): |
| 16 | +msg=gl.broadcastmessages.create({"message":"this is the message"}) |
| 17 | +msg.color="#444444" |
| 18 | +msg.save() |
| 19 | +msg_id=msg.id |
| 20 | + |
| 21 | +msg=gl.broadcastmessages.list(all=True)[0] |
| 22 | +assertmsg.color=="#444444" |
| 23 | + |
| 24 | +msg=gl.broadcastmessages.get(msg_id) |
| 25 | +assertmsg.color=="#444444" |
| 26 | + |
| 27 | +msg.delete() |
| 28 | +assertlen(gl.broadcastmessages.list())==0 |
| 29 | + |
| 30 | + |
| 31 | +deftest_markdown(gl): |
| 32 | +html=gl.markdown("foo") |
| 33 | +assert"foo"inhtml |
| 34 | + |
| 35 | + |
| 36 | +deftest_lint(gl): |
| 37 | +success,errors=gl.lint("Invalid") |
| 38 | +assertsuccessisFalse |
| 39 | +asserterrors |
| 40 | + |
| 41 | + |
| 42 | +deftest_sidekiq_queue_metrics(gl): |
| 43 | +out=gl.sidekiq.queue_metrics() |
| 44 | +assertisinstance(out,dict) |
| 45 | +assert"pages"inout["queues"] |
| 46 | + |
| 47 | + |
| 48 | +deftest_sidekiq_process_metrics(gl): |
| 49 | +out=gl.sidekiq.process_metrics() |
| 50 | +assertisinstance(out,dict) |
| 51 | +assert"hostname"inout["processes"][0] |
| 52 | + |
| 53 | + |
| 54 | +deftest_sidekiq_job_stats(gl): |
| 55 | +out=gl.sidekiq.job_stats() |
| 56 | +assertisinstance(out,dict) |
| 57 | +assert"processed"inout["jobs"] |
| 58 | + |
| 59 | + |
| 60 | +deftest_sidekiq_compound_metrics(gl): |
| 61 | +out=gl.sidekiq.compound_metrics() |
| 62 | +assertisinstance(out,dict) |
| 63 | +assert"jobs"inout |
| 64 | +assert"processes"inout |
| 65 | +assert"queues"inout |
| 66 | + |
| 67 | + |
| 68 | +deftest_gitlab_settings(gl): |
| 69 | +settings=gl.settings.get() |
| 70 | +settings.default_projects_limit=42 |
| 71 | +settings.save() |
| 72 | +settings=gl.settings.get() |
| 73 | +assertsettings.default_projects_limit==42 |
| 74 | + |
| 75 | + |
| 76 | +deftest_template_dockerfile(gl): |
| 77 | +assertgl.dockerfiles.list() |
| 78 | + |
| 79 | +dockerfile=gl.dockerfiles.get("Node") |
| 80 | +assertdockerfile.contentisnotNone |
| 81 | + |
| 82 | + |
| 83 | +deftest_template_gitignore(gl): |
| 84 | +assertgl.gitignores.list() |
| 85 | +gitignore=gl.gitignores.get("Node") |
| 86 | +assertgitignore.contentisnotNone |
| 87 | + |
| 88 | + |
| 89 | +deftest_template_gitlabciyml(gl): |
| 90 | +assertgl.gitlabciymls.list() |
| 91 | +gitlabciyml=gl.gitlabciymls.get("Nodejs") |
| 92 | +assertgitlabciyml.contentisnotNone |
| 93 | + |
| 94 | + |
| 95 | +deftest_template_license(gl): |
| 96 | +assertgl.licenses.list() |
| 97 | +license=gl.licenses.get( |
| 98 | +"bsd-2-clause",project="mytestproject",fullname="mytestfullname" |
| 99 | + ) |
| 100 | +assert"mytestfullname"inlicense.content |
| 101 | + |
| 102 | + |
| 103 | +deftest_hooks(gl): |
| 104 | +hook=gl.hooks.create({"url":"http://whatever.com"}) |
| 105 | +assertlen(gl.hooks.list())==1 |
| 106 | + |
| 107 | +hook.delete() |
| 108 | +assertlen(gl.hooks.list())==0 |
| 109 | + |
| 110 | + |
| 111 | +deftest_namespaces(gl): |
| 112 | +namespace=gl.namespaces.list(all=True) |
| 113 | +assertlen(namespace)!=0 |
| 114 | + |
| 115 | +namespace=gl.namespaces.list(search="root",all=True)[0] |
| 116 | +assertnamespace.kind=="user" |
| 117 | + |
| 118 | + |
| 119 | +deftest_notification_settings(gl): |
| 120 | +settings=gl.notificationsettings.get() |
| 121 | +settings.level=gitlab.NOTIFICATION_LEVEL_WATCH |
| 122 | +settings.save() |
| 123 | + |
| 124 | +settings=gl.notificationsettings.get() |
| 125 | +assertsettings.level==gitlab.NOTIFICATION_LEVEL_WATCH |
| 126 | + |
| 127 | + |
| 128 | +deftest_user_activities(gl): |
| 129 | +activities=gl.user_activities.list(query_parameters={"from":"2019-01-01"}) |
| 130 | +assertisinstance(activities,list) |
| 131 | + |
| 132 | + |
| 133 | +deftest_events(gl): |
| 134 | +events=gl.events.list() |
| 135 | +assertisinstance(events,list) |
| 136 | + |
| 137 | + |
| 138 | +@pytest.mark.skip |
| 139 | +deftest_features(gl): |
| 140 | +feat=gl.features.set("foo",30) |
| 141 | +assertfeat.name=="foo" |
| 142 | +assertlen(gl.features.list())==1 |
| 143 | + |
| 144 | +feat.delete() |
| 145 | +assertlen(gl.features.list())==0 |
| 146 | + |
| 147 | + |
| 148 | +deftest_pagination(gl,project): |
| 149 | +project2=gl.projects.create({"name":"project-page-2"}) |
| 150 | + |
| 151 | +list1=gl.projects.list(per_page=1,page=1) |
| 152 | +list2=gl.projects.list(per_page=1,page=2) |
| 153 | +assertlen(list1)==1 |
| 154 | +assertlen(list2)==1 |
| 155 | +assertlist1[0].id!=list2[0].id |
| 156 | + |
| 157 | +project2.delete() |
| 158 | + |
| 159 | + |
| 160 | +deftest_rate_limits(gl): |
| 161 | +settings=gl.settings.get() |
| 162 | +settings.throttle_authenticated_api_enabled=True |
| 163 | +settings.throttle_authenticated_api_requests_per_period=1 |
| 164 | +settings.throttle_authenticated_api_period_in_seconds=3 |
| 165 | +settings.save() |
| 166 | + |
| 167 | +projects=list() |
| 168 | +foriinrange(0,20): |
| 169 | +projects.append(gl.projects.create({"name":str(i)+"ok"})) |
| 170 | + |
| 171 | +withpytest.raises(gitlab.GitlabCreateError)ase: |
| 172 | +foriinrange(20,40): |
| 173 | +projects.append( |
| 174 | +gl.projects.create( |
| 175 | + {"name":str(i)+"shouldfail"},obey_rate_limit=False |
| 176 | + ) |
| 177 | + ) |
| 178 | + |
| 179 | +assert"Retry later"instr(e.value) |
| 180 | + |
| 181 | +settings.throttle_authenticated_api_enabled=False |
| 182 | +settings.save() |
| 183 | + [project.delete()forprojectinprojects] |