ó zn¯Sc@sµdZddlZddlZddlZddlZddlZddlZddlZddlmZddl m Z ej j Z d„Zd„Zdejfd„ƒYZdS( s%Tests for setuptools.find_packages().iÿÿÿÿN(t find_packages(tskipIfcs€tjƒ}|d}ytj||ƒt‰Wn tttfk rRt‰nXtj |ƒt ƒj d‡fd†ƒˆS(Nt can_symlinkcsˆS(N(((tcan(sM/usr/local/lib/python2.7/site-packages/setuptools/tests/test_find_packages.pyts( ttempfiletmktemptostsymlinktTruetOSErrortNotImplementedErrortAttributeErrortFalsetremovetglobalstupdate(tTESTFNt symlink_path((RsM/usr/local/lib/python2.7/site-packages/setuptools/tests/test_find_packages.pyRs     cCs3tjƒdko"tjd dk}tƒo2| S(NtWindowsii(ii(tplatformtsystemtsyst version_infoR(t bad_symlink((sM/usr/local/lib/python2.7/site-packages/setuptools/tests/test_find_packages.pyt has_symlinks%tTestFindPackagescBsºeZd„Zd„Zd„Zdd„Zdd„Zd„Zd„Z d„Z d„Z d „Z e eƒ d ƒd „ƒZd „Zd „Zd„Zd„Zd„Zd„ZRS(cCstjƒ|_|jƒdS(N(Rtmkdtemptdist_dirt_make_pkg_structure(tself((sM/usr/local/lib/python2.7/site-packages/setuptools/tests/test_find_packages.pytsetUp&scCstj|jƒdS(N(tshutiltrmtreeR(R((sM/usr/local/lib/python2.7/site-packages/setuptools/tests/test_find_packages.pyttearDown*scCsî|jd|jƒ|_|jd|jƒ|jd|jƒ|_|jd|jƒ|jd|jƒ|_|jd|jƒ|jd|jƒ|_|jd|jƒ|_|jd |jƒ|jd |jƒ|jd |jƒd S( sGMake basic package structure. dist/ docs/ conf.py pkg/ __pycache__/ nspkg/ mod.py subpkg/ assets/ asset __init__.py setup.py tdocssconf.pytpkgt __pycache__tnspkgsmod.pytsubpkgtassetstassets __init__.pyssetup.pyN(t_mkdirRtdocs_dirt_touchtpkg_dirt ns_pkg_dirt sub_pkg_dirt asset_dir(R((sM/usr/local/lib/python2.7/site-packages/setuptools/tests/test_find_packages.pyR-scCs/|rtjj||ƒ}ntj|ƒ|S(N(Rtpathtjointmkdir(RR1t parent_dir((sM/usr/local/lib/python2.7/site-packages/setuptools/tests/test_find_packages.pyR*Js cCs;|rtjj||ƒ}nt|dƒ}|jƒ|S(Ntw(RR1R2topentclose(RR1tdir_tfp((sM/usr/local/lib/python2.7/site-packages/setuptools/tests/test_find_packages.pyR,Ps  cCs<|jd|jƒt|jƒ}|j|ddgƒdS(Ns __init__.pyR$s pkg.subpkg(R,R-RRt assertEqual(Rtpackages((sM/usr/local/lib/python2.7/site-packages/setuptools/tests/test_find_packages.pyttest_regular_packageWscCs,|jd|jƒt|jddƒ}dS(Ns __init__.pytexcludespkg.*(spkg.*(R,R-RR(RR;((sM/usr/local/lib/python2.7/site-packages/setuptools/tests/test_find_packages.pyt test_exclude\scCsg|jd|jƒ|jd|jƒ}|jd|ƒt|jddgƒ}|j|dgƒdS(sM If include is specified, other packages should be excluded. s __init__.pyt other_pkgtincludeN(R,R-R*RRR:(Rtalt_dirR;((sM/usr/local/lib/python2.7/site-packages/setuptools/tests/test_find_packages.pyttest_include_excludes_otheras cCsztjtjj|jdƒƒ|jd|jƒ}|jd|ƒ|jd|ƒt |jƒ}|j d|kƒdS(Nspkg/subpkg/assetss some.datas __init__.pysfile.dats pkg.some.data( R R!RR1R2RR*R-R,Rt assertTrue(Rtdata_dirR;((sM/usr/local/lib/python2.7/site-packages/setuptools/tests/test_find_packages.pyttest_dir_with_dot_is_skippedks cCs]|jd|jƒ}|jd|ƒ}|jd|ƒt|jƒ}|jd|kƒdS(sk Ensure that a package in a non-package such as build/pkg/__init__.py is excluded. tbuildR$s __init__.pys build.pkgN(R*RR,RRC(Rt build_dirt build_pkg_dirR;((sM/usr/local/lib/python2.7/site-packages/setuptools/tests/test_find_packages.pyt,test_dir_with_packages_in_subdir_is_excludedss sSymlink support requiredcCsa|jd|jƒtjj|jdƒ}tjd|ƒt|jƒ}|jd|kƒdS(s¨ A symbolically-linked directory should be treated like any other directory when matched as a package. Create a link from lpkg -> pkg. s __init__.pytlpkgR$N( R,R-RR1R2RRRRC(Rt linked_pkgR;((sM/usr/local/lib/python2.7/site-packages/setuptools/tests/test_find_packages.pyt$test_symlinked_packages_are_included~s cCs |jt|ƒt|ƒƒdS(N(R:tset(Rtactualtexpected((sM/usr/local/lib/python2.7/site-packages/setuptools/tests/test_find_packages.pyt_assert_packagesscCs>t|jddgddgƒ}|j|dddgƒdS(NR@spkg*R=spkg.subpkg.assetsR$s pkg.nspkgs pkg.subpkg(tfind_420_packagesRRP(RR;((sM/usr/local/lib/python2.7/site-packages/setuptools/tests/test_find_packages.pyttest_pep420_ns_packagescCs8t|jddgƒ}|j|ddddgƒdS(NR=spkg.subpkg.assetsR#R$s pkg.nspkgs pkg.subpkg(RQRRP(RR;((sM/usr/local/lib/python2.7/site-packages/setuptools/tests/test_find_packages.pyt"test_pep420_ns_package_no_includes•scCs8t|jƒ}dddddg}|j||ƒdS(NR#R$s pkg.nspkgs pkg.subpkgspkg.subpkg.assets(RQRRP(RR;RO((sM/usr/local/lib/python2.7/site-packages/setuptools/tests/test_find_packages.pyt.test_pep420_ns_package_no_includes_or_excludesšscCsK|jd|jƒt|jdddgƒ}|j|dddgƒdS(Ns __init__.pyR=R#spkg.subpkg.assetsR$s pkg.nspkgs pkg.subpkg(R,R-RQRRP(RR;((sM/usr/local/lib/python2.7/site-packages/setuptools/tests/test_find_packages.pyt3test_regular_package_with_nested_pep420_ns_packages scCs[tj|jƒtjtjj|jdƒƒt|jƒ}|j|dddgƒdS(Nspkg/subpkg/assetsR$s pkg.nspkgs pkg.subpkg( R R!R+RR1R2RRQRP(RR;((sM/usr/local/lib/python2.7/site-packages/setuptools/tests/test_find_packages.pyt*test_pep420_ns_package_no_non_package_dirs¦sN(t__name__t __module__RR"RtNoneR*R,R<R>RBRERIRRRLRPRRRSRTRURV(((sM/usr/local/lib/python2.7/site-packages/setuptools/tests/test_find_packages.pyR$s"              (t__doc__RRR RtunittestRt setuptoolsRtsetuptools.tests.py26compatRtPEP420PackageFindertfindRQRRtTestCaseR(((sM/usr/local/lib/python2.7/site-packages/setuptools/tests/test_find_packages.pyts