
     hw                     r    d dl Z d dlZd dlmZ d dlmZ d dlmZ  G d de          Z G d de	          Z
dS )	    N)TestCase)module_has_submodule)import_modulec                        e Zd Zd Zd Zd ZdS )DefaultLoaderc                 ^    t           j                            dt                                 d S Nr   )sys	meta_pathinsertProxyFinderselfs    \/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/compat/tests/test_module_loading.pysetUpzDefaultLoader.setUp   s$    Q.....    c                 D    t           j                            d           d S r	   )r
   r   popr   s    r   tearDownzDefaultLoader.tearDown   s    !r   c                 l   t          d          }t          d          }|                     t          |d                     t          d          }|                     |j        d           |                     t          |d                     |                     t                    5  t          d           ddd           n# 1 swxY w Y   |                     t          |d	                     |                     t                    5  t          d
           ddd           n# 1 swxY w Y   |                     t          |d                     |                     t                    5  t          d           ddd           n# 1 swxY w Y   ddl}|                     t          t          j
        d         d                     |                     t          |d                     |                     t                    5  t          d           ddd           dS # 1 swxY w Y   dS )z%Normal module existence can be testedz$compat.tests.utils_tests.test_modulez*compat.tests.utils_tests.test_no_submodulegood_modulez0compat.tests.utils_tests.test_module.good_modulezGood Module
bad_modulez/compat.tests.utils_tests.test_module.bad_moduleNno_such_modulez3compat.tests.utils_tests.test_module.no_such_moduledjangoz+compat.tests.utils_tests.test_module.djangor   zcompat.tests.utils_teststypesanythingz3compat.tests.utils_tests.test_no_submodule.anything)r   
assertTruer   assertEqualcontentassertRaisesImportErrorassertFalser   r
   modules)r   test_moduletest_no_submodulemodr   s        r   test_loaderzDefaultLoader.test_loader   sU   #$JKK)8: : 	,[-HHIIINOOm444 	,[,GGHHH{++ 	M 	MKLLL	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	-k;KLLMMM{++ 	Q 	QOPPP	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	-k8DDEEE{++ 	I 	IGHHH	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	-ck:T.UW^__``` 	-.?LLMMM{++ 	Q 	QOPPP	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	QsH   )CC	C	D))D-0D-1FFFH))H-0H-N)__name__
__module____qualname__r   r   r'    r   r   r   r      sF        / / /  !Q !Q !Q !Q !Qr   r   c                   "    e Zd Zd ZddZd ZdS )r   c                     i | _         d S N)_cacher   s    r   __init__zProxyFinder.__init__7   s    r   Nc                    |                     dd          d         }	 t          j        ||          \  }}}|| j        v r)| j        |         d         }|r|                                 |||f| j        |<   | S # t
          $ r Y d S w xY w)N.   r   )rsplitimpfind_moduler/   closer!   )r   fullnamepathtailfdfninfoold_fds           r   r7   zProxyFinder.find_module:   s    sA&&r*
	?466LBD4;&&X.q1 #LLNNN%'TNDK! K  	 	 	44	s   AA8 8
BBc                     |t           j        v rt           j        |         S | j        |         \  }}}	 t          j        ||||          |r|                                 S S # |r|                                 w w xY wr.   )r
   r#   r/   r6   load_moduler8   )r   r9   r<   r=   r>   s        r   rA   zProxyFinder.load_moduleH   s    s{"";x(({8,B	?8RT:: 



r 



s   A! !A:r.   )r(   r)   r*   r0   r7   rA   r+   r   r   r   r   6   sF                 r   r   )r
   r6   django.testr   django.utils.module_loadingr   compatr   r   objectr   r+   r   r   <module>rF      s    



 



             < < < < < <            (Q (Q (Q (Q (QH (Q (Q (QV    &     r   