U
    kuf                     @   s8  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 dd	l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eej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r4e  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   H/tmp/pip-unpacked-wheel-jirmq66v/importlib_resources/tests/test_files.pysuppress_known_deprecation   s    r   c                   @   s4   e Zd Zdd Zdd Zdd Z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_textc                 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 | j}|dd}| |  d S )Nsubdirectoryzbinary.file)r   r   r   r   
assertTrueis_file)r   r   Zbinfiler   r   r    test_joinpath_with_multiple_args%   s    z+FilesTests.test_joinpath_with_multiple_argsc              	   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%   r)   r-   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   setUp4   s    zOpenDiskTests.setUpNr0   r1   r2   r4   r   r   r   r   r3   3   s   r3   c                   @   s   e Zd ZdS )OpenZipTestsN)r0   r1   r2   r   r   r   r   r6   8   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ZdS )OpenNamespaceZipTestsr8   N)r0   r1   r2   Z
ZIP_MODULEr   r   r   r   r:   C   s   r:   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isolated_modulesr(   r   r   r   r4   H   s
    
zSiteDir.setUpNr5   r   r   r   r   r;   G   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   NrD   r!   r"   )	r   buildrA   modr   r   r   r$   r   )r   specrF   r   r   r   r   test_module_resourcesQ   s    z'ModulesFilesTests.test_module_resourcesN)r0   r1   r2   rH   r   r   r   r   rB   P   s   rB   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')
                    rC   )z__init__.pyrD   N)	textwrapdedentr   rE   rA   	importlibimport_modulevalr   )r   rG   r   r   r   test_implicit_filesa   s    z-ImplicitContextFilesTests.test_implicit_filesN)r0   r1   r2   rO   r   r   r   r   rI   `   s   rI   __main__)rJ   Zunittestr   rL   r<   Zimportlib_resourcesr   abcr   r9   r   r   r   Zcompat.py39r   Zcompat.py312r	   contextmanagerr   r   ZTestCaser3   ZZipSetupr6   r7   r:   r;   rB   rI   r0   mainr   r   r   r   <module>   s.   
	
