U
    /e                  	   @   s
  d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlZd dlm	Z	 d dl
mZmZmZmZmZmZmZ ejjZdd Zdd Zd	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Z dd Z!ej"#dde$d d!e$d d"d#gd$d% Z%dS )&    N)mock)jupyter_data_dir)KERNEL_NAME	RESOURCESInstallIPythonKernelSpecAppget_kernel_dictinstallmake_ipkernel_cmdwrite_kernel_specc                  C   s"   t  } | tjddddgkstd S )Nz-mZipykernel_launcherz-fz{connection_file})r	   sys
executableAssertionError)cmd r   C/tmp/pip-unpacked-wheel-g43y689f/ipykernel/tests/test_kernelspec.pytest_make_ipkernel_cmd   s    r   c                 C   s@   | d t  kst| d dtjd  ks,t| d dks<td S )Nargvdisplay_namePython %i (ipykernel)r   languagepythonr	   r   r   version_infodr   r   r   assert_kernel_dict    s    r   c                  C   s   t  } t|  d S N)r   r   r   r   r   r   test_get_kernel_dict&   s    r   c                 C   sH   | d t ddgdkst| d dtjd  ks4t| d d	ksDtd S )
Nr   	--profiletest)Zextra_argumentsr   r   r   r   r   r   r   r   r   r   assert_kernel_dict_with_profile+   s    r    c                  C   s   t ddg} t|  d S )Nr   r   )r   r    r   r   r   r   !test_get_kernel_dict_with_profile1   s    r!   c              	   C   sj   t tD ]}t| |}t j|s
tq
t| d}t j|sDtt|dd}t	| W 5 Q R X d S )Nkernel.jsonutf8)encoding)
oslistdirr   pjoinpathexistsr   openjsonload)r(   fnamedstZkernel_jsonfr   r   r   assert_is_spec6   s    

r0   c                  C   s   t  } t|  t|  d S r   )r
   r0   shutilrmtreer(   r   r   r   test_write_kernel_spec@   s    r4   c                  C   s<   t jt t} t| }| |ks&tt|  t	
|  d S r   )r%   r(   jointempfilemkdtempr   r
   r   r0   r1   r2   )r(   path2r   r   r   test_write_kernel_spec_pathF   s
    r9   c               	   C   sF   t  } z,tjd| gd ttj	| dddt
 W 5 t|  X d S )Nz--prefix)r   ZshareZjupyterkernels)r6   r7   r1   r2   r   Zlaunch_instancer0   r%   r(   r5   r   r3   r   r   r   test_install_kernelspecN   s
    r;   c               	   C   sP   t  } tjtjd| i tdd t }W 5 Q R X t	tj
|dt d S )NHOMET)userr:   )r6   r7   r   patchdictr%   environr   r   r0   r(   r5   r   )tmpdata_dirr   r   r   test_install_userW   s
    
rC   c               	   C   s@   t  } td| g t  W 5 Q R X ttj| dt	 d S )N-jupyter_client.kernelspec.SYSTEM_JUPYTER_PATHr:   )
r6   r7   r   r>   r   r0   r%   r(   r5   r   )system_jupyter_dirr   r   r   test_installa   s    rF   c               	   C   s   t  } td| g tdd W 5 Q R X tj| dtd}t	|}t
|}W 5 Q R X |d dsnt|d d	d  d
dgkstd S )NrD   Test)profiler:   r"   r   z [profile=Test]r   r   )r6   r7   r   r>   r   r%   r(   r5   r   r*   r+   r,   endswithr   rE   Z	spec_filer/   specr   r   r   test_install_profilej   s    
rM   c               	   C   sr   t  } td| g tddd W 5 Q R X tj| dtd}t	|}t
|}W 5 Q R X |d dksntd S )NrD   ZDisplayrG   )r   rH   r:   r"   r   )r6   r7   r   r>   r   r%   r(   r5   r   r*   r+   r,   r   rK   r   r   r   +test_install_display_name_overrides_profilew   s    
rN   envspam)rP   bar)rP   Zfooc              	   C   s   t dt| g t|d W 5 Q R X | d t d }| }t|}W 5 Q R X |rt|t|d ksrt	|
 D ]\}}|d | |kszt	qznd|kst	d S )NrD   )rO   r:   r"   rO   )r   r>   strr   r   r*   r+   r,   lenr   items)Ztmp_pathrO   rL   r/   kvr   r   r   test_install_env   s    
rW   )&r+   r%   r1   r   r6   Zunittestr   ZpytestZjupyter_core.pathsr   Zipykernel.kernelspecr   r   r   r   r   r	   r
   r(   r5   r'   r   r   r   r    r!   r0   r4   r9   r;   rC   rF   rM   rN   markZparametrizer?   rW   r   r   r   r   <module>   s0   $

	
	 