U
    f»{j¿)  ã                   @   sJ   d dl Z d dlZd dlmZ ejje j d¡dd�Zd
dd„Z	dd	„ Z
dS )é    N)Ú_check_qt_versionÚwinznbexec does not work on Windows)Úreasonc              
      s†  ddl }ddl}ddl}ddl}z| W n tk
r@   d}Y nX z|jsNt‚W n$ tk
rt   |j 	d¡ d}Y nX d}|jj
jjdd�}|jdd��}	| d	¡ | d
¡ W 5 Q R X |dkröt|	ƒdksÐt‚dt|	d jƒksôtt|	d jƒƒ‚nt|	ƒdk�st‚|j ¡ �}	| d¡ W 5 Q R X |jdk�rFt|	ƒ|k�sFt‚|dk�rŒ| ¡ }
| ¡ }|jdd�}|j||ddd� |j|
|d� ddlm} |ƒ ‰ |jd[dd„ƒ}|jddd� |jdddd�}|jddd�}| ¡  |  d¡ | !¡ �rút‚|  d¡ | !¡ �st‚|j"dˆ ddd�}||ˆ dddd�� | #d¡ W 5 Q R X |j"dˆ d �}||ˆ dddd�� | #d¡ W 5 Q R X |j$dddd!gˆ d"d#�}||ˆ dd$ƒ� | #d$¡ W 5 Q R X |j%ddˆ d%d&�}||ˆ ddƒ� | #d¡ W 5 Q R X |j&ddddgˆ d'd(d)� |j&ddddgˆ dd*�}||ˆ dd+ƒ� | #d+¡ W 5 Q R X |j'dd,d,d-gˆ d.d#�}||ˆ d,d-ƒ� | #d-¡ W 5 Q R X |j(d,d,d-gˆ d/�}||ˆ dddd�� | #dd-¡ W 5 Q R X | )d¡d,k�sØt‚| )d¡d-k�sìt‚|  d¡ |j*dd,dˆ d0�}||ˆ d,d-ƒ� | #d-¡ W 5 Q R X | +t,d1d2�¡ |j-ddˆ dd3d4� |j-ddˆ dd5� |j-ddˆ d6� |j-ddˆ dd7�}|  d¡ |jdd8d� |j.dd9� d:D ]}|j/d|d;� �q¬| 0¡  | 1¡  | 2¡  | 3¡  | 4¡  |j5d<dd=� d>|j6k�st‚|j7d>dˆ d?d@� d>|j6k�s*t‚|j8d>d>dA� |j9ddddB� | :¡  d?|j6k�s`t‚|j;d?dˆ ddC� |j6d?  <¡  dD|j6k�s�t‚|j=dDdˆ ddC� dD|j6k�s²t‚| >¡  |j?d,d,dE� d,|j@k�sØt‚d,|jAk�sèt‚|jBd,d-d-ˆ dF� d-|jAd, k�st‚|dˆ dddd�� |jAd, d-  <¡  W 5 Q R X | C¡  | D¡  |jEd,ddG�}| )¡ d,k�snt‚|jFddH�}| #d¡ | )¡ dk�s–t‚|j"dˆ d,dI�}| G¡ d,k�s¸t‚| Hd-¡ | G¡ d-k�sÔt‚|jIdk�r°dJdKg}|jJdddˆ |ddL�}| K¡  |D ]D}|dˆ dddd�� |j<|dM� W 5 Q R X ˆ jLjM|fk�s
t‚�q
dN}|jJdddˆ dOddP�}| K¡  |dˆ dddd�� |j<|dM� W 5 Q R X ˆ jLjM|fk�s°t‚| N¡  | OdQˆ ¡ |jIdk�rø|dˆ dddd�� | PdQ¡ W 5 Q R X | K¡  |jQ‡ fdRdS„ddT� | Q‡ fdUdS„¡ ˆ jR}| S¡  |jIdk�r‚ˆ jR|dV k�sVt‚ˆ jTdW jMdXk�slt‚ˆ jTdY jMdZk�s‚t‚dS )\zTest GUI API.r   NÚnotebookZqt)é,  r   )ÚsizeT)ÚrecordÚalwaysz/does/not/existé   z	not foundZdarkÚdarwinÚgrid)Zorientation)ÚrowÚcol)ÚwindowÚcentral_layout)ÚMockc              	   s   sV   |r|   ¡ |kst‚|j}z
d V  W 5 |r:|   ¡ |ks:t‚|rP|j|d ksPt‚X d S )Nr
   )Ú	get_valueÚAssertionErrorÚ
call_count)ÚwidgetÚmockÚbeforeÚafterr   r   Úold_call_count© r   úY/var/www/html/bwave/python/venv/lib/python3.8/site-packages/mne/gui/tests/test_gui_api.pyÚ_check_widget_trigger@   s    
z+test_gui_api.<locals>._check_widget_triggerÚ Úleft)ÚnameZareaF)ÚvalueÚalignZ
selectable)r    r!   Z
toolbuttonÚbutton)r   ÚcallbackÚstyleÚtooltip)r   )r   r#   é
   Zslider)r   r    Úrngr#   r%   é   z	check box)r   r    r#   r%   gš™™™™™¹?zspin box)r   r    r'   r#   Ústepr%   )r   r    r'   r#   r)   g      à?ZfooÚbarz	combo box)r    r'   r#   )r   r    Úplaceholderr#   z2px solid #ff0000)Úborderzfile button)r   ÚdescÚfuncZis_directoryr%   )r   r-   r.   Zinitial_directory)r   r-   r.   )r   r-   r.   ÚsaveÚright)r   )NTF)r   ÚcollapseÚdefault)r   r   ÚresetÚhelp)r   r-   r.   Ú	icon_name)r   r5   )r   r    r+   )r   r-   r.   ZshortcutZplay)r   r-   )Z	menu_namer   r-   r.   )r    Ústretch)r6   )r   r#   r%   ZSaveZCancel)ÚtitleÚtextÚ	info_textr#   ÚbuttonsÚmodal)r"   ZOkZNoIcon)r7   r8   r9   r#   Úiconr;   Úac                      s   ˆ dƒS )NÚfirstr   r   ©r   r   r   Ú<lambda>x  ó    ztest_gui_api.<locals>.<lambda>)r   c                      s   ˆ dƒS )NÚlastr   r   r?   r   r   r@   y  rA   é   éÿÿÿÿ)rB   éþÿÿÿ)r>   )TT)UÚ
contextlibÚmneÚwarningsÚsysÚ	ExceptionÚMNE_PYVISTAQT_BACKEND_TESTr   ÚAttributeErrorZvizZset_3d_backendÚbackendsÚrendererZ_get_rendererÚcatch_warningsÚsimplefilterZ_window_set_themeÚlenÚstrÚmessageÚutilsZ_record_warningsÚplatformZ_window_createZ_layout_createZ_layout_add_widgetZ_window_initializeZunittest.mockr   ÚcontextmanagerZ_dock_initializeZ_dock_add_labelÚupdateZset_enabledÚ
is_enabledZ_dock_add_buttonÚ	set_valueZ_dock_add_sliderZ_dock_add_check_boxZ_dock_add_spin_boxZ_dock_add_combo_boxZ_dock_add_radio_buttonsr   Z_dock_add_textZ	set_styleÚdictZ_dock_add_file_buttonZ_dock_named_layoutZ_dock_add_group_boxZ_dock_add_stretchZ_dock_add_layoutZ_dock_finalizeZ
_dock_hideZ
_dock_showZ_tool_bar_initializeÚactionsZ_tool_bar_add_buttonZ_tool_bar_update_button_iconZ_tool_bar_add_textZ_tool_bar_add_spacerZ_tool_bar_add_file_buttonÚtriggerZ_tool_bar_add_play_buttonZ_menu_initializeZ_menu_add_submenuZ_menusZ_menu_actionsZ_menu_add_buttonZ_status_bar_initializeZ_status_bar_updateZ_status_bar_add_labelZ_status_bar_add_progress_barZget_tooltipZset_tooltipÚ_kindZ_dialog_createÚshowZ	call_argsÚargsZ_keypress_initializeZ_keypress_addZ_keypress_triggerZ_window_close_connectr   ÚcloseZcall_args_list)Zrenderer_notebookZnbexecÚn_warnrF   rG   rH   rI   ÚbackendrN   Úwr   r   r   r   r   r1   r:   r"   r   r   r?   r   Útest_gui_api   s"   


&
ÿ  ÿýþ

üþûüúûûý
üûüýü
þüþýüüü
ý
úúrd   c                 C   s:   ddl }d|_tdd�\}}t|dkƒ}tdd|d� dS )z!Test GUI API with the Qt backend.r   NT)Z
return_api)ZPySide6ZPyQt6)ra   )rG   rK   r   Úintrd   )Zrenderer_interactive_pyvistaqtrG   Ú_Úapira   r   r   r   Útest_gui_api_qt‚  s
    rh   )r   )rI   ZpytestZ	mne.utilsr   ÚmarkZskipifrU   Ú
startswithZ
pytestmarkrd   rh   r   r   r   r   Ú<module>   s   
 ÿ
  u