
    
3j@                         S SK r S SKrS SKJr  S SKrS SKrS SKJrJr  S SK	J
r
  \R                  R                  SSS/5      S 5       rS	 rS
 r\R                  R                  S/ SQ5      S 5       rg)    N)	MagicMock)FigureCanvasWebAggCoreNavigationToolbar2WebAgg)subprocess_run_for_testingbackendwebaggnbaggc                 2   [         R                  " S5        U S:X  a  [         R                  " S5        [        [        R                  5      n[
        R                  S:w  a  SUS'   XS'   SS	U  S
3-   S-   SU  S3-   n[        [
        R                  SU/USS9  g )Ntornador	   IPythonwin32 DISPLAY
MPLBACKENDz
import os;z$assert os.environ['MPLBACKEND'] == 'z';z!import matplotlib.pyplot as plt; z!print(plt.get_backend());assert 'z' == plt.get_backend().lower();z-cT)envcheck)	pytestimportorskipdictosenvironsysplatformr   
executable)r   r   	test_codes      ^/home/wildlama/miniconda3/lib/python3.13/site-packages/matplotlib/tests/test_backend_webagg.pytest_webagg_fallbackr      s    
	"'I&
rzz
C
||wI 	0	
<	=
-	.):<	<  i@cQUV    c                  j    [         R                  R                  R                  n U R                  b   eg )N)
matplotlibbackendsbackend_webagg_coreFigureManagerWebAgg_toolbar2_class)fms    r   test_webagg_core_no_toolbarr&   #   s+    				0	0	D	DB%%%r   c                     [        5       n [        U 5      n[        [        S9Ul        [        R                  UR                  l        UR                  SS05        UR                  R                  R                  5         UR                  R                  5         UR                  SS05        UR                  SS05        UR                  R                  / :X  d   eg)z1Only declared toolbar items should be dispatched.)specnamehome__init__not_a_real_buttonN)
r   r   r   toolbar	toolitemshandle_toolbar_buttonr*   assert_called_once
reset_mockmethod_calls)figcanvass     r   &test_toolbar_button_dispatch_allowlistr5   (   s    
+C#C(F$<=FN7AAFNN   &&!12
NN**, NN
  &*!56
  &*=!>?>>&&",,,r   zhost, origin, allowed))localhost:8988http://localhost:8988T)r6   http://evil.comF)r6   http://127.0.0.1:8988F)r6   http://[::1]:8988F)127.0.0.1:8988r9   T)r;   r7   F)r;   r:   F)
[::1]:8988r:   T)r<   zhttp://[::2]:8988F)r<   r7   F)r<   r8   Fc                     [         R                  " S5        SSKJn  UR                  R                  UR                  5      n[        5       Ul        SU 0UR                  l        UR                  U5      UL d   eg)zDVerify Tornado's default check_origin rejects cross-origin requests.r   r   )WebAggApplicationHostN)
r   r   "matplotlib.backends.backend_webaggr>   	WebSocket__new__r   requestheaderscheck_origin)hostoriginallowedr>   wss        r   #test_websocket_rejects_cross_originrJ   ;   sb     	"D		$	$	,	,->-H-H	IBBJ $BJJ??6"g---r   )r   r   unittest.mockr   r   'matplotlib.backends.backend_webagg_corer    r   r   matplotlib.testingr   markparametrizer   r&   r5   rJ    r   r   <module>rQ      s    	 
 #  . : Xw$78W 9W(&
-& 0 3 ..r   