B
    '(äbc  ã               @   sZ   d Z ddlZddlZddlZddlZddlZddlmZ ddlm	Z	 G dd„ dej
ƒZdS )z!Unit tests for file system cache.é    N)ÚOptional)ÚFileSystemCachec               @   sˆ   e Zd Zddœdd„Zddœdd„Zddœdd„Zddœd	d
„Zddœdd„Zddœdd„Zde	e
e	 ddœdd„Ze	edœdd„ZdS )ÚTestFileSystemCacheN)Úreturnc             C   s,   t  ¡ | _t ¡ | _t | j¡ tƒ | _d S )N)	ÚtempfileÚmkdtempÚtempdirÚosÚgetcwdÚoldcwdÚchdirr   Úfscache)Úself© r   úD/home/dcms/DCMS/lib/python3.7/site-packages/mypy/test/testfscache.pyÚsetUp   s    

zTestFileSystemCache.setUpc             C   s   t  | j¡ t | j¡ d S )N)r	   r   r   ÚshutilÚrmtreer   )r   r   r   r   ÚtearDown   s    zTestFileSystemCache.tearDownc             C   sà   |   d¡ |   d¡ |   d¡ xrtdƒD ]f}|  d¡s:t‚|  d¡sHt‚|  d¡sVt‚|  d¡rdt‚|  d¡rrt‚|  d¡r€t‚|  d¡r(t‚q(W xHtdƒD ]<}|  d	¡r®t‚|  d
¡r¼t‚|  d¡rÊt‚|  d¡rœt‚qœW d S )Nzbar.pyzpkg/sub_package/__init__.pyzpkg/sub_package/foo.pyé   znon_existent.pyzpkg/non_existent.pyzpkg/zbar.py/zBar.pyzpkg/sub_package/__init__.PYzpkg/Sub_Package/foo.pyzPkg/sub_package/foo.py)Ú	make_fileÚrangeÚisfile_caseÚAssertionError)r   Úir   r   r   Útest_isfile_case_1   s     


z&TestFileSystemCache.test_isfile_case_1c             C   sÄ   |   d¡ |   d¡ |   d¡ xHtdƒD ]<}|  d¡r:t‚|  d¡rHt‚|  d¡rVt‚|  d¡r(t‚q(W xVtdƒD ]J}|  d¡s„t‚|  d¡s’t‚|  d¡s t‚|  d	¡r®t‚|  d
¡rrt‚qrW d S )Nzbar.pyzpkg/sub_package/__init__.pyzpkg/sub_package/foo.pyr   zBar.pyzpkg/sub_package/__init__.PYzpkg/Sub_Package/foo.pyzPkg/sub_package/foo.pyznon_existent.pyzpkg/non_existent.py)r   r   r   r   )r   r   r   r   r   Útest_isfile_case_2+   s    


z&TestFileSystemCache.test_isfile_case_2c             C   s²   |   d¡ |   d¡ |   d¡ xŽtdƒD ]‚}|  d¡s:t‚|  d¡rHt‚|  d¡rVt‚|  d¡rdt‚|  d¡rrt‚|  d	¡r€t‚|  d
¡rŽt‚|  d¡sœt‚|  d¡s(t‚q(W d S )Nzbar.pyzpkg/sub_package/__init__.pyzpkg/sub_package/foo.pyr   znon_existent.pyzpkg/non_existent.pyzBar.pyzpkg/sub_package/__init__.PYzpkg/Sub_Package/foo.pyzPkg/sub_package/foo.py)r   r   r   r   )r   r   r   r   r   Útest_isfile_case_3=   s    


z&TestFileSystemCache.test_isfile_case_3c          	   C   s¨   |   d¡ t ¡ Œ}| j d|d | j d|d |  tj |d¡¡sHt‚|  tj |d¡¡r`t‚|  tj |d¡¡rxt‚tj	dkrš|  tj |d¡¡sšt‚W d Q R X d S )Nzbar.pyzother_dir.py)Úbasezpkg/other_dir.pyzOther_Dir.py)Úwin32ÚdarwinzPKG/other_dir.py)
r   r   ÚTemporaryDirectoryr   r	   ÚpathÚjoinr   ÚsysÚplatform)r   Úotherr   r   r   Ú test_isfile_case_other_directoryM   s    


z4TestFileSystemCache.test_isfile_case_other_directory)r"   r   r   c          	   C   s`   |d kr| j }tj ||¡}tjtj |¡dd | d¡s\t|dƒ}| d¡ W d Q R X d S )NT)Úexist_okú/Úwz# test file)	r   r	   r"   r#   ÚmakedirsÚdirnameÚendswithÚopenÚwrite)r   r"   r   ÚfullpathÚfr   r   r   r   Z   s    
zTestFileSystemCache.make_file)r"   r   c             C   s   | j  tj | j|¡| j¡S )N)r   r   r	   r"   r#   r   )r   r"   r   r   r   r   c   s    zTestFileSystemCache.isfile_case)N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r'   Ústrr   r   Úboolr   r   r   r   r   r      s   	r   )Ú__doc__r	   r   r$   r   ZunittestÚtypingr   Zmypy.fscacher   ZTestCaser   r   r   r   r   Ú<module>   s   