Ë
    #´˜j×  ã                   óf  — d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	m
Z
 ej                  Z G d„ dej                  «      Z G d	„ d
ej                  «      Zd„ Z G d„ dej                  «      Z G d„ dej                  «      Z G d„ dej                  «      Zedk(  r ej*                  d¬«       yy)zTest editor, coverage 53%.é    )ÚeditorN)Ú
namedtuple)Úrequires)ÚTkÚTextc                   ó2   — e Zd Zed„ «       Zed„ «       Zd„ Zy)ÚEditorWindowTestc                 ól   — t        d«       t        «       | _        | j                  j                  «        y ©NÚgui)r   r   ÚrootÚwithdraw©Úclss    ú/lib/python3.12/idlelib/idle_test/test_editor.pyÚ
setUpClasszEditorWindowTest.setUpClass   s"   € ä�ŒÜ“4ˆŒØ�‰×ÑÕó    c                 óü   — | j                   j                  «        | j                   j                  j                  dd«      D ]  }| j                   j	                  |«       Œ | j                   j                  «        | ` y ©NÚafterÚinfo)r   Úupdate_idletasksÚtkÚcallÚafter_cancelÚdestroy©r   Úids     r   ÚtearDownClasszEditorWindowTest.tearDownClass   sX   € à�‰×!Ñ!Ô#Ø—(‘(—+‘+×"Ñ" 7¨FÖ3ˆBØ�H‰H×!Ñ! "Õ%ð 4à�‰×ÑÔØ‰Hr   c                 óœ   — t        | j                  ¬«      }| j                  |j                  | j                  «       |j                  «        y )N©r   )ÚEditorr   ÚassertEqualÚ_close)ÚselfÚes     r   Ú	test_initzEditorWindowTest.test_init   s1   € Ü˜Ÿ	™	Ô"ˆØ×Ñ˜Ÿ™ §¡Ô+Ø	�‰�
r   N)Ú__name__Ú
__module__Ú__qualname__Úclassmethodr   r   r'   © r   r   r	   r	      s-   „ àñó ðð
 ñó ðór   r	   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚGetLineIndentTestc           	      ó¾   — dD ]L  }dD ]E  }| j                  ||¬«      5  | j                  t        j                  ||¬«      d«       d d d «       ŒG ŒN y # 1 sw Y   ŒTxY w)N)é   é   é   é   é   )Ú Ú
)ÚlineÚtabwidth©r8   ©r   r   ©ÚsubTestr#   r   Úget_line_indent)r%   r8   r7   s      r   Útest_empty_linesz"GetLineIndentTest.test_empty_lines#   sW   € Û'ˆHÛ"�Ø—\‘\ t°h�\Õ?Ø×$Ñ$Ü×.Ñ.¨t¸hÔGØô÷ @Ð?ñ #ñ (ç?Ð?ús   ž(AÁAc                 ó¸   — d}|D ]G  \  }}| j                  |¬«      5  | j                  t        j                  |d¬«      |«       d d d «       ŒI y # 1 sw Y   ŒTxY w)N)©z	no spacesr:   )z    space test)r2   r2   )ú		tab test)r0   r2   )ú		double tabs test)r1   r4   )z    	mixed test©é   r4   )z  	  mixed test)rD   r3   )z	    mixed testrC   )ú  	mixed test)é   r2   )ú 	 mixed test)rF   rD   )ú	  mixed test)rF   r3   ©z
newline testr:   ©r7   r2   r9   r;   ©r%   Útestsr7   Úexpecteds       r   Útest_tabwidth_4z!GetLineIndentTest.test_tabwidth_4,   óW   € ð-ˆó  $‰NˆD�(Ø—‘ 4�Õ(Ø× Ñ Ü×*Ñ*¨4¸!Ô<Øô÷ )Ð(ñ $ß(Ð(úó   �(AÁA	c                 ó¸   — d}|D ]G  \  }}| j                  |¬«      5  | j                  t        j                  |d¬«      |«       d d d «       ŒI y # 1 sw Y   ŒTxY w)N)r@   )z        space test)r4   r4   )rA   )r0   r4   )rB   )r1   é   )z        	mixed test©é	   rR   )z      	  mixed test)rT   é
   )z	        mixed testrS   )rE   )rF   r4   )rG   )rF   rT   )rH   )rF   rU   rI   rJ   r4   r9   r;   rK   s       r   Útest_tabwidth_8z!GetLineIndentTest.test_tabwidth_8E   rO   rP   N)r(   r)   r*   r>   rN   rV   r,   r   r   r.   r.   "   s   „ òòó2r   r.   c                 ól   — | j                  dd«       | j                  d|«       | j                  «        y )Nú1.0Úend)ÚdeleteÚinsertr   )ÚtextÚstrings     r   r[   r[   _   s*   € Ø‡K�K��uÔØ‡K�K��vÔØ×ÑÕr   c                   ó2   — e Zd Zed„ «       Zed„ «       Zd„ Zy)ÚIndentAndNewlineTestc                 óæ   — t        d«       t        «       | _        | j                  j                  «        t	        | j                  ¬«      | _        d| j
                  _        d| j
                  _        y )Nr   r!   r1   )r   r   r   r   r"   ÚwindowÚindentwidthr8   r   s    r   r   zIndentAndNewlineTest.setUpClassg   sJ   € ä�ŒÜ“4ˆŒØ�‰×ÑÔÜ §¡Ô*ˆŒ
Ø!"ˆ�
‰
ÔØˆ�
‰
Õr   c                 ó4  — | j                   j                  «        | ` | j                  j                  «        | j                  j                  j                  dd«      D ]  }| j                  j                  |«       Œ | j                  j                  «        | `y r   ©ra   r$   r   r   r   r   r   r   r   s     r   r   z"IndentAndNewlineTest.tearDownClassp   óm   € à�
‰
×ÑÔØˆJØ�‰×!Ñ!Ô#Ø—(‘(—+‘+×"Ñ" 7¨FÖ3ˆBØ�H‰H×!Ñ! "Õ%ð 4à�‰×ÑÔØ‰Hr   c                 óØ  — | j                   }| j                  }|j                  }|j                  }|j                  }t        dg d¢«      } |dddd«       |ddd	d
«       |ddd	d«       |dddd«       |dddd«       |dddd«       |dddd«       |dddd«       |dddd«      f	}|D ]|  }| j                  |j                  ¬ «      5  t        ||j                  «       |j                  d!|j                  «        |d ¬"«        | |d#d$«      |j                  «       d d d «       Œ~ t        |d%«       |j                  d&d'd«        |d «        | |d#d$«      d(«       y # 1 sw Y   ŒÀxY w))NÚTests)Úlabelr\   rM   Úmarkz"Empty line inserts with no indent.z  
  def __init__(self):z
  
  def __init__(self):
z1.endz+Inside bracket before space, deletes space.z  def f1(self, a, b):z  def f1(self,
         a, b):
z1.14z*Inside bracket after space, deletes space.z1.15z(Inside string with one line - no indent.z  """Docstring."""z  """Docstring.
"""
z&Inside string with more than one line.z%  """Docstring.
  Docstring Line 2"""z)  """Docstring.
  Docstring Line 2
  """
z2.18zBackslash with one line.za =\za =\
  
z"Backslash with more than one line.za =\
          multiline\z%a =\
          multiline\
          
z2.endz Block opener - indents +1 level.z  def f1(self):
    passz  def f1(self):
    
    pass
z Block closer - dedents -1 level.z  def f1(self):
    pass
  
)rh   r[   )ÚeventrX   rY   z&  def f1(self, a, b):
    return a + bÚselz1.17z-  def f1(self, a,
         
    return a + b
)r#   ra   r\   ÚgetÚnewline_and_indent_eventr   r<   rh   r[   Úmark_setri   rM   Útag_add)	r%   ÚeqÚwr\   rl   ÚnlÚTestInforL   Útests	            r   Útest_indent_and_newline_eventz2IndentAndNewlineTest.test_indent_and_newline_eventz   s®  € Ø×ÑˆØ�K‰KˆØ�v‰vˆØ�h‰hˆØ×'Ñ'ˆä˜gÒ'LÓMˆáÐ>Ø5Ø9Ø!ó#ñ ÐGØ1Ø=Ø ó"ñ ÐFØ1Ø=Ø ó"ñ ÐDØ.Ø2Ø ó"ñ ÐBØBØHØ ó"ñ Ð4Ø!Ø'Ø!ó#ñ Ð>Ø8ØFØ!ó#ñ Ð<Ø5Ø=Ø!ó#ñ Ð<Ø5Ø;Ø!ó#ðA$ˆóL ˆDØ—‘ D§J¡J�Õ/Ü�t˜TŸY™YÔ'Ø—‘˜h¨¯	©	Ô2Ù˜•Ù‘3�u˜eÓ$ d§m¡mÔ4÷	 0Ð/ð ô 	ˆtÐ>Ô?Ø�‰�U˜F GÔ,Ù
ˆ4Œá
‰3ˆu�eÓÐPÕQ÷ 0Ð/ús   ÃAE Å E)	N)r(   r)   r*   r+   r   r   ru   r,   r   r   r_   r_   e   s.   „ àñ ó ð ð ñó ðó;Rr   r_   c                   ó2   — e Zd Zed„ «       Zed„ «       Zd„ Zy)ÚIndentSearcherTestc                 ó    — t        d«       t        «       | _        | j                  j                  «        t	        | j                  «      | _        y r   )r   r   r   r   r   r\   r   s    r   r   zIndentSearcherTest.setUpClassº   s1   € ä�ŒÜ“4ˆŒØ�‰×ÑÔÜ˜Ÿ™“>ˆ�r   c                 ó<   — | j                   j                  «        | ` y ©N)r   r   r   s    r   r   z IndentSearcherTest.tearDownClassÁ   s   € à�‰×ÑÔØ‰Hr   c                 ó  — | j                   }| j                   }d}|D ]a  \  }}| j                  |¬«      5  t        ||«       t        j                  |«      j                  «       }| j                  ||«       d d d «       Œc y # 1 sw Y   ŒnxY w)N))r5   ©NN)z[1,r|   )úif 1:
)r}   N)zif 1:
  2
  3
)r}   z  2
)Úcode)r\   r<   r[   r   ÚIndentSearcherÚrunr#   )r%   r\   ÚsearcherÚ	test_infor~   Úexpected_pairÚactual_pairs          r   Útest_searcherz IndentSearcherTest.test_searcherÆ   s|   € Ø�y‰yˆØ—I‘Iˆðˆ	ó $-ÑˆD�-Ø—‘ 4�Õ(Ü�t˜TÔ"Ü$×3Ñ3°DÓ9×=Ñ=Ó?�Ø× Ñ  ¨mÔ<÷ )Ð(ñ $-ß(Ð(ús   µABÂB	N)r(   r)   r*   r+   r   r   r…   r,   r   r   rw   rw   ¸   s-   „ àñ"ó ð"ð ñó ðó=r   rw   c                   óF   — e Zd Zed„ «       Zed„ «       Z G d„ d«      Zd„ Zy)Ú	RMenuTestc                 ó¢   — t        d«       t        «       | _        | j                  j                  «        t	        | j                  ¬«      | _        y )Nr   r!   )r   r   r   r   r"   ra   r   s    r   r   zRMenuTest.setUpClassØ   s2   € ä�ŒÜ“4ˆŒØ�‰×ÑÔÜ §¡Ô*ˆ�
r   c                 ó4  — | j                   j                  «        | ` | j                  j                  «        | j                  j                  j                  dd«      D ]  }| j                  j                  |«       Œ | j                  j                  «        | `y r   rd   r   s     r   r   zRMenuTest.tearDownClassß   re   r   c                   ó   — e Zd Zd„ Zy)úRMenuTest.DummyRMenuc                  ó   — y rz   r,   )ÚxÚys     r   Útk_popupzRMenuTest.DummyRMenu.tk_popupê   s   € ˜Dr   N)r(   r)   r*   r�   r,   r   r   Ú
DummyRMenur‹   é   s   „ Û r   r�   c                  ó   — y rz   r,   )r%   s    r   Útest_rclickzRMenuTest.test_rclickì   s   € Ør   N)r(   r)   r*   r+   r   r   r�   r’   r,   r   r   r‡   r‡   Ö   s7   „ àñ+ó ð+ð ñó ð÷!ñ !ór   r‡   Ú__main__r1   )Ú	verbosity)Ú__doc__Úidlelibr   ÚunittestÚcollectionsr   Útest.supportr   Útkinterr   r   ÚEditorWindowr"   ÚTestCaser	   r.   r[   r_   rw   r‡   r(   Úmainr,   r   r   Ú<module>rž      s¤   ðÙ å Û Ý "Ý !ß à	×	Ñ	€ô�x×(Ñ(ô ô,:˜×)Ñ)ô :òzôPR˜8×,Ñ,ô PRôf=˜×*Ñ*ô =ô<�×!Ñ!ô ð4 ˆzÒØ€H‡M�M˜AÖð r   