B
    U[                 @   s  d dl Z d dlZd dlZd dlZd dlZd dlZyd dlmZ W n ek
r\   d dlZY nX d dl	m
Z
 d dlmZmZmZmZmZmZmZ d dl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%dS )    N)mock)jupyter_data_dir)make_ipkernel_cmdget_kernel_dictwrite_kernel_specinstallInstallIPythonKernelSpecAppKERNEL_NAME	RESOURCESc              C   s"   t  } t| tjddddg d S )Nz-mZipykernel_launcherz-fz{connection_file})r   ntassert_equalsys
executable)cmd r   >lib/python3.7/site-packages/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_namez	Python %ir   languagepython)r   AssertionErrorr   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_dict2   s    r   c             C   sH   t | d tddgd | d dtjd  ks4t| d d	ksDtd S )
Nr   z	--profiletest)Zextra_argumentsr   z	Python %ir   r   r   )r   r   r   r   r   r   )r   r   r   r   assert_kernel_dict_with_profile7   s    r   c              C   s   t ddg} t|  d S )Nz	--profiler   )r   r   )r   r   r   r   !test_get_kernel_dict_with_profile>   s    r   c          	   C   sp   x,t tD ]}t| |}t j|stqW t| d}t j|sHttj|dd}t	
| W d Q R X d S )Nzkernel.jsonutf8)encoding)oslistdirr
   pjoinpathexistsr   ioopenjsonload)r$   fnameZdstZkernel_jsonfr   r   r   assert_is_specC   s    

r,   c              C   s   t  } t|  t|  d S )N)r   r,   shutilrmtree)r$   r   r   r   test_write_kernel_specM   s    r/   c              C   s<   t jt t} t| }| |ks&tt|  t	
|  d S )N)r!   r$   jointempfilemkdtempr	   r   r   r,   r-   r.   )r$   Zpath2r   r   r   test_write_kernel_spec_pathS   s
    r3   c           	   C   sF   t  } z,tjd| gd}ttj| dddt W d t	
|  X d S )Nz--prefix)r   ZshareZjupyterkernels)r1   r2   r   Zlaunch_instancer,   r!   r$   r0   r	   r-   r.   )r$   r   r   r   r   test_install_kernelspec[   s    r5   c           	   C   sP   t  } tjtjd| i tdd t }W d Q R X t	tj
|dt d S )NHOMET)userr4   )r1   r2   r   patchdictr!   environr   r   r,   r$   r0   r	   )ZtmpZdata_dirr   r   r   test_install_userf   s
    
r;   c           	   C   s@   t  } td| g t  W d Q R X ttj| dt	 d S )Nz-jupyter_client.kernelspec.SYSTEM_JUPYTER_PATHr4   )
r1   r2   r   r8   r   r,   r!   r$   r0   r	   )system_jupyter_dirr   r   r   test_installp   s
    
r=   c           	   C   s   t  } td| g tdd W d Q R X tj| dtd}t	|}t
|}W d Q R X |d dsntt|d d	d  d
dg d S )Nz-jupyter_client.kernelspec.SYSTEM_JUPYTER_PATHTest)profiler4   zkernel.jsonr   z [profile=Test]r   z	--profile)r1   r2   r   r8   r   r!   r$   r0   r	   r'   r(   r)   endswithr   r   r   )r<   specr+   r   r   r   test_install_profilez   s    

rC   c           	   C   sr   t  } td| g tddd W d Q R X tj| dtd}t	|}t
|}W d Q R X |d dksntd S )Nz-jupyter_client.kernelspec.SYSTEM_JUPYTER_PATHZDisplayr>   )r   r?   r4   zkernel.jsonr   )r1   r2   r   r8   r   r!   r$   r0   r	   r'   r(   r)   r   )r<   rB   r+   r   r   r   +test_install_display_name_overrides_profile   s    

rD   )&r(   r&   r!   r-   r   r1   Zunittestr   ImportErrorZjupyter_core.pathsr   Zipykernel.kernelspecr   r   r   r   r   r	   r
   Z
nose.toolsZtoolsr   r$   r0   r#   r   r   r   r   r   r,   r/   r3   r5   r;   r=   rC   rD   r   r   r   r   <module>   s4   $



