o
    ”º¥gQ  ã                   @   s.   d dl Z ddlmZmZ G dd„ de jƒZdS )é    Né   )ÚMemorySetupÚTraversablec                   @   s   e Zd Zdd„ ZdS )Ú#TestMemoryTraversableImplementationc                 C   s>   dd„ t j ¡ D ƒ}dd„ tjj ¡ D ƒ}||@ }|rJ ‚dS )a=  `MemoryTraversable` must not override `Traversable` concrete methods.

        This test is not an attempt to enforce a particular `Traversable` protocol;
        it merely catches changes in the `Traversable` abstract/concrete methods
        that have not been mirrored in the `MemoryTraversable` subclass.
        c                 S   s&   h | ]\}}t |ƒr|tjvr|’qS © )Úcallabler   Ú__abstractmethods__©Ú.0ÚmethodÚvaluer   r   úZ/var/www/visachat/venv/lib/python3.10/site-packages/importlib_resources/tests/test_util.pyÚ	<setcomp>   s    ý
þz_TestMemoryTraversableImplementation.test_concrete_methods_are_not_overridden.<locals>.<setcomp>c                 S   s&   h | ]\}}t |ƒr| d ¡s|’qS )Ú__)r   Ú
startswithr	   r   r   r   r      s    ýýÿN)r   Ú__dict__Úitemsr   ÚMemoryTraversable)ÚselfÚtraversable_concrete_methodsÚ#memory_traversable_concrete_methodsÚoverridden_methodsr   r   r   Ú(test_concrete_methods_are_not_overridden   s   þ
þÿzLTestMemoryTraversableImplementation.test_concrete_methods_are_not_overriddenN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r      s    r   )ÚunittestÚutilr   r   ÚTestCaser   r   r   r   r   Ú<module>   s    