Ë
    nûàg‹  ã                   ó~   — d Z ddlZddlZddlZddlZddlmZmZ ddlm	Z	 ddl
mZ  G d„ d«      Z G d	„ d
«      Zd„ Zy)z%Tests for automatic package discoveryé    N)Úfind_namespace_packagesÚfind_packages)ÚFlatLayoutPackageFinderé   )Ú	os_helperc                   óÜ   — e Zd Zd„ Zd„ Zd„ Zdd„Zdd„Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zej                  j!                   ej$                  «        d¬«      d„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestFindPackagesc                 óV   — t        j                  «       | _        | j                  «        y ©N)ÚtempfileÚmkdtempÚdist_dirÚ_make_pkg_structure©ÚselfÚmethods     úa/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/setuptools/tests/test_find_packages.pyÚsetup_methodzTestFindPackages.setup_method   s   € Ü ×(Ñ(Ó*ˆŒØ× Ñ Õ"ó    c                 óB   — t        j                  | j                  «       y r   )ÚshutilÚrmtreer   r   s     r   Úteardown_methodz TestFindPackages.teardown_method   s   € Ü�‰�d—m‘mÕ$r   c                 óž  — | j                  d| j                  «      | _        | j                  d| j                  «       | j                  d| j                  «      | _        | j                  d| j                  «       | j                  d| j                  «      | _        | j                  d| j
                  «       | j                  d| j                  «      | _        | j                  d| j                  «      | _        | j                  d	| j                  «       | j                  d
| j                  «       | j                  d| j                  «       y)aG  Make basic package structure.

        dist/
            docs/
                conf.py
            pkg/
                __pycache__/
                nspkg/
                    mod.py
                subpkg/
                    assets/
                        asset
                    __init__.py
            setup.py

        Údocszconf.pyÚpkgÚ__pycache__Únspkgzmod.pyÚsubpkgÚassetsÚassetú__init__.pyzsetup.pyN)Ú_mkdirr   Údocs_dirÚ_touchÚpkg_dirÚ
ns_pkg_dirÚsub_pkg_dirÚ	asset_dir)r   s    r   r   z$TestFindPackages._make_pkg_structure   sã   € ð" Ÿ™ F¨D¯M©MÓ:ˆŒØ�‰�I˜tŸ}™}Ô-Ø—{‘{ 5¨$¯-©-Ó8ˆŒØ�‰�M 4§<¡<Ô0ØŸ+™+ g¨t¯|©|Ó<ˆŒØ�‰�H˜dŸo™oÔ.ØŸ;™; x°·±Ó>ˆÔØŸ™ X¨t×/?Ñ/?Ó@ˆŒØ�‰�G˜TŸ^™^Ô,Ø�‰�M 4×#3Ñ#3Ô4Ø�‰�J §¡Õ.r   Nc                 ót   — |r t         j                  j                  ||«      }t        j                  |«       |S r   )ÚosÚpathÚjoinÚmkdir)r   r,   Ú
parent_dirs      r   r#   zTestFindPackages._mkdir4   s)   € ÙÜ—7‘7—<‘< 
¨DÓ1ˆDÜ
�‰�ŒØˆr   c                 ó~   — |r t         j                  j                  ||«      }t        |d«      j	                  «        |S )NÚwb)r+   r,   r-   ÚopenÚclose)r   r,   Údir_s      r   r%   zTestFindPackages._touch:   s1   € ÙÜ—7‘7—<‘<  dÓ+ˆDÜˆT�4Ó×ÑÔ Øˆr   c                 óx   — | j                  d| j                  «       t        | j                  «      }|ddgk(  sJ ‚y )Nr"   r   ú
pkg.subpkg©r%   r&   r   r   ©r   Úpackagess     r   Útest_regular_packagez%TestFindPackages.test_regular_package@   s5   € Ø�‰�M 4§<¡<Ô0Ü  §¡Ó/ˆØ˜E <Ð0Ò0Ð0Ñ0r   c                 óz   — | j                  d| j                  «       t        | j                  d¬«      }|dgk(  sJ ‚y )Nr"   )zpkg.*©Úexcluder   r7   r8   s     r   Útest_excludezTestFindPackages.test_excludeE   s4   € Ø�‰�M 4§<¡<Ô0Ü  §¡¸
ÔCˆØ˜E˜7Ò"Ð"Ñ"r   c                 ó²   — | j                  d| j                  «       | j                  d| j                  «       t        | j                  d¬«      }|dgk(  sJ ‚y)zW
        Excluding a parent package should not exclude child packages as well.
        r"   )r   r<   r6   N)r%   r&   r(   r   r   r8   s     r   Útest_exclude_recursivez'TestFindPackages.test_exclude_recursiveJ   sJ   € ð 	�‰�M 4§<¡<Ô0Ø�‰�M 4×#3Ñ#3Ô4Ü  §¡¸ÔAˆØ˜L˜>Ò)Ð)Ñ)r   c                 óØ   — | j                  d| j                  «       | j                  d| j                  «      }| j                  d|«       t	        | j                  dg¬«      }|dgk(  sJ ‚y)zM
        If include is specified, other packages should be excluded.
        r"   Ú	other_pkg)ÚincludeN)r%   r&   r#   r   r   )r   Úalt_dirr9   s      r   Útest_include_excludes_otherz,TestFindPackages.test_include_excludes_otherS   sZ   € ð 	�‰�M 4§<¡<Ô0Ø—+‘+˜k¨4¯=©=Ó9ˆØ�‰�M 7Ô+Ü  §¡¸¸ÔFˆØ˜K˜=Ò(Ð(Ñ(r   c                 ó4  — t        j                  t        j                  j	                  | j
                  d«      «       | j                  d| j                  «      }| j                  d|«       | j                  d|«       t        | j
                  «      }d|vsJ ‚y )Núpkg/subpkg/assetsz	some.datar"   zfile.datzpkg.some.data)
r   r   r+   r,   r-   r   r#   r&   r%   r   )r   Údata_dirr9   s      r   Útest_dir_with_dot_is_skippedz-TestFindPackages.test_dir_with_dot_is_skipped]   sn   € Ü�‰”b—g‘g—l‘l 4§=¡=Ð2EÓFÔGØ—;‘;˜{¨D¯L©LÓ9ˆØ�‰�M 8Ô,Ø�‰�J Ô)Ü  §¡Ó/ˆØ hÑ.Ð.Ñ.r   c                 óº   — | j                  d| j                  «      }| j                  d|«      }| j                  d|«       t        | j                  «      }d|vsJ ‚y)zk
        Ensure that a package in a non-package such as build/pkg/__init__.py
        is excluded.
        Úbuildr   r"   z	build.pkgN)r#   r   r%   r   )r   Ú	build_dirÚbuild_pkg_dirr9   s       r   Ú,test_dir_with_packages_in_subdir_is_excludedz=TestFindPackages.test_dir_with_packages_in_subdir_is_excludede   sR   € ð
 —K‘K ¨¯©Ó7ˆ	ØŸ™ E¨9Ó5ˆØ�‰�M =Ô1Ü  §¡Ó/ˆØ (Ñ*Ð*Ñ*r   zSymlink support required)Úreasonc                 ó4  — | j                  d| j                  «       t        j                  j	                  | j
                  d«      }t        j                  d|«       t        j                  j                  |«      sJ ‚t        | j
                  «      }d|v sJ ‚y)z¨
        A symbolically-linked directory should be treated like any other
        directory when matched as a package.

        Create a link from lpkg -> pkg.
        r"   Úlpkgr   N)	r%   r&   r+   r,   r-   r   ÚsymlinkÚisdirr   )r   Ú
linked_pkgr9   s      r   Ú$test_symlinked_packages_are_includedz5TestFindPackages.test_symlinked_packages_are_includedp   sn   € ð 	�‰�M 4§<¡<Ô0Ü—W‘W—\‘\ $§-¡-°Ó8ˆ
Ü
�
‰
�5˜*Ô%Ü�w‰w�}‰}˜ZÔ(Ð(Ð(Ü  §¡Ó/ˆØ˜Ñ!Ð!Ñ!r   c                 ó6   — t        |«      t        |«      k(  sJ ‚y r   )Úset)r   ÚactualÚexpecteds      r   Ú_assert_packagesz!TestFindPackages._assert_packages   s   € Ü�6‹{œc (›mÒ+Ð+Ñ+r   c                 ó`   — t        | j                  dgdg¬«      }| j                  |g d¢«       y )Nzpkg*úpkg.subpkg.assets)rC   r=   ©r   ú	pkg.nspkgr6   ©r   r   rZ   r8   s     r   Útest_pep420_ns_packagez'TestFindPackages.test_pep420_ns_package‚   s0   € Ü*Ø�M‰M F 8Ð6IÐ5Jô
ˆð 	×Ñ˜hÒ(JÕKr   c                 ó\   — t        | j                  dg¬«      }| j                  |g d¢«       y )Nr\   r<   )r   r   r^   r6   r_   r8   s     r   Ú"test_pep420_ns_package_no_includesz3TestFindPackages.test_pep420_ns_package_no_includesˆ   s'   € Ü*¨4¯=©=ÐCVÐBWÔXˆØ×Ñ˜hÒ(RÕSr   c                 óZ   — t        | j                  «      }g d¢}| j                  ||«       y )N)r   r   r^   r6   r\   r_   )r   r9   rY   s      r   Ú.test_pep420_ns_package_no_includes_or_excludesz?TestFindPackages.test_pep420_ns_package_no_includes_or_excludesŒ   s%   € Ü*¨4¯=©=Ó9ˆÚRˆØ×Ñ˜h¨Õ1r   c                 ó–   — | j                  d| j                  «       t        | j                  ddg¬«      }| j	                  |g d¢«       y )Nr"   r   r\   r<   r]   )r%   r&   r   r   rZ   r8   s     r   Ú3test_regular_package_with_nested_pep420_ns_packageszDTestFindPackages.test_regular_package_with_nested_pep420_ns_packages‘   s@   € Ø�‰�M 4§<¡<Ô0Ü*Ø�M‰M FÐ,?Ð#@ô
ˆð 	×Ñ˜hÒ(JÕKr   c                 ó  — t        j                  | j                  «       t        j                  t        j                  j                  | j                  d«      «       t        | j                  «      }| j                  |g d¢«       y )NrG   r]   )	r   r   r$   r+   r,   r-   r   r   rZ   r8   s     r   Ú*test_pep420_ns_package_no_non_package_dirsz;TestFindPackages.test_pep420_ns_package_no_non_package_dirs˜   sQ   € Ü�‰�d—m‘mÔ$Ü�‰”b—g‘g—l‘l 4§=¡=Ð2EÓFÔGÜ*¨4¯=©=Ó9ˆØ×Ñ˜hÒ(JÕKr   r   )Ú__name__Ú
__module__Ú__qualname__r   r   r   r#   r%   r:   r>   r@   rE   rI   rN   ÚpytestÚmarkÚskipifr   Úcan_symlinkrU   rZ   r`   rb   rd   rf   rh   © r   r   r	   r	      s”   „ ò#ò%ò/ó:óò1ò
#ò
*ò)ò/ò	+ð ‡[�[×ÑÐ1˜I×1Ñ1Ó3Ð3Ð<VÐÓWñ"ó Xð"ò,òLòTò2ò
LóLr   r	   c            	       óÌ   — e Zd Zg d¢ddgfddgddgfg d¢g fg d¢dgfg d	¢dgfg d
¢g d¢fg d¢g d¢fdœZej
                  j                  dej                  «       «      d„ «       Zy)ÚTestFlatLayoutPackageFinder)z.pkg/__init__.pyúpkg/__init__.pyzpkg/nested/file.txtr   z
pkg.nestedz_pkg/__init__.pyzpkg/_private/__init__.pyzpkg._private)zinvalid-pkg/__init__.pyzother.pkg/__init__.pyzyet,another/file.py)rs   zdocs/conf.pyzdocs/readme.rst)rs   ztests/test_pkg.pyztests/__init__.py)rs   zexamples/__init__.pyzexamples/file.pyzexample/other_file.pyzpkg/example/__init__.pyzpkg/examples/__init__.py)r   zpkg.exampleszpkg.example)zhtmlcov/index.htmlrs   ztasks/__init__.pyztasks/subpackage/__init__.pyzfabfile/__init__.pyzfabfile/subpackage/__init__.pyzpkg/tasks/__init__.pyzpkg/fabfile/__init__.py)r   z	pkg.taskszpkg.fabfile)zhidden-folderszprivate-packageszinvalid-namer   ÚtestsÚexamplesztool-specificÚexamplec                 ó®   — | j                   |   \  }}t        ||«       t        j                  t	        |«      «      }t        |«      t        |«      k(  sJ ‚y r   )ÚEXAMPLESÚensure_filesr   ÚfindÚstrrW   )r   Útmp_pathrv   ÚfilesÚexpected_packagesÚfound_packagess         r   Ú&test_unwanted_directories_not_includedzBTestFlatLayoutPackageFinder.test_unwanted_directories_not_includedÎ   sM   € à#'§=¡=°Ñ#9Ñ ˆÐ Ü�X˜uÔ%Ü0×5Ñ5´c¸(³mÓDˆÜ�>Ó"¤cÐ*;Ó&<Ò<Ð<Ñ<r   N)	ri   rj   rk   rx   rl   rm   ÚparametrizeÚkeysr€   rp   r   r   rr   rr   Ÿ   s¦   „ ò KØ�LÐ!ð
ð
  Ð!;Ð<Ø�NÐ#ð
ò
 XØð
ò HÈ%ÈÐQâIØˆGð
ò
ò 3ð
ò
ò 0ð
ñ=,€Hð\ ‡[�[×Ñ˜Y¨¯©«Ó8ñ=ó 9ñ=r   rr   c                 óv   — |D ]4  }| |z  }|j                   j                  dd¬«       |j                  «        Œ6 y )NT)ÚparentsÚexist_ok)Úparentr.   Útouch)Ú	root_pathr}   Úfiler,   s       r   ry   ry   Ö   s;   € Øò ˆØ˜4ÑˆØ�‰×Ñ $°ÐÔ6Ø�
‰
�ñr   )Ú__doc__r+   r   r   rl   Ú
setuptoolsr   r   Úsetuptools.discoveryr   Úcompat.py39r   r	   rr   ry   rp   r   r   ú<module>rŽ      s<   ðÙ +ã 	Û Û ã ç =Ý 8å "÷MLñ ML÷`4=ñ 4=ónr   