î
É X5
  ã               @   sc   d  Z  d d l Z d d l Z d d l Z d d l Z d d l m Z Gd d „  d e j ƒ Z d S)z%Tests for setuptools.find_packages().é    N)Úfind_packagesc               @   sv   e  Z d  Z d d „  Z d d „  Z d d „  Z d d d	 „ Z d d
 d „ Z d d „  Z d d „  Z	 d d „  Z
 d S)ÚTestFindPackagesc             C   s   t  j ƒ  |  _ |  j ƒ  d  S)N)ÚtempfileÚmkdtempÚdist_dirÚ_make_pkg_structure)Úself© r	   úU/home/ubuntu/projects/ifolica/build/setuptools/setuptools/tests/test_find_packages.pyÚsetUp   s    zTestFindPackages.setUpc             C   s   t  j |  j ƒ d  S)N)ÚshutilÚrmtreer   )r   r	   r	   r
   ÚtearDown   s    zTestFindPackages.tearDownc             C   sî   |  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 ƒ d S)aG  Make basic package structure.

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

        Zdocszconf.pyÚpkgÚ__pycache__Znspkgzmod.pyZsubpkgZassetsZassetz__init__.pyzsetup.pyN)Ú_mkdirr   Zdocs_dirÚ_touchÚpkg_dirZ
ns_pkg_dirZsub_pkg_dirZ	asset_dir)r   r	   r	   r
   r      s    z$TestFindPackages._make_pkg_structureNc             C   s/   | r t  j j | | ƒ } n  t  j | ƒ | S)N)ÚosÚpathÚjoinÚmkdir)r   r   Z
parent_dirr	   r	   r
   r   0   s    zTestFindPackages._mkdirc             C   s;   | r t  j j | | ƒ } n  t | d ƒ } | j ƒ  | S)NÚw)r   r   r   ÚopenÚclose)r   r   Zdir_Úfpr	   r	   r
   r   6   s
    
zTestFindPackages._touchc             C   s<   |  j  d |  j ƒ t |  j ƒ } |  j | d d g ƒ d  S)Nz__init__.pyr   z
pkg.subpkg)r   r   r   r   ÚassertEqual)r   Úpackagesr	   r	   r
   Útest_regular_package=   s    z%TestFindPackages.test_regular_packagec             C   sg   |  j  d |  j ƒ |  j d |  j ƒ } |  j  d | ƒ t |  j d d g ƒ} |  j | d g ƒ d S)zM
        If include is specified, other packages should be excluded.
        z__init__.pyZ	other_pkgÚincludeN)r   r   r   r   r   r   )r   Zalt_dirr   r	   r	   r
   Útest_include_excludes_otherB   s
    z,TestFindPackages.test_include_excludes_otherc             C   sz   t  j t j j |  j d ƒ ƒ |  j d |  j ƒ } |  j d | ƒ |  j d | ƒ t	 |  j ƒ } |  j
 d | k ƒ d  S)Nzpkg/subpkg/assetsz	some.dataz__init__.pyzfile.datzpkg.some.data)r   r   r   r   r   r   r   r   r   r   Z
assertTrue)r   Zdata_dirr   r	   r	   r
   Útest_dir_with_dot_is_skippedL   s    z-TestFindPackages.test_dir_with_dot_is_skipped)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r    r!   r	   r	   r	   r
   r   
   s   
r   )	Ú__doc__r   r   r   ZunittestÚ
setuptoolsr   ZTestCaser   r	   r	   r	   r
   Ú<module>   s   