U
    sVc|
                     @   s`   d dl Z d dlZd dlZd dlmZmZ d dlmZ dd Z	dd Z
dd Zd	d
 Zdd ZdS )    N)VERSIONSimport_optional_dependencyc               	   C   sT   d} t jt| d}td W 5 Q R X t|jjts8ttddd}|d ksPtd S )Nz3Missing .*notapackage.* pip .* conda .* notapackagematchZnotapackageignoreerrors)pytestraisesImportErrorr   
isinstancevalue__context__AssertionError)r   exc_inforesult r   I/tmp/pip-unpacked-wheel-xj8nt62q/pandas/tests/test_optional_dependency.pytest_import_optional   s    r   c                   C   s   t d td d S )NZxlrd)r	   Zimportorskipr   r   r   r   r   test_xlrd_version_fallback   s    
r   c              	   C   s   d}t |}d|_|tj|< | t|d d}tjt	|d t
d W 5 Q R X t
ddd}||ksjttt t
ddd	}W 5 Q R X |d kstd|_t
d}||kstd S )
N
fakemodule0.9.01.0.01Pandas requires .*1.0.0.* of .fakemodule.*'0.9.0'r   z0.8)min_versionwarnr   )types
ModuleType__version__sysmodulessetitemr   r	   r
   r   r   r   tmassert_produces_warningUserWarning)monkeypatchnamemoduler   r   r   r   r   test_bad_version   s     

r(   c              	   C   s   d}t |}d|_|tj|< d}t |}t||| |tj| d| < | t|d d}tj	t
|d td W 5 Q R X tt tdd	d
}W 5 Q R X |d kstd|_td}||kstd S )Nr   r   	submodule.r   r   r   zfakemodule.submoduler   r   )r   r   r   r   r    setattrr!   r   r	   r
   r   r   r"   r#   r$   r   )r%   r&   r'   Zsub_namer)   r   r   r   r   r   test_submodule6   s$    


r,   c              	   C   sL   d}t |}|tj|< | t|d tjtdd t	| W 5 Q R X d S )Nr   r   zCan't determine .* fakemoduler   )
r   r   r   r    r!   r   r	   r
   r   r   )r%   r&   r'   r   r   r   test_no_version_raisesO   s    

r-   )r   r   r	   Zpandas.compat._optionalr   r   Zpandas._testingZ_testingr"   r   r   r(   r,   r-   r   r   r   r   <module>   s   