U
    9%et                     @   sx   d dl Z d dlZd dlZd dlZd dlZdd Zdd Zdd Zdd	 Z	d
d Z
dd ZdZdd Zdd Zdd ZdS )    Nc                  C   s   t d} t d}| | jtddks0tz|j t W n tk
rT   Y nX t|t j	sftz|j t W n tk
r   Y nX d S )Nmathanything_not_realr   ư>)
lazyloadsinpipytestapproxAssertionErrorModuleNotFoundError
isinstanceDelayedImportErrorModule)r   r    r   a/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/lazy_loader/tests/test_lazy_loader.pytest_lazy_import_basics
   s    



r   c               	   C   s~   t t td} W 5 Q R X dtjks.tttjd tt ksHtt	| t
jjsZtdtjkshttjd | ksztd S )Nzhtml.parserhtml)r	   ZwarnsRuntimeWarningr   r   sysmodulesr   typer   	importlibutil_LazyModule)hpr   r   r   test_lazy_import_subpackages   s    r   c                  C   s   t d} t d}t| tjs$tdtjks2tt|t jsBtdtjksPtt	
d t d}t|tjsttdtjkst|j t|tjstdtjkstd S )Nr   r   numpy)r   r   r   types
ModuleTyper   r   r   r   r	   Zimportorskipr   )r   r   npr   r   r   &test_lazy_import_impact_on_sys_modules)   s    



r    c                  C   sr   t d} t d}t| t js<| | jtddks<tt|t jrnz|j t W n t	k
rl   Y nX d S )Nr   Zscipyr   r   )
r   r   r   r   r   r   r	   r
   r   r   )r   spr   r   r   test_lazy_import_nonbuiltins>   s    


r"   c                  C   s   d} ddg}ddgi}t j| ||d}d}t|i | t j| ||d d d d}| | ks`t| D ] \}}|d k	rh|| |kshtqhd S )	NZmymodZmysubmoduleZanothersubmoduleZnot_real_submodZsome_var_or_func)attachnamesubmodsmyallzA__getattr__, __lazy_dir__, __all__ = attach(name, submods, myall))r#   r$   r%   r&   __getattr____lazy_dir____all__)r   r#   execkeysr   items)r$   r%   r&   Zloclssexpectedkvr   r   r   test_lazy_attachK   s,    
	r1   c                  C   sP   ddl m}  t| jtjstt| jtjs0tddlm} t|tjsLtd S )Nr   fake_pkg)	some_func)lazy_loader.testsr3   r   r4   r   FunctionTyper   Z$lazy_loader.tests.fake_pkg.some_func)r3   r4   r   r   r   %test_attach_same_module_and_attr_nameh   s
    r7   zg
from . import rank
from ._gaussian import gaussian
from .edges import sobel, scharr, prewitt, roberts
c                 C   s`   | d }| t tdt|\}}}ddddddh}t| t|  krV|ks\n td S )	Nstub.pyiZ	my_moduleZgaussianZsobelZscharrZprewittZrobertsZrank)
write_text	FAKE_STUBr   attach_stubstrsetr   )tmp_pathstub_getZ_dirZ_allexpectr   r   r   test_stub_loading}   s
    
rB   c                  C   s\   ddl m}  t| j| j}|\}}}|| jks4t| |  ksFt|d| j	ksXtd S )Nr   r2   r4   )
r5   r3   r   r;   __name____file__r)   r   r(   r4   )r3   Z	from_stubZstub_getterZstub_dirZstub_allr   r   r   test_stub_loading_parity   s    
rE   c              	   C   sf   | d }| d tjtdd tdt| W 5 Q R X tjtdd tdd W 5 Q R X d S )Nr8   zfrom ..mod import func
z(Only within-module imports are supported)matchr$   z*Cannot load imports from non-existent stubz
not a file)r9   r	   Zraises
ValueErrorr   r;   r<   )r>   r?   r   r   r   test_stub_loading_errors   s    
rH   )r   r   r   r	   Zlazy_loaderr   r   r   r    r"   r1   r7   r:   rB   rE   rH   r   r   r   r   <module>   s   

