3 F\*@s,ddlZddlZddlZddlZddlZddlZddlmZddlm Z ej ej j ddZ ej j ddZej j dd Zej j d dZej j d dZd dge d degZej ej j ddZejjejjedddZddZGdddejZGdddejZGdddejZGdddejZdS)N)base)test_packagingPIPFLAGS PIPVERSIONpip PBRVERSIONpbrREPODIR WHEELHOUSEz-minstallz-fPROJECTSz..ccstsdStddg}xtD]}|j}|jdd }y4ttjjt|dd}d|j kr\wWdQRXWnt k r~wYnX||krq|t ||dfVqWdS) NZtempest requirements/zsetup.pyrtr )name short_name) r setr stripsplitopenospathjoinreadIOErrordict)Zexcludesrrfr o/private/var/folders/pf/wv4htv3x0qs2c2mp0dnn0kchsvlck3/T/pip-install-emcbgzcf/pbr/pbr/tests/test_integration.py all_projects#s    r"csHeZdZeeZfddZeje j j dddkdddZ Z S) TestIntegrationc s@tjdtjjdd}|tt|jWdQRXtj dS)NZOS_TEST_TIMEOUTZ600) fixturesZEnvironmentVariablerenvirongetsuperr#setUprZ _config_git)selfenv) __class__r r!r(;s zTestIntegration.setUpPBR_INTEGRATIONN1zintegration tests not enabledc Cs|jtjdddtjjt|jgtjjtdd|jtjddtjjt|jdd tjj|jtj jd }|jtjd d d tjjt|j|g|jt j d ddt gt d}|j}|jtjd |dd g|d|jt j dddt gt d}|j}tjj|dtjtjj|dd}|jtjd|gt |g|jt j dddt gt d}|j}|j}|jtjd|gt d|g|jdkrd}x(tj|D]\}}}d|krd}qW|j||jt j dddt gt d}|j}|j}|jtjd|gt d|gdS)Nzsync-reqpythonz update.pyr)cwdzcommit-requirementsz.git diff --quiet || git commit -amrequirementsT)r/shellprojectclonegitsdistrwheel)modulespip_cmdzsetup.pyZtarballdistrz install-gitz git+file://ZnovaFz migrate.cfgz install-ez-e) useFixturerCapturedSubprocessrrrr rr$TempDirrVenvrPIP_CMDr.listdirwalkZ assertTrue) r)rvenvr.filenamerootfound_ filenamesr r r!test_integrationDsf         z TestIntegration.test_integration)__name__ __module__ __qualname__listr" scenariosr( testtools skipUnlessrr%r&rF __classcell__r r )r+r!r#7s   r#c@s.eZdZejejjdddkdddZdS)TestInstallWithoutPbrr,Nr-zintegration tests not enabledc Cs |jtjj}tjj|d}tj||jtj ddd|fdt dtjj|d}tj|t j dt j d |d t j d t j d d d}|jt j|j}|d}|d}|jtj ddd|fd|d|jt jdddg}|j}|jtjd|gddg|ddS)NZdistdirzsetup.pyr4z-dF) allow_failr/Ztestpkga& #!/usr/bin/env python import setuptools setuptools.setup( name = 'pkgTest', tests_require = ['pkgReq'], test_suite='pkgReq' ) zW [easy_install] find_links = %s )zsetup.pyz setup.cfgz( pbr zE print("FakeTest loaded and ran") )zrequirements.txtzpkgReq/__init__.py)pkgTestpkgReqrQrRZnopbrrr5test)r/)r9r$r;rrrmkdir_run_cmdsys executablePBR_ROOTtextwrapdedentrCreatePackages package_dirsr<r.rr:) r)tempdirZdist_dirZ test_pkg_dirpkgspkg_dirsZ req_pkg_dirr@r.r r r!test_install_without_pbrs2     z.TestInstallWithoutPbr.test_install_without_pbr) rGrHrIrLrMrr%r&r`r r r r!rOsrOc @seZdZdddgifdddgifdddgifddd d gifd dd d gifddd dgifgZejejjdddkdddZ dS)TestMarkersPipzpip-1.5r6z pip>=1.5,<1.6zpip-6.0z pip>=6.0,<6.1z pip-latestrzsetuptools-EL7z pip==1.4.1zsetuptools==0.9.8zsetuptools-Trustyzpip==1.5zsetuptools==2.2zsetuptools-minimumzsetuptools==0.7.2r,Nr-zintegration tests not enabledc Cs dtjdiiid}|jtj|j}|jtjj}t jj |d}|jtj d}|j }t j |x,|jD]"}|j|dddd |g|jd d qnWx*|D]"}|j|d d d|g||d d qW|j|ddddd|dg|jd d |jd|j|dddg|jd d ddS)Nzrequirements.txtzr pkg_a; python_version=='1.2' pkg_b; python_version!='1.2' ) test_markersZpkg_aZpkg_brepomarkersz-mrr z --upgradeF)r/rPzsetup.pyr4z-dz --no-indexz-frbzpkg-bfreezer)rYrZr9rr[r\r$r;rrrr<r.rTr6rUZassertIn) r)r^r_temp_dirrepo_dirr@ bin_pythonmodulepkgr r r!test_pip_versionss8        z TestMarkersPip.test_pip_versions) rGrHrIrKrLrMrr%r&rkr r r r!ras   rac@sreZdZdddgddfdddgddfd d d gddfd dd gddfgZejejjdddkdddZ dS)TestLTSSupportZEL7z pip==1.4.1zsetuptools==0.9.8T)r6 py3supportZTrustyzpip==1.5zsetuptools==2.2ZJessiez pip==1.5.6zsetuptools==5.5.1Z WheezyPrecisezsetuptools==0.6c11Fr,Nr-zintegration tests not enabledcCsdtjddkr |j r |jd|jtjd|jd}|j}dt }|j |ddd |g|j d d dS) Nrz9This combination will not install with py3, skipping test setuptools)r6zfile://%s#egg=pbrz-mrr F)r/rP) rV version_informZskipTestr9rr<r6r.rXrUr)r)r@rhr r r r!test_lts_venv_default_versionss z-TestLTSSupport.test_lts_venv_default_versions) rGrHrIrKrLrMrr%r&rqr r r r!rls rl)os.pathrshlexrVr$rLrYZ pbr.testsrrrr%r&rrrr r r=r rabspathr__file__rXr"Z BaseTestCaser#rOrarlr r r r!s(  N72