
    ^hI                         S SK Jr  S SKJr  S SKrS SKrS SKrS SKrS SKrS SK	r	SSK
JrJrJrJrJrJrJrJr  SSKJrJrJrJr   " S S\5      r " S	 S
5      rg)    )StringIO)
HTMLParserN   )	IntSliderIntTextTextWidgetjslinkHBoxwidget_serializationwidget)
embed_dataembed_snippetembed_minimal_htmldependency_statec                   (   \ rS rSrSr\R                  " \SS9R                  " SSS0\	D6r
\R                  " \SS9R                  " SSS0\	D6r\R                  " S5      R                  SS9r\R                  " 5       R                  " SSS0\	D6rSrg	)

CaseWidget   z#Widget to test dependency traversalT)
allow_nonesyncCaseWidgetModel)r    N)__name__
__module____qualname____firstlineno____doc__	traitletsInstancer	   tagr   abUnicode_model_nameDictother__static_attributes__r       U/home/james-whalen/.local/lib/python3.13/site-packages/ipywidgets/tests/test_embed.pyr   r      s    -6d377ZTZEYZA6d377ZTZEYZA##$56:::EKNN  CdC.BCEr(   r   c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)	TestEmbed   c                     [        [        R                  R                  5       5       H  nUR	                  5         M     g )N)tuplewidget_module
_instancesvaluesclose)selfws     r)   teardownTestEmbed.teardown   s)    }//6689AGGI :r(   c                     [        S5      n[        USS9n[        USUS9nUS   S   nUS   n[        U5      S:X  d   e[        U5      S	:X  d   eUR	                  5        Vs/ s H  oUS
   PM	     nnSU;   d   eg s  snf )N   Tdrop_defaultsviewsr:   statemanager_stater=   
view_specs      
model_nameIntTextModel)r   r   r   lenr1   )r3   r4   r=   datar<   smodel_namess          r)   test_embed_data_simple TestEmbed.test_embed_data_simple#   s    AJ $7UC_%g.\"5zQ5zQ05?1?,,, @s   "A;c                 ~   [        S5      n[        U5      n[        [        R                  " SU5      5      S:  d   e[        5       n[        X15        [        [        R                  " SUR                  5       5      5      S:  d   e[        USSS9nSU;  d   e[        5       n[        X1SSS9  SUR                  5       ;  d   e[        USSS9n[        [        R                  " SU5      5      S:X  d   e[        5       n[        X1SSS9  [        [        R                  " SUR                  5       5      5      S:X  d   eg )Nr8   z crossoriginrA   F)cors	requirejsT)r   r   rD   refindallr   r   getvalue)r3   r4   codefs       r)   	test_corsTestEmbed.test_cors1   s   AJQ2::nd34q888J1 2::najjl;<q@@@QUe<T)))J1eu=QZZ\111QUd;2::nd34999J1et<2::najjl;<AAAr(   c                 2   [        S5      n[        U5      nUR                  S5      S:X  d   eUR                  S5      S:  d   e[        5       n[	        X15        UR                  5       nUR                  S5      S:X  d   eUR                  S5      S:  d   eg )Nz0<script A> <ScRipt> </Script> <!-- --> <b>hi</b>z
<script A>zD\u003cscript A> \u003cScRipt> \u003c/Script> \u003c!-- --> <b>hi</b>r   )r   r   findr   r   rO   )r3   r4   rP   rQ   contents        r)   test_escapeTestEmbed.test_escapeF   s    CDQyy'2---yy`aeffffJ1 **,||M*b000||cdhiiiir(   c                 H   [        S5      n[        SSS9n[        US4US45        [        X/SS9n[	        X/SUS9nUS	   S
   nUS   n[        U5      S:X  d   e[        U5      S:X  d   eUR                  5        Vs/ s H  ofS   PM	     nnSU;   d   eSU;   d   eg s  snf )Nr8   r   d   minmaxvalueTr9   r;   r>   r=   r?      r   rB   rC   IntSliderModel)r   r   r
   r   r   rD   r1   )r3   w1w2r=   rE   r<   rF   rG   s           r)   test_embed_data_two_widgets%TestEmbed.test_embed_data_two_widgetsR   s    QZ1#&G}r7m, ">EJ_%g.\"5zQ5zQ05?1?,,,;... @s   >Bc                    [        S5      n[        SSS9n[        US4US45        [        5       nXl        [        5       nX4l        X$R
                  S'   XCl        [        U/S9  [        U5      n[        U5      S:X  d   eUR                  5        Vs/ s H  ofS	   PM	     nnS
U;   d   eSU;   d   eSU;   d   eSU;   d   eSU;  d   e[        USUS9nXXS   S   L d   eUS   n	[        U	5      S:X  d   eg s  snf )Nr8   r   r[   r\   r_   test)children	   rB   rC   ra   r   	LinkModel	HBoxModelTr;   r>   r=   r?   rA   )r   r   r
   r   r!   r&   r"   r   r   rD   r1   r   )
r3   rb   rc   w3w4r=   rF   rG   rE   r<   s
             r)   test_embed_data_complex!TestEmbed.test_embed_data_complexc   s$   QZ1#&G}r7m,\\  	rd $5zQ05?1?,,,;... K///k))) +--- $eD_-g6666\"5zQ @s   C8c                      " S S[         5      n[        S5      n[        USS9n[        USUS9nU" 5       nUR	                  U5        [        UR                  5        UR                  / SQ:X  d   eg )Nc                   .    \ rS rSrSr/ rS rS rS rSr	g)&TestEmbed.test_snippet.<locals>.Parser   initialc                 @   [        U5      nUS:X  aC  UR                  SS5      S:X  a-  SU l        U R                  R	                  U R                  5        g US:X  aD  UR                  SS5      S:X  a-  SU l        U R                  R	                  U R                  5        g g g )Nscripttype z)application/vnd.jupyter.widget-state+jsonwidget-statez(application/vnd.jupyter.widget-view+jsonwidget-view)dictgetr=   statesappend)r3   r    attrss      r)   handle_starttag6TestEmbed.test_snippet.<locals>.Parser.handle_starttag   s    U(?uyy'<@k'k!/DJKK&&tzz2H_62)>Bl)l!.DJKK&&tzz2 *m_r(   c                     SU l         g )Nrt   r=   )r3   r    s     r)   handle_endtag4TestEmbed.test_snippet.<locals>.Parser.handle_endtag   s	    &
r(   c                 b   U R                   S:X  aF  [        R                  " U5      S   n[        U5      S:X  d   eU R                  R                  S5        g U R                   S:X  aI  [        R                  " U5      n[        U[        5      (       d   eU R                  R                  S5        g g )Nry   r=   r@   check-widget-staterz   check-widget-view)r=   jsonloadsrD   r}   r~   
isinstancer{   )r3   rE   r>   views       r)   handle_data2TestEmbed.test_snippet.<locals>.Parser.handle_data   s    ::/$(JJt$4W$=M}-222KK&&';<ZZ=0::d+D%dD1111KK&&':; 1r(   r   N)
r   r   r   r   r=   r}   r   r   r   r'   r   r(   r)   Parserrr      s    EF3'<r(   r   r8   Tr9   r;   )ry   r   rz   r   )r   r   r   r   feedprintr}   )r3   r   r4   r=   snippetparsers         r)   test_snippetTestEmbed.test_snippet   se    	<Z 	<4 AJ $7at5IGfmm}} jjjjr(   c                    [        S5      n[        R                  " 5       n [        R                  R                  US5      n[        USS9n[        X1SUS9  [        US5       nUR                  5       nS S S 5        WR                  5       S   S:X  d   e [        R                  " U5        g ! , (       d  f       N?= f! [        R                  " U5        f = f)	Nr8   z	test.htmlTr9   r;   rr   <!DOCTYPE html>)r   tempfilemkdtempospathjoinr   r   openread
splitlinesshutilrmtree)r3   r4   tmpdoutputr=   rQ   rW   s          r)   test_minimal_html_filename$TestEmbed.test_minimal_html_filename   s    AJ!		 WW\\$4F$Qd;Evd%Pfc"a&&( #%%'*.????MM$	 #" MM$s$   AB> #B-4!B> -
B;7B> >Cc                     [        S5      n[        5       n[        USS9n[        X!SUS9  UR	                  5       nUR                  5       S   S:X  d   eg )Nr8   Tr9   r;   r   r   )r   r   r   r   rO   r   )r3   r4   r   r=   rW   s        r)   test_minimal_html_filehandle&TestEmbed.test_minimal_html_filehandle   sS    AJ $76$eL//#!!#A&*;;;;r(   r   N)r   r   r   r   r5   rH   rR   rX   rd   rn   r   r   r   r'   r   r(   r)   r+   r+      s4    -B*
j/"$N"kH  <r(   r+   )ior   html.parserr   r   r   rM   r   r   r   widgetsr   r   r   r	   r
   r   r   r   r/   embedr   r   r   r   r   r+   r   r(   r)   <module>r      sF     "  	 	    s s s S SD Dg< g<r(   