a *Na@s ddlZddlZddlmZmZmZmZddlmZm Z m Z ddl m Z dZ dZeddd d d d d Zedddd d ddZedddd ddddZddZeeeddZddZddZddZdd Zeed,d!d"Zd#d$Zd%d&Zejd'ie fd(d)id)fgd*d+ZdS)-N)HTTMockresponseurlmatch with_httmock)Gitlab GitlabList USER_AGENT) CurrentUserusernamehttp localhostz /api/v4/userget)schemenetlocpathmethodcCs,ddi}dttd}td||dd|S)N content-typeapplication/jsonz${{"id": {0:d}, "username": "{1:s}"}}zutf-8)formatuser_idr encoderurlrequestheaderscontentrq/private/var/folders/js/6pj4vh5d4zd0k6bxv74qrbhr0000gr/T/pip-target-22xwyzbs/lib/python/tests/unit/test_gitlab.py resp_get_users  r!z /api/v4/testscCs*dddddddd}d}td||dd|S) Nrr z=; rel="next")rX-Page X-Next-Page X-Per-Page X-Total-PagesX-TotalLinkz [{"a": "b"}]rrrrrrr resp_page_1(s r*z.*page=2)rrrrquerycCs(ddddddd}d}td||dd|S)Nrr"r )rr#r$r%r&r'z [{"c": "d"}]rrr)rrrr resp_page_27s r,cCstt|jddd}Wdn1s,0Yt|dksFJ|jdksTJ|jdksbJ|jduspJ|jdks~J|jdksJ|j dksJ|j dksJtt t |}Wdn1s0Yt|dksJ|ddd ksJ|dd d ksJdS) N/testsF)as_listr"z/http://localhost/api/v4/tests?per_page=1&page=2r rabcd) rr* http_listlenZ _next_urlZ current_pageZ prev_pageZ next_pageZper_pageZ total_pagestotalr,list)globjZ test_listrrr test_gitlab_build_listKs , &r9cCs"|jdddd}t|tsJdS)Nr-FT)r.all)r3 isinstancer)r7resultrrr $test_gitlab_all_omitted_when_as_list^sr=cCs|jdksJdS)Nhttp://localhost)r gl_trailingrrr test_gitlab_strip_base_urldsrAcCs|jdksJdS)Nzhttp://localhost/api/v4)Zapi_urlr?rrr test_gitlab_strip_api_urlhsrBcCs|d}|dksJdS)Nz /projectsz http://localhost/api/v4/projects)Z _build_url)r@rrrr test_gitlab_build_urlls rDcCsH|j}t|}t|}t|ts(Jt|ds6J|j|ksDJdS)N_objects)rEpickledumpsloadsr;rhasattr)r7Zoriginal_gl_objectsZpickledZ unpickledrrr test_gitlab_pickabilityqs   rJcCs<||jjtksJ|jjtks(Jt|jts8JdS)N)authuserr idrr;r )r7callbackrrr test_gitlab_token_authzsrOcCs|}td|gdS)None)r from_config)default_config config_pathrrr test_gitlab_from_configsrTcCs4Gdddt}|}|d|g}t||s0JdS)Nc@s eZdZdS)z2test_gitlab_subclass_from_config..MyGitlabN)__name__ __module__ __qualname__rrrr MyGitlabsrXrP)rrQr;)rRrXrSr7rrr test_gitlab_subclass_from_configsrYzkwargs,expected_agent user_agentzmy-package/1.0.0cCs$tdi|}|jd|ks JdS)Nr>z User-Agent)r>)rr)kwargsZexpected_agentr7rrr test_gitlab_user_agentsr\)N)rFZpytestZhttmockrrrrZgitlabrrrZgitlab.v4.objectsr r rr!r*r,r9r=rArBrDrJrOrTrYmarkZ parametrizer\rrrr sH