a *Nav@sJddlZddlZddlmZddlZddlZddlmZmZdZ dZ d e Z dZ dZejejd d id d Zejjejid dddZedddZededddZededddZededddZededddZededejde efe e fgddZdS) N)dedent)config USER_AGENTzmy-package/1.0.0aX[global] default = one ssl_verify = true timeout = 2 [one] url = http://one.url private_token = ABCDEF [two] url = https://two.url private_token = GHIJKL ssl_verify = false timeout = 10 [three] url = https://three.url private_token = MNOPQR ssl_verify = /path/to/CA/bundle.crt per_page = 50 [four] url = https://four.url oauth_token = STUV zZ[global] default = one user_agent = {} [one] url = http://one.url private_token = ABCDEF z?[global] [there] url = http://there.url private_token = ABCDEF z[global] [one] url = http://one.url [two] private_token = ABCDEF [three] meh = hem [four] url = http://four.url private_token = ABCDEF per_page = 200 ZPYTHON_GITLAB_CFG /some/pathcCsdgtksJdS)NrrZ _env_configrrq/private/var/folders/js/6pj4vh5d4zd0k6bxv74qrbhr0000gr/T/pip-target-22xwyzbs/lib/python/tests/unit/test_config.pytest_env_config_presentYsr T)clearcCsgtksJdS)Nrrrrrtest_env_config_missing^sr zos.path.existscCs@d|_ttjtdWdn1s20YdS)NFtest) return_valuepytestraisesrZGitlabConfigMissingErrorGitlabConfigParser) path_existsrrrtest_missing_configcsrz builtins.opencCstt}tjdd|_||_d|_tdt tj tWdn1sX0Ytt }tjdd|_||_t tj tjddWdn1s0YdS)Nr TZthereZ not_there gitlab_id)ioStringIOno_default_configmockMockcloser rrrrZ GitlabIDError valid_configGitlabDataError)m_openrfdrrrtest_invalid_idjs  & r cstttjdfddd_|_d|_tdtdt tj tjddWdn1sp0Yt tj tjddWdn1s0Yt tj }td Wdn1s0Yd |j j d ksJdS) Ncs dS)Nr)seekrrrrz#test_invalid_data..)r Z side_effectTonetworthreefourz Unsupported per_page number: 200r)rrmissing_attr_configrrrr rrrrrvalueargs)rrZemgrrr"rtest_invalid_data|s   **(r,cCs6tt}tjdd|_||_d|_t}d|j ks:Jd|j ksHJd|j ksVJ|j dusdJd|j ksrJ|jdusJ|jdusJtt}tjdd|_||_tjdd}d|j ksJd |j ksJd |j ksJ|j dusJd |j ksJ|jd usJtt}tjdd|_||_tjd d}d |j ksHJd|j ksXJd|j kshJ|j dusxJd|j ksJd|jksJd|jksJtt}tjdd|_||_tjdd}d|j ksJd|j ksJ|j dusJd|j ksJd|j ks"J|jdus2JdS)NrTr%zhttp://one.urlZABCDEFr&rzhttps://two.urlZGHIJKL Fr'zhttps://three.urlZMNOPQRz/path/to/CA/bundle.crt2r(zhttps://four.urlZSTUV)rrrrrrr rrrurl private_token oauth_tokentimeoutZ ssl_verifyZper_page)rrrcprrrtest_valid_datasV       r5cCs|d}|td|dttd|}tjdd|_||_t j dd}d|j ks`Jd|j ksnJ|j dus|Jd |jksJdS) Nz helper.shz< #!/bin/sh echo "secret" iz [global] default = helper [helper] url = https://helper.url oauth_token = helper: %s rhelperrzhttps://helper.urlsecret) write_textrchmodrrrrrr rrrr0r1r2)rrZtmp_pathr6rr4rrrtest_data_from_helpers*   r:zconfig_string,expected_agentcCs8t|}tjdd|_||_t}|j|ks4JdS)Nr) rrrrrr rr user_agent)rrZ config_stringZexpected_agentrr4rrrtest_config_user_agents r<)rostextwraprrrZgitlabrrZcustom_user_agentrformatZcustom_user_agent_configrr)patchdictenvironr r rr r,r5r:markZ parametrizer<rrrrsN        2 #