\bgdZddlZddlZddlZddlZddlmZmZddlm Z ddl m Z GddZ Gd d Z d ZdS) z%Tests for automatic package discoveryN)find_namespace_packages find_packages)FlatLayoutPackageFinder) os_helperceZdZdZdZdZddZddZdZdZ d Z d Z d Z d Z ejej d dZdZdZdZdZdZdZdS)TestFindPackagesc^tj|_|dSN)tempfilemkdtempdist_dir_make_pkg_structureselfmethods t/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/setuptools/tests/test_find_packages.py setup_methodzTestFindPackages.setup_methods* (**    """""c8tj|jdSr )shutilrmtreerrs rteardown_methodz TestFindPackages.teardown_methods dm$$$$$rc|d|j|_|d|j|d|j|_|d|j|d|j|_|d|j|d|j|_|d|j|_|d |j|d |j|d |jd S) aGMake basic package structure. dist/ docs/ conf.py pkg/ __pycache__/ nspkg/ mod.py subpkg/ assets/ asset __init__.py setup.py docszconf.pypkg __pycache__nspkgzmod.pysubpkgassetsasset __init__.pyzsetup.pyN)_mkdirrdocs_dir_touchpkg_dir ns_pkg_dir sub_pkg_dir asset_dir)rs rrz$TestFindPackages._make_pkg_structures" FDM::  It}---{{5$-88  M4<000++gt|<< Hdo...;;x>>Xt/?@@ GT^,,, M4#3444 J .....rNcr|r tj||}tj||Sr )ospathjoinmkdir)rr, parent_dirs rr#zTestFindPackages._mkdir4s1  27<< D11D  rc|r tj||}t|d|S)Nwb)r+r,r-openclose)rr,dir_s rr%zTestFindPackages._touch:s@  ,7<<d++D T4    rcx|d|jt|j}|ddgksJdS)Nr"r pkg.subpkgr%r&rrrpackagess rtest_regular_packagez%TestFindPackages.test_regular_package@sC M4<000 //E<0000000rcz|d|jt|jd}|dgksJdS)Nr")zpkg.*excluderr7r8s r test_excludezTestFindPackages.test_excludeEsE M4<000  CCCE7""""""rc|d|j|d|jt|jd}|dgksJdS)zW Excluding a parent package should not exclude child packages as well. r")rr<r6N)r%r&r(rrr8s rtest_exclude_recursivez'TestFindPackages.test_exclude_recursiveJs^ M4<000 M4#3444 AAAL>))))))rc|d|j|d|j}|d|t |jdg}|dgksJdS)zM If include is specified, other packages should be excluded. r" other_pkg)includeN)r%r&r#rr)ralt_dirr9s rtest_include_excludes_otherz,TestFindPackages.test_include_excludes_otherSsr M4<000++k4=99 M7+++  FFFK=((((((rc6tjtj|jd|d|j}|d||d|t|j}d|vsJdS)Npkg/subpkg/assetsz some.datar"zfile.datz pkg.some.data) rrr+r,r-rr#r&r%r)rdata_dirr9s rtest_dir_with_dot_is_skippedz-TestFindPackages.test_dir_with_dot_is_skipped]s bgll4=2EFFGGG;;{DL99 M8,,, J))) //h......rc|d|j}|d|}|d|t|j}d|vsJdS)zk Ensure that a package in a non-package such as build/pkg/__init__.py is excluded. buildrr"z build.pkgN)r#rr%r)r build_dir build_pkg_dirr9s r,test_dir_with_packages_in_subdir_is_excludedz=TestFindPackages.test_dir_with_packages_in_subdir_is_excludedesf KK77  E955  M=111 //(******rzSymlink support required)reasonc&|d|jtj|jd}tjd|tj|sJt|j}d|vsJdS)z A symbolically-linked directory should be treated like any other directory when matched as a package. Create a link from lpkg -> pkg. r"lpkgrN) r%r&r+r,r-rsymlinkisdirr)r linked_pkgr9s r$test_symlinked_packages_are_includedz5TestFindPackages.test_symlinked_packages_are_includedps M4<000W\\$-88  5*%%%w}}Z((((( //!!!!!!rcJt|t|ksJdSr )set)ractualexpecteds r_assert_packagesz!TestFindPackages._assert_packagess%6{{c(mm++++++rcht|jdgdg}||gddS)Nzpkg*pkg.subpkg.assets)rCr=r pkg.nspkgr6rrrZr8s rtest_pep420_ns_packagez'TestFindPackages.test_pep420_ns_packagesJ* MF86I5J    h(J(J(JKKKKKrcdt|jdg}||gddS)Nr\r<)rrr^r6r_r8s r"test_pep420_ns_package_no_includesz3TestFindPackages.test_pep420_ns_package_no_includess=*4=CVBWXXX h(R(R(RSSSSSrcbt|j}gd}|||dS)N)rrr^r6r\r_)rr9rYs r.test_pep420_ns_package_no_includes_or_excludesz?TestFindPackages.test_pep420_ns_package_no_includes_or_excludess8*4=99RRR h11111rc|d|jt|jddg}||gddS)Nr"rr\r<r])r%r&rrrZr8s r3test_regular_package_with_nested_pep420_ns_packageszDTestFindPackages.test_regular_package_with_nested_pep420_ns_packagess^ M4<000* MF,?#@    h(J(J(JKKKKKrctj|jtjtj|jdt|j}||gddS)NrGr]) rrr$r+r,r-rrrZr8s r*test_pep420_ns_package_no_non_package_dirsz;TestFindPackages.test_pep420_ns_package_no_non_package_dirssi dm$$$ bgll4=2EFFGGG*4=99 h(J(J(JKKKKKrr )__name__ __module__ __qualname__rrrr#r%r:r>r@rErIrNpytestmarkskipifr can_symlinkrUrZr`rbrdrfrhrrr r sm###%%%///:  111 ### ***)))/// + + + [1I1333""c*;&<&<<<<<<rs++  ========888888""""""MLMLMLMLMLMLMLML`4=4=4=4=4=4=4=4=nr