U
    ½mœdÓ  ã                   @   s   d dl Z d dl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 ddl
mZ ddl
mZ ddlmZmZ ejd	d
„ ƒZG dd„ dƒZG dd„ deejƒZG dd„ deejejƒZG dd„ deejƒZG dd„ dƒZG dd„ deejƒZG dd„ deejƒZedk�re ¡  dS )é    Né   )ÚTraversableé   )Údata01)Úutil)Ú_path)Ú	os_helperÚimport_helperc               	   c   s0   t jdd��} t jdtd� | V  W 5 Q R X d S )NT)ÚrecordÚdefault)Úcategory)ÚwarningsÚcatch_warningsÚsimplefilterÚDeprecationWarning)Úctx© r   ú]/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/importlib_resources/tests/test_files.pyÚsuppress_known_deprecation   s    r   c                   @   s>   e Zd Zdd„ Zdd„ Ze eedƒd¡dd„ ƒZ	d	d
„ Z
dS )Ú
FilesTestsc                 C   s*   t  | j¡}| d¡ ¡ }|dks&t‚d S )Nú
utf-8.files   Hello, UTF-8 world!
)Ú	resourcesÚfilesÚdataÚjoinpathÚ
read_bytesÚAssertionError©Úselfr   Úactualr   r   r   Útest_read_bytes   s    zFilesTests.test_read_bytesc                 C   s.   t  | j¡}| d¡jdd�}|dks*t‚d S )Nr   úutf-8©ÚencodingzHello, UTF-8 world!
)r   r   r   r   Ú	read_textr   r   r   r   r   Útest_read_text   s    zFilesTests.test_read_textÚruntime_checkablez4Only suitable when typing supports runtime_checkablec                 C   s   t t | j¡tƒst‚d S ©N)Ú
isinstancer   r   r   r   r   ©r   r   r   r   Útest_traversable"   s    zFilesTests.test_traversablec              	   C   s$   t ƒ � tj| jd� W 5 Q R X dS )zx
        Files used to take a 'package' parameter. Make sure anyone
        passing by name is still supported.
        )ÚpackageN)r   r   r   r   r)   r   r   r   Útest_old_parameter)   s    zFilesTests.test_old_parameterN)Ú__name__Ú
__module__Ú__qualname__r    r%   ÚunittestZ
skipUnlessÚhasattrÚtypingr*   r,   r   r   r   r   r      s   þ
r   c                   @   s   e Zd Zdd„ ZdS )ÚOpenDiskTestsc                 C   s
   t | _d S r'   )r   r   r)   r   r   r   ÚsetUp3   s    zOpenDiskTests.setUpN©r-   r.   r/   r4   r   r   r   r   r3   2   s   r3   c                   @   s   e Zd ZdS )ÚOpenZipTestsN)r-   r.   r/   r   r   r   r   r6   7   s   r6   c                   @   s   e Zd Zdd„ ZdS )ÚOpenNamespaceTestsc                 C   s   ddl m} || _d S )Nr   )Únamespacedata01)Ú r8   r   )r   r8   r   r   r   r4   <   s    zOpenNamespaceTests.setUpNr5   r   r   r   r   r7   ;   s   r7   c                   @   s   e Zd Zdd„ ZdS )ÚSiteDirc                 C   sR   t  ¡ | _|  | jj¡ | j t ¡ ¡| _| j t	 
| j¡¡ | j t	 ¡ ¡ d S r'   )Ú
contextlibÚ	ExitStackZfixturesZ
addCleanupÚcloseÚenter_contextr   Útemp_dirÚsite_dirr	   ZDirsOnSysPathZCleanImportr)   r   r   r   r4   C   s
    
zSiteDir.setUpNr5   r   r   r   r   r:   B   s   r:   c                   @   s   e Zd Zdd„ ZdS )ÚModulesFilesTestsc                 C   sL   dddœ}t  || j¡ ddl}t |¡ d¡jdd�}||d ksHt‚dS )	zK
        A module can have resources found adjacent to the module.
        r9   úresources are the best)zmod.pyúres.txtr   NrC   r!   r"   )	r   Úbuildr@   Úmodr   r   r   r$   r   )r   ÚspecrE   r   r   r   r   Útest_module_resourcesL   s    þz'ModulesFilesTests.test_module_resourcesN)r-   r.   r/   rG   r   r   r   r   rA   K   s   rA   c                   @   s   e Zd Zdd„ ZdS )ÚImplicitContextFilesTestsc                 C   s:   dt  d¡ddœi}t || j¡ t d¡jdks6t‚dS )zW
        Without any parameter, files() will infer the location as the caller.
        Zsomepkgz¡
                    import importlib_resources as res
                    val = res.files().joinpath('res.txt').read_text(encoding='utf-8')
                    rB   )z__init__.pyrC   N)	ÚtextwrapÚdedentr   rD   r@   Ú	importlibÚimport_moduleÚvalr   )r   rF   r   r   r   Útest_implicit_files\   s    ÿùÿz-ImplicitContextFilesTests.test_implicit_filesN)r-   r.   r/   rN   r   r   r   r   rH   [   s   rH   Ú__main__)r2   rI   r0   r   rK   r;   Zimportlib_resourcesr   Úabcr   r9   r   r   r   Z_compatr   r	   Úcontextmanagerr   r   ZTestCaser3   ZZipSetupr6   r7   r:   rA   rH   r-   Úmainr   r   r   r   Ú<module>   s,   
	
