o
    û›h>  ã                   @   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 s‚w   Y  ttƒd	ks�J ‚|j
r”J ‚| ¡ }d|_
t|ƒ |j
s¤J ‚t	||jƒdu s®J ‚W d  ƒ n1 s¸w   Y  W d  ƒ dS W d  ƒ dS 1 sÐw   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   úWc:\Users\shubh\Videos\agent\nova\Lib\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    