a
    m b                     @   sx   d dl Z d dlZd dlZd dlmZ ddlmZ ddlm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)NATIVE_KERNEL_NAME   )expected_http_error)some_resourcec                    s   | |dd}|jdd | d}|d | ddd	d
I d H }t|j }t|ts`J |d t	kspJ |d }t|tsJ t
|dksJ d S )NZkernelsZbad2T)parentszkernel.jsonZgarbageapikernelspecsGETmethoddefault   )joinpathmkdir
write_textjsonloadsbodydecode
isinstancedictr   len)jp_fetchjp_kernelspecsZjp_data_dirZbad_kernel_dirZbad_kernel_jsonrmodelspecs r   Qlib/python3.9/site-packages/jupyter_server/tests/services/kernelspecs/test_api.pytest_list_kernelspecs_bad   s    

r   c                    s   | ddddI d H }t |j }t|ts2J |d tksBJ |d }t|tsXJ t|dkshJ dd d	d
  tfdd|	 D sJ |t fdd|	 D sJ |d S )Nr   r   r	   r
   r   r   c                 S   s   | d dko| d d dkS )Nnamesamplespecdisplay_nameTest kernelr   sr   r   r   is_sample_kernelspec#   s    z3test_list_kernelspecs.<locals>.is_sample_kernelspecc                 S   s   | d t ko| d d dS )Nr    r"   r#   Python)r   
startswithr%   r   r   r   is_default_kernelspec&   s    z4test_list_kernelspecs.<locals>.is_default_kernelspecc                 3   s   | ]} |V  qd S Nr   .0r&   )r'   r   r   	<genexpr>)       z(test_list_kernelspecs.<locals>.<genexpr>c                 3   s   | ]} |V  qd S r+   r   r,   )r*   r   r   r.   *   r/   )
r   r   r   r   r   r   r   r   anyvalues)r   r   r   r   r   r   )r*   r'   r   test_list_kernelspecs   s    "r2   c                    sv   | dddddI d H }t |j }|d  dks:J t|d tsLJ |d d	 d
ks`J t|d tsrJ d S )Nr   r   ZSampler	   r
   r    r!   r"   r#   r$   Z	resources)r   r   r   r   lowerr   r   r   r   r   r   r   r   r   test_get_kernelspecs-   s    r5   c                    s>   | dddddI d H }t |j }|d  dks:J d S )Nr   r   z
sample%202r	   r
   r    zsample 2)r   r   r   r   r3   r4   r   r   r   test_get_kernelspec_spaces6   s    r6   c                    sV   t tjj&}| dddddI d H  W d    n1 s:0    Y  t|dsRJ d S )Nr   r   nonexistantr	   r
     pytestZraisestornadoZ
httpclientZHTTPClientErrorr   r   r   er   r   r   test_get_nonexistant_kernelspec<   s    4r>   c                    s2   | dddddI d H }|j d}|tks.J d S )Nr   ZsAmpleresource.txtr	   r
   zutf-8)r   r   r   )r   r   r   resr   r   r   test_get_kernel_resource_fileB   s    rA   c                    s   t tjj&}| dddddI d H  W d    n1 s:0    Y  t|dsRJ t tjj&}| dddddI d H  W d    n1 s0    Y  t|dsJ d S )	Nr   r7   r?   r	   r
   r8   r!   znonexistant.txtr9   r<   r   r   r   test_get_nonexistant_resourceH   s    44rB   )r   r:   r;   Zjupyter_client.kernelspecr   Zutilsr   r   r   r2   r5   r6   r>   rA   rB   r   r   r   r   <module>   s   	