U
    x±ËhÅ  ã                   @   sˆ   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mZ ddlm	Z	 ddl
mZ G dd	„ d	ƒZG d
d„ deƒZG dd„ de jƒZdS )é    Né   )Úabc)ÚTraversableResourcesÚResourceReaderé   )Úutil)Ú	os_helperc                   @   s&   e Zd ZdZedœdd„Zdd„ ZdS )ÚSimpleLoaderzA
    A simple loader that only implements a resource reader.
    ©Úreaderc                 C   s
   || _ d S ©Nr
   )Úselfr   © r   úI/tmp/pip-unpacked-wheel-jv8v9feh/importlib_resources/tests/test_custom.pyÚ__init__   s    zSimpleLoader.__init__c                 C   s   | j S r   r
   )r   Úpackager   r   r   Úget_resource_reader   s    z SimpleLoader.get_resource_readerN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r   r	      s   r	   c                   @   s(   e Zd ZdZejdœdd„Zdd„ ZdS )ÚMagicResourcesz2
    Magically returns the resources at path.
    ©Úpathc                 C   s
   || _ d S r   r   )r   r   r   r   r   r      s    zMagicResources.__init__c                 C   s   | j S r   r   ©r   r   r   r   Úfiles    s    zMagicResources.filesN)r   r   r   r   ÚpathlibÚPathr   r   r   r   r   r   r      s   r   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚCustomTraversableResourcesTestsc                 C   s   t  ¡ | _|  | jj¡ d S r   )Ú
contextlibÚ	ExitStackÚfixturesZ
addCleanupÚcloser   r   r   r   ÚsetUp%   s    
z%CustomTraversableResourcesTests.setUpc                 C   s^   t  | j t ¡ ¡¡}tt|ƒƒ}t 	|¡}t
 |¡}t|tjƒsFt‚t| ¡ ƒg ksZt‚d S r   )r   r   r!   Úenter_contextr   Útemp_dirr	   r   r   Zcreate_package_from_loaderÚ	resourcesr   Ú
isinstancer   ZTraversableÚAssertionErrorÚlistÚiterdir)r   r%   ÚloaderÚpkgr   r   r   r   Útest_custom_loader)   s    

z2CustomTraversableResourcesTests.test_custom_loaderN)r   r   r   r#   r-   r   r   r   r   r   $   s   r   )Zunittestr   r   Zimportlib_resourcesr&   Ú r   r   r   r   Zcompat.py39r   r	   r   ZTestCaser   r   r   r   r   Ú<module>   s   