o
    ªZh  ã                   @   sn   d Z ddlZddlZddlZddlmZ ddlmZ ejdd„ ƒZ	dd„ Z
d	d
„ Zdd„ Zdd„ Zdd„ ZdS )z#Tests for the User Module Reloader.é    N)Úto_text_string)ÚUserModuleReloaderc                    s.   t ˆ ƒtjvrtj t ˆ ƒ¡ ‡ fdd„}|S )z@Create a simple module in tmpdir as an example of a user module.c                    s<   ˆ   | ¡ d¡}d}| |¡ ˆ  | ¡ d¡}| d¡ d S )Nzbar.pyz(
def square(x):
    return x**2
        z__init__.pyú#)ÚmkdirÚjoinÚwrite)ÚmodnameZmodfileÚcodeZ	init_file©Útmpdir© ú^/var/www/html/lang_env/lib/python3.10/site-packages/spyder_kernels/customize/tests/test_umr.pyÚcreate_module   s
   
z"user_module.<locals>.create_module)r   ÚsysÚpathÚappend)r   r   r   r
   r   Úuser_module   s   r   c                 C   sB   | dƒ dt jd< tƒ }ddl}| |d¡dksJ ‚dt jd< dS )z\
    Test that the UMR doesn't try to reload modules when Cython
    support is active.
    ÚfooÚTrueZSPY_RUN_CYTHONr   NFÚFalse)ÚosÚenvironr   r   Úis_module_reloadable)r   Úumrr   r   r   r   Útest_umr_skip_cython+   s   
r   c                 C   s>   | dƒ dt jd< tƒ }ddlm} | ¡  |jddgk dS )	z0Test that UMR's run method is working correctly.Zfoo1r   ZSPY_UMR_VERBOSEr   )Úsquarer   zfoo.barN)r   r   r   Zfoo1.barr   ÚrunZmodnames_to_reload)r   r   r   r   r   r   Útest_umr_run@   s   
r   c                 C   s6   | dƒ t ƒ }ddl}d|jv sJ ‚d|jvsJ ‚dS )z7Test that UMR's previos_modules is working as expected.Úfoo2r   NZIPython)r   r   Zprevious_modules)r   r   r   r   r   r   Útest_umr_previous_modulesP   s
   r   c                  C   sB   t ƒ } |  d¡s
J ‚|  d¡sJ ‚|  d¡sJ ‚|  d¡rJ ‚dS )z6Test that the UMR skips modules according to its name.Z
tensorflowZpytorchZspyder_kernelsr   N)r   Zis_module_in_namelist)r   r   r   r   Útest_umr_namelist]   s
   r    c                 C   sZ   | dƒ t ƒ }ddl}| |d¡rJ ‚ddl}| |d¡rJ ‚ddl}| |d¡s+J ‚dS )z4Test that the UMR only tries to reload user modules.Úfoo3r   NÚxmlÚnumpy)r   r"   r   r#   r!   )r   r   r"   r#   r!   r   r   r   Útest_umr_reload_modulesg   s   r$   )Ú__doc__r   r   ZpytestZspyder_kernels.py3compatr   Zspyder_kernels.customize.umrr   Zfixturer   r   r   r   r    r$   r   r   r   r   Ú<module>   s   

