B
    ¿Á[â  ã               @   sì   d dl mZ d dlm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
mZmZ d dlmZ ddlmZmZ e e e¡¡ZeeƒZd	d
diidfed< d	ddiidfed< eeƒZded< G dd	„ d	eƒZdd„ Zedkrèe ¡  dS )é    )ÚThreadPoolExecutor)ÚpathN)ÚIOLoop)ÚflagsÚaliases)ÚBoolé   )ÚLabAppÚget_app_dirÚ
BrowserAppZ	core_modeTzStart the app in core mode.z	core-modeÚdev_modezStart the app in dev mode.zdev-modezBrowserApp.app_dirzapp-dirc                   s<   e Zd ZedƒZdZdZeZe	Z
‡ fdd„Zdd„ Z‡  ZS )r   Fz/foo/z	127.0.0.1c                sj   | j }|j dtƒ ¡ d|jd d< d|jd d< tƒ }| t| j¡}t 	¡  
|| j¡ tt| ƒ ¡  d S )NZpage_config_dataTZbrowserTestFZbuildAvailable)Úweb_appZsettingsÚ
setdefaultÚdictr   ZsubmitÚrun_browserZdisplay_urlr   ZcurrentZ
add_futureÚ_browser_finishedÚsuperr   Ústart)Úselfr   ZpoolÚfuture)Ú	__class__© ú7lib/python3.7/site-packages/jupyterlab/browser_check.pyr   )   s    zBrowserApp.startc          
   C   sT   yt  | ¡ ¡ W n< tk
rN } z| j t|ƒ¡ t  d¡ W d d }~X Y nX d S )Nr   )ÚsysÚexitÚresultÚ	ExceptionÚlogÚerrorÚstr)r   r   Úer   r   r   r   4   s
    zBrowserApp._browser_finished)Ú__name__Ú
__module__Ú__qualname__r   Zopen_browserZbase_urlZipÚ
test_flagsr   Útest_aliasesr   r   r   Ú__classcell__r   r   )r   r   r   !   s   c             C   s~   t  tƒ d¡}t  t  |d¡¡sNt |¡ tjdg|d tjdddg|d t 	t  t
d¡t  |d¡¡ tjdd| g|dS )	z2Run the browser test and return an exit code.
    Zbrowser_testZnode_modulesZjlpm)ÚcwdÚaddZ	puppeteerzchrome-test.jsZnode)ÚospÚjoinr
   ÚexistsÚosÚmakedirsÚ
subprocessZcallÚshutilÚcopyÚhereZ
check_call)ZurlÚtargetr   r   r   r   <   s    
r   Ú__main__)Zconcurrent.futuresr   r,   r   r)   r/   r   r.   Ztornado.ioloopr   Znotebook.notebookappr   r   Z	traitletsr   Zlabappr	   r
   ÚabspathÚdirnameÚ__file__r1   r   r$   r%   r   r   r!   Zlaunch_instancer   r   r   r   Ú<module>   s*   



