a Æ*Naã@sÂddlZddlZdd„Zdd„Zejjdddd „ƒZd d „Zd d „Zdd„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*d+„ZdS),éNcCsÎ|j ddi¡}t|tjjjƒs$J‚t|jjddƒdks>J‚|jjddi|j d}|j ¡}|jjdd }|jjd d }||vrŠ||vsŽJ‚||vrž||vs¢J‚t|ƒtt|ƒƒksºJ‚|  ¡|  ¡dS) NÚnameÚ admin_projectZadmin)ÚsearchéÚ sudo_project)ZsudoF)Zas_listT)Úowned) ÚprojectsÚcreateÚ isinstanceÚgitlabÚv4ÚobjectsZProjectÚlenÚlistÚidÚdelete)ÚglÚuserrrÚcreatedZ created_genr©rú}/private/var/folders/js/6pj4vh5d4zd0k6bxv74qrbhr0000gr/T/pip-target-22xwyzbs/lib/python/tests/functional/api/test_projects.pyÚtest_create_projects rcCs|d}d}|j ||dœ¡}t|j ¡ƒdks0J‚d|_| ¡|j |j¡}|jdksZJ‚| ¡t|j ¡ƒdksxJ‚dS)Nzhttp://example.comzhttp://example/img.svg)Zlink_urlÚ image_urlrzhttp://another.example.comr) Zbadgesr rrrÚsaveÚgetrr)ÚprojectZ badge_imageZ badge_linkZbadgerrrÚtest_project_badgessrzCommented out in legacy test)ÚreasoncCsp|j ¡}t|ƒsJ‚|d}|j ¡}t|ƒ}|d}d|_| ¡| ¡|j ¡}t|ƒ|dkslJ‚dS)Nréÿÿÿÿr)ÚboardsrrÚlistsÚpositionrr)rrZboardr Z begin_sizeZ last_listrrrÚtest_project_boards+s    r"cCsØ|j ¡}t|ƒdksJ‚|j dd¡}|jdks6J‚|jdksDJ‚t|j ¡ƒdksZJ‚t|jjddidƒdksxJ‚|j dd¡}|j d¡}|jdks J‚t|j ¡ƒdks¶J‚| ¡t|j ¡ƒdksÔJ‚dS)NrÚkeyZvalue1r)Zcustom_attributesZvalue2) ZcustomattributesrrÚsetr#Úvaluerrr)rrÚattrsÚattrrrrÚtest_project_custom_attributes;s  r(cCsˆ|j dddœ¡|j ¡}t|ƒdks,J‚|d}d|_| ¡|j ¡d}|jdks^J‚| ¡| ¡t|j ¡ƒdks„J‚dS)NZenv1zhttp://fake.env/whatever)rÚ external_urlrrzhttp://new.env/whatever)Ú environmentsr rrr)rÚstopr)rr*Ú environmentrrrÚtest_project_environmentsNsÿ r-cCs|j ¡}t|tƒsJ‚dS©N)Úeventsrr )rr/rrrÚtest_project_eventsas r0cCspd}d}| ||¡}|d|ks$J‚|d d¡s6J‚|d d|¡sLJ‚|dd |d|d¡kslJ‚dS) Nztest.txtztesting contentsZaltÚurlz /uploads/ú/Zmarkdownz[{}]({}))ÚuploadÚ startswithÚendswithÚformat)rÚfilenameÚ file_contentsZ uploaded_filerrrÚtest_project_file_uploadsfs   ÿr9cCsZ|j d|ji¡}|j |j¡}|jd|jks4J‚|j ¡}|jtdd„|ƒvsVJ‚dS)NÚ namespacercSs|jSr.)r)Ú fork_projectrrrÚyóz$test_project_forks..) Úforksr ÚusernamerrrZforked_from_projectrÚmap)rrrÚforkr;r>rrrÚtest_project_forksss  rBcCs\|j ddi¡}t|j ¡ƒdks&J‚d|_| ¡|j |j¡}|jdusPJ‚| ¡dS)Nr1zhttp://hook.urlrT) Úhooksr rrZ note_eventsrrrr)rÚhookrrrÚtest_project_hooks|srEcCs | ¡dSr.)Z housekeeping©rrrrÚtest_project_housekeepingˆsrGcCs²|j dddœ¡}|j ¡}t|ƒdks,J‚|j d¡}||dksHJ‚d|_| ¡|jdksdJ‚| ¡|j duszJ‚|  ¡|j dusJ‚|  ¡t|j ¡ƒdks®J‚dS) NÚlabelz#778899)rÚcolorrrZ labelupdatedTF) Úlabelsr rrrÚnew_namerrÚ subscribeZ subscribedZ unsubscriber)rrHrJrrrÚtest_project_labelsŒs  rMcCsŠ|j ddi¡}t|j ¡ƒdks&J‚d|_| ¡d|_| ¡|j |j¡}|j dks^J‚t|  ¡ƒdksrJ‚t|  ¡ƒdks†J‚dS)NÚtitleZ milestone1rz2020-01-01T00:00:00ZÚcloseÚclosedr) Z milestonesr rrZdue_daterZ state_eventrrÚstateZissuesZmerge_requests)rZ milestonerrrÚtest_project_milestones¢srRcCsx|j ddi¡}t|j ¡ƒdks&J‚t|j ¡ƒdkss,