o
    Zh>                     @   sl   d Z ddlZddlm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	 Zd
d Zdd ZdS )z%Test suite for the deepreload module.    N)Path)TemporaryDirectory)modules_reloading)reload)prepended_to_syspathc               
   C   s  t  } t|  t| }t|d ddd}|d W d   n1 s&w   Y  t|d ddd}|d W d   n1 sDw   Y  d	dl}d	dl}| }t|d
gd t	||jdu sfJ d|_
tjtdd t|d
gd W d   n1 sw   Y  ttd	ksJ |j
rJ | }d|_
t| |j
sJ t	||jdu sJ W d   n1 sw   Y  W d   dS W d   dS 1 sw   Y  dS )z?Test that dreload does deep reloads and skips excluded modules.zA.pywzutf-8)encodingz!class Object:
    pass
ok = True
NzB.pyz$import A
assert A.ok, 'we are fine'
r   A)excludeTFzwe are finematch)r   r   r   openwriter	   BZObjectdreload
isinstanceokpytestraisesAssertionErrorlenr   )ZtmpdirZ
tmpdirpathfr	   r   obj r   X/var/www/html/lang_env/lib/python3.10/site-packages/IPython/lib/tests/test_deepreload.pytest_deepreload   s:   


"r   c                   C   s   t ttd d S )N
modulename)r   r   	TypeErrorr   r   r   r   r   test_not_module2   s   r   c                  C   sF   t d} tjtdd t|  W d    d S 1 sw   Y  d S )Nfake_moduleznot in sys.modulesr   )types
ModuleTyper   r   ImportErrorr   )r   r   r   r   test_not_in_sys_modules6   s   

"r#   )__doc__r    pathlibr   r   tempfiler   ZIPython.lib.deepreloadr   r   r   ZIPython.utils.syspathcontextr   r   r   r#   r   r   r   r   <module>   s    