U
    sVc                     @   s   d dl Z d dlZd dlZd dlm  mZ d dlZedZ	e
e	ddd  ejdd Zdd	 Zd
d Zdd Zdd Zdd Zejdd Zdd ZdS )    Npandas_dummy_backendplotc                  O   s   dS )N
used_dummy )argskwargsr   r   F/tmp/pip-unpacked-wheel-xj8nt62q/pandas/tests/plotting/test_backend.py<lambda>       r	   c                	   c   s"   t dd dV  W 5 Q R X dS )z*Restore the plotting backend to matplotlibplotting.backend
matplotlibN)pandasoption_contextr   r   r   r   restore_backend   s    r   c               	   C   s@   d} t jt| d tdd W 5 Q R X tjjjdks<td S )Nz9Could not find plotting backend 'not_an_existing_module'.matchr   Znot_an_existing_moduler   )	pytestraises
ValueErrorr   
set_optionoptionsplottingbackendAssertionErrormsgr   r   r   test_backend_is_not_module   s    r   c                 C   sH   |  tjdt tdd tddks.ttjj	
dtksDtd S )Nr   r   )setitemsysmodulesdummy_backendr   r   
get_optionr   r   _core_get_plot_backend)monkeypatchr   r   r   r   test_backend_is_correct   s
    r%   c                 C   sJ   |  tjdt tdddg}tddks2t|jdddksFtd S )	Nr            r   r   )r   r   )	r   r   r   r    r   	DataFramer!   r   r   r$   r   Zdfr   r   r   $test_backend_can_be_set_in_plot_call'   s    r+   c              	   C   s~   | | |tjdt |d }|  |d d tjj	
dtksNttdd tjj	
 tksptW 5 Q R X d S )Nr   zmy_backend-0.0.0.dist-infozentry_points.txts@   [pandas_plotting_backends]
my_ep_backend = pandas_dummy_backend
Zmy_ep_backendr   )Zsyspath_prependr   r   r   r    mkdirwrite_bytesr   r   r"   r#   r   r   )r   Ztmp_pathr$   Z	dist_infor   r   r   test_register_entrypoint/   s    
r.   c              	   C   sh   t d}| tjd| tjjjdks,t	t
jtdd tdd W 5 Q R X tjjjdksdt	d S )NZpandas_plot_backendr   z6Could not find plotting backend 'pandas_plot_backend'.r   r   )types
ModuleTyper   r   r   r   r   r   r   r   r   r   r   r   )r$   moduler   r   r   (test_setting_backend_without_plot_raisesA   s    
 r2   c               	   C   s0   d} t jt| d tjjd W 5 Q R X d S )NzVmatplotlib is required for plotting when the default backend "matplotlib" is selected.r   r   )r   r   ImportErrorr   r   r"   r#   r   r   r   r   test_no_matplotlib_okO   s    r4   c                 C   s@   |  tjdt tdd tddddgi}|jdd d S )	Nr   r   Ar&   r'   r(   znot a real kind)kind)r   r   r   r    r   r   r)   r   r*   r   r   r   test_extra_kinds_okY   s    r7   )r   r/   r   Zpandas.util._test_decoratorsutilZ_test_decoratorstdr   r0   r    setattrZfixturer   r   r%   r+   r.   r2   Zskip_if_mplr4   r7   r   r   r   r   <module>   s    



	