Ë
    #´˜jÆ,  ã                   ó´  — d Z ddlmZ ddlm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  G d	„ d
ej                  «      Z G d„ dej                  «      Z G d„ dej                  «      Z G d„ dej                  «      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 config_key, coverage 98%.

Coverage is effectively 100%.  Tkinter dialog is mocked, Mac-only line
may be skipped, and dummy function in bind test should not be called.
Not tested: exit with 'self.advanced or self.keys_ok(keys) ...' False.
é    )Ú
config_key)ÚrequiresN)Úmock)ÚTkÚTclError)ÚFunc)Ú	Mbox_funcc                   ó–   — e Zd ZdZ G d„ dej
                  «      Zed„ «       Zed„ «       Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚValidationTestz.Test validation methods: ok, keys_ok, bind_ok.c                   ó:   ‡ — e Zd Zˆ fd„Z e«       Z e«       Zˆ xZS )úValidationTest.Validatorc                 óF   •— t        ‰| �  |i |¤Ž  G d„ d«      }|| _        y )Nc                   ó   — e Zd Z e«       Zy)ú:ValidationTest.Validator.__init__.<locals>.list_keys_finalN)Ú__name__Ú
__module__Ú__qualname__r   Úget© ó    ú3lib/python3.12/idlelib/idle_test/test_config_key.pyÚlist_keys_finalr      s	   „ Ù“f‘r   r   ©ÚsuperÚ__init__r   ©ÚselfÚargsÚkwargsr   Ú	__class__s       €r   r   z!ValidationTest.Validator.__init__   s'   ø€ Ü‰GÑ˜dÐ- fÒ-÷ñ à#2ˆDÕ r   )	r   r   r   r   r   Úget_modifiersr	   Ú	showerrorÚ__classcell__©r    s   @r   Ú	Validatorr      s   ø„ ô	3ñ
 ›ˆÙ“KŒ	r   r%   c                 ó¾   — t        d«       t        «       | _        | j                  j                  «        dgddgg}| j	                  | j                  d|«      | _        y )NÚguiú	<Key-F12>ú<Control-Key-x>ú<Control-Key-X>ú<<Test>>)r   r   ÚrootÚwithdrawr%   Údialog)ÚclsÚkeylists     r   Ú
setUpClasszValidationTest.setUpClass   sM   € ä�ŒÜ“4ˆŒØ�‰×ÑÔØ�=Ð#4Ð6GÐ"HÐIˆØ—]‘] 3§8¡8¨Z¸ÓAˆ�
r   c                 ót   — | ` | j                  j                  «        | j                  j                  «        | `y ©N©r.   r,   Úupdate_idletasksÚdestroy©r/   s    r   ÚtearDownClasszValidationTest.tearDownClass%   ó,   € àˆJØ�‰×!Ñ!Ô#Ø�‰×ÑÔØ‰Hr   c                 ó:   — d| j                   j                  _        y )NÚ )r.   r"   Úmessage©r   s    r   ÚsetUpzValidationTest.setUp,   s   € Ø(*ˆ�‰×ÑÕ%r   c                 ó.  — | j                   j                  j                  d«       | j                   j                  «        | j	                  | j                   j
                  d«       | j	                  | j                   j                  j                  d«       y )NÚ r;   zNo key specified.)r.   Ú
key_stringÚsetÚokÚassertEqualÚresultr"   r<   r=   s    r   Útest_ok_emptyzValidationTest.test_ok_empty1   sc   € Ø�‰×Ñ×"Ñ" 3Ô'Ø�‰�‰ÔØ×Ñ˜Ÿ™×+Ñ+¨RÔ0Ø×Ñ˜Ÿ™×.Ñ.×6Ñ6Ð8KÕLr   c                 óx  — | j                   j                  j                  d«       d| j                   j                  j                  _        | j                   j                  «        | j                  | j                   j
                  d«       | j                  | j                   j                  j                  d«       y )Nú	<Key-F11>ÚF11r;   )
r.   rA   rB   r   r   rE   rC   rD   r"   r<   r=   s    r   Útest_ok_goodzValidationTest.test_ok_good7   sz   € Ø�‰×Ñ×"Ñ" ;Ô/Ø16ˆ�‰×#Ñ#×'Ñ'Ô.Ø�‰�‰ÔØ×Ñ˜Ÿ™×+Ñ+¨[Ô9Ø×Ñ˜Ÿ™×.Ñ.×6Ñ6¸Õ;r   c                 ó¸   — | j                  | j                  j                  d«      «       | j                  d| j                  j                  j
                  «       y )Nz<Control-ShiftzMissing the final)ÚassertFalser.   Úkeys_okÚassertInr"   r<   r=   s    r   Útest_keys_no_endingz"ValidationTest.test_keys_no_ending>   s?   € Ø×Ñ˜Ÿ™×,Ñ,Ð-=Ó>Ô?Ø�‰Ð)¨4¯;©;×+@Ñ+@×+HÑ+HÕIr   c                 ó  — d| j                   j                  j                  _        | j	                  | j                   j                  d«      «       | j                  d| j                   j                  j                  «       y )NÚAz<Key-A>zNo modifier)	r.   r   r   rE   rL   rM   rN   r"   r<   r=   s    r   Útest_keys_no_modifier_badz(ValidationTest.test_keys_no_modifier_badB   sU   € Ø14ˆ�‰×#Ñ#×'Ñ'Ô.Ø×Ñ˜Ÿ™×,Ñ,¨YÓ7Ô8Ø�‰�m T§[¡[×%:Ñ%:×%BÑ%BÕCr   c                 ó  — d| j                   j                  j                  _        | j	                  | j                   j                  d«      «       | j                  | j                   j                  j                  d«       y )NrI   rH   r;   )	r.   r   r   rE   Ú
assertTruerM   rD   r"   r<   r=   s    r   Útest_keys_no_modifier_okz'ValidationTest.test_keys_no_modifier_okG   sU   € Ø16ˆ�‰×#Ñ#×'Ñ'Ô.Ø�‰˜Ÿ™×+Ñ+¨KÓ8Ô9Ø×Ñ˜Ÿ™×.Ñ.×6Ñ6¸Õ;r   c                 óp  — d| j                   j                  j                  _        dg| j                   j                  _        | j                  | j                   j                  d«      «       | j                  d| j                   j                  j                  «       g | j                   j                  _        y )NÚaÚShiftz<a>zshift modifier)
r.   r   r   rE   r!   rL   rM   rN   r"   r<   r=   s    r   Útest_keys_shift_badz"ValidationTest.test_keys_shift_badL   s|   € Ø14ˆ�‰×#Ñ#×'Ñ'Ô.Ø,3¨9ˆ�‰×!Ñ!Ô(Ø×Ñ˜Ÿ™×,Ñ,¨UÓ3Ô4Ø�‰Ð&¨¯©×(=Ñ(=×(EÑ(EÔFØ+-ˆ�‰×!Ñ!Õ(r   c                 óò  — g ddfdgddfdgddffD ]½  \  }}}| j                  |||¬«      5  || j                  j                  j                  _        || j                  j
                  _        | j                  | j                  j                  |«      «       | j                  d	| j                  j                  j                  «       d d d «       Œ¿ g | j                  j
                  _        y # 1 sw Y   ŒåxY w)
NÚF12r(   ÚControlÚxr)   ÚXr*   )ÚmÚfÚszalready in use)ÚsubTestr.   r   r   rE   r!   rL   rM   rN   r"   r<   )r   ÚmodsÚfinalÚseqs       r   Útest_keys_dupzValidationTest.test_keys_dupS   sÚ   € Ø"$ e¨[Ð!9Ø#, +¨sÐ4EÐ!FØ#, +¨sÐ4EÐ!Fó!HÑˆD�%˜ð —‘ ¨°�Õ5Ø9>�—‘×+Ñ+×/Ñ/Ô6Ø37�—‘×)Ñ)Ô0Ø× Ñ  §¡×!4Ñ!4°SÓ!9Ô:Ø—‘Ð.°·±×0EÑ0E×0MÑ0MÔN÷	 6Ð5ð!Hð ,.ˆ�‰×!Ñ!Õ(÷ 6Ð5ús   ¬BC-Ã-C6	c                 ó¸   — | j                  | j                  j                  d«      «       | j                  | j                  j                  j
                  d«       y )Nz<Control-Shift-Key-a>r;   )rT   r.   Úbind_okrD   r"   r<   r=   s    r   Útest_bind_okzValidationTest.test_bind_ok^   s>   € Ø�‰˜Ÿ™×+Ñ+Ð,CÓDÔEØ×Ñ˜Ÿ™×.Ñ.×6Ñ6¸Õ;r   c                 ó¸   — | j                  | j                  j                  d«      «       | j                  d| j                  j                  j
                  «       y )Nz<Control-Shift>znot accepted)rL   r.   rh   rN   r"   r<   r=   s    r   Útest_bind_not_okzValidationTest.test_bind_not_okb   s>   € Ø×Ñ˜Ÿ™×,Ñ,Ð->Ó?Ô@Ø�‰�n d§k¡k×&;Ñ&;×&CÑ&CÕDr   N)r   r   r   Ú__doc__r   ÚGetKeysFramer%   Úclassmethodr1   r8   r>   rF   rJ   rO   rR   rU   rY   rf   ri   rk   r   r   r   r   r      sw   „ Ù4ô �J×+Ñ+ô  ð ñBó ðBð ñó ðò+ò
Mò<òJòDò
<ò
.ò	.ò<óEr   r   c                   ó6   — e Zd ZdZed„ «       Zed„ «       Zd„ Zy)ÚToggleLevelTestz.Test toggle between Basic and Advanced frames.c                 ó¸   — t        d«       t        «       | _        | j                  j                  «        t	        j
                  | j                  dg «      | _        y ©Nr'   r+   )r   r   r,   r-   r   rm   r.   r7   s    r   r1   zToggleLevelTest.setUpClassj   s<   € ä�ŒÜ“4ˆŒØ�‰×ÑÔÜ×,Ñ,¨S¯X©X°zÀ2ÓFˆ�
r   c                 ót   — | ` | j                  j                  «        | j                  j                  «        | `y r3   r4   r7   s    r   r8   zToggleLevelTest.tearDownClassq   r9   r   c                 ó€  ‡— | j                   Šˆfd„}| j                  ‰j                  «       | j                  d‰j                  d   «        |«       \  }}| j                  ||«       ‰j                  «        | j                  ‰j                  «       | j                  d‰j                  d   «        |«       \  }}| j                  ||«       ‰j                  j                  «        | j                  ‰j                  «       | j                  d‰j                  d   «        |«       \  }}| j                  ||«       y )Nc                  ó”   •— t        ‰j                  «       «      D ](  \  } }|j                  dk(  r| }|j                  dk(  sŒ'| }Œ* fS )zäGet the stack order of the children of the frame.

            winfo_children() stores the children in stack order, so
            this can be used to check whether a frame is above or
            below another one.
            Úkeyseq_basicÚkeyseq_advanced)Ú	enumerateÚwinfo_childrenÚ_name)ÚindexÚchildÚbasicÚadvancedr.   s       €r   Ú
stackorderz5ToggleLevelTest.test_toggle_level.<locals>.stackorder{   sQ   ø€ ô !*¨&×*?Ñ*?Ó*AÖ B‘��uØ—;‘; .Ò0Ø!�EØ—;‘;Ð"3Ó3Ø$‘Hð	 !Cð
 ˜(�?Ð"r   ÚAdvancedÚtextÚBasic)	r.   rL   r~   rN   Úbutton_levelÚassertGreaterÚtoggle_levelrT   Úinvoke)r   r   r}   r~   r.   s       @r   Útest_toggle_levelz!ToggleLevelTest.test_toggle_levelx   s  ø€ Ø—‘ˆô	#ð 	×Ñ˜Ÿ™Ô)Ø�‰�j &×"5Ñ"5°fÑ"=Ô>Ù$›,‰ˆˆxØ×Ñ˜5 (Ô+ð 	×ÑÔØ�‰˜Ÿ™Ô(Ø�‰�g˜v×2Ñ2°6Ñ:Ô;Ù$›,‰ˆˆxØ×Ñ˜8 UÔ+ð 	×Ñ×"Ñ"Ô$Ø×Ñ˜Ÿ™Ô)Ø�‰�j &×"5Ñ"5°fÑ"=Ô>Ù$›,‰ˆˆxØ×Ñ˜5 (Õ+r   N)r   r   r   rl   rn   r1   r8   r‡   r   r   r   rp   rp   g   s2   „ Ù4àñGó ðGð ñó ðó#,r   rp   c                   ó  — e Zd ZdZ G d„ dej
                  «      Zed„ «       Zed„ «       Z	d„ Z
d„ Zej                  j                  ej
                  d«      d	„ «       Zej                  j                  ej
                  d«      d
„ «       Zy)ÚKeySelectionTestz#Test selecting key on Basic frames.c                   ó2   ‡ — e Zd Zˆ fd„Zd„ Z e«       Zˆ xZS )úKeySelectionTest.Basicc                 óF   •— t        ‰| �  |i |¤Ž  G d„ d«      }|| _        y )Nc                   ó6   — e Zd Z e«       Z e«       Z e«       Zy)ú8KeySelectionTest.Basic.__init__.<locals>.list_keys_finalN)r   r   r   r   r   Úselect_clearÚyviewr   r   r   r   rŽ   ¤   s   „ Ù“f�Ù#›v�Ù›‘r   r   r   r   s       €r   r   zKeySelectionTest.Basic.__init__¢   s)   ø€ Ü‰GÑ˜dÐ- fÒ-÷ñ ð $3ˆDÕ r   c                 ó(   — g d¢| _         ddi| _        y )N)ÚfooÚbarÚBAZr”   ÚZZZ)Ú	modifiersÚmodifier_labelr=   s    r   Úset_modifiers_for_platformz1KeySelectionTest.Basic.set_modifiers_for_platform©   s   € Ú2ˆDŒNØ#(¨% .ˆDÕr   )r   r   r   r   r˜   r	   r"   r#   r$   s   @r   r‚   r‹   ¡   s   ø„ ô	3ò	1ñ “KŒ	r   r‚   c                 ó°   — t        d«       t        «       | _        | j                  j                  «        | j	                  | j                  dg «      | _        y rr   )r   r   r,   r-   r‚   r.   r7   s    r   r1   zKeySelectionTest.setUpClass®   s:   € ä�ŒÜ“4ˆŒØ�‰×ÑÔØ—Y‘Y˜sŸx™x¨°RÓ8ˆ�
r   c                 ót   — | ` | j                  j                  «        | j                  j                  «        | `y r3   r4   r7   s    r   r8   zKeySelectionTest.tearDownClassµ   r9   r   c                 ó8   — | j                   j                  «        y r3   )r.   Úclear_key_seqr=   s    r   r>   zKeySelectionTest.setUp¼   s   € Ø�‰×!Ñ!Õ#r   c                 óV  — | j                   }|j                  }| j                  }|j                  d   j	                  «         | |«       dg«       |j                  d   j	                  «         | |«       ddg«       |j                  d   j	                  «         | |«       dg«       y )Nr’   r”   )r.   r!   rD   Úmodifier_checkbuttonsr†   )r   r.   ÚgmÚeqs       r   Útest_get_modifiersz#KeySelectionTest.test_get_modifiers¿   s”   € Ø—‘ˆØ×!Ñ!ˆØ×Ñˆð 	×$Ñ$ UÑ+×2Ñ2Ô4Ù
‰2‹4�%�Ôà×$Ñ$ UÑ+×2Ñ2Ô4Ù
‰2‹4�%˜�Ô à×$Ñ$ UÑ+×2Ñ2Ô4Ù
‰2‹4�%�Õr   r!   c                 ó   — | j                   }|j                  }|j                  j                  }| j                  }d|j                  _        g |_        |j                  «         | |«       d«       dg|_        |j                  «         | |«       d«       d|j                  _        ddg|_        |j                  «         | |«       d«       y )NrW   z<Key-a>Úmymodz<mymod-Key-a>r;   Útestz<mymod-test>)r.   r   rA   r   rD   rE   Úreturn_valueÚbuild_key_string©r   Úmock_modifiersr.   ÚkeyÚstringr    s         r   Útest_build_key_stringz&KeySelectionTest.test_build_key_stringÎ   s¯   € à—‘ˆØ×$Ñ$ˆØ×"Ñ"×&Ñ&ˆØ×Ñˆàˆ�‰ŒØ&(ˆÔ#Ø×ÑÔ!Ù
‰6‹8�YÔà'. iˆÔ#Ø×ÑÔ!Ù
‰6‹8�_Ô%àˆ�‰ŒØ'.°Ð&7ˆÔ#Ø×ÑÔ!Ù
‰6‹8�^Õ$r   c                 óæ   — | j                   }|j                  }|j                  j                  }| j                  }dg|_        d|j                  _        |j                  «         | |«       d«       y )NrX   Ú{z<Shift-Key-braceleft>)r.   r   rA   r   rD   r¥   rE   Úfinal_key_selectedr§   s         r   Útest_final_key_selectedz(KeySelectionTest.test_final_key_selectedã   s`   € à—‘ˆØ×$Ñ$ˆØ×"Ñ"×&Ñ&ˆØ×Ñˆà'. iˆÔ#Øˆ�‰ŒØ×!Ñ!Ô#Ù
‰6‹8Ð,Õ-r   N)r   r   r   rl   r   rm   r‚   rn   r1   r8   r>   r¡   r   ÚpatchÚobjectr«   r¯   r   r   r   r‰   r‰   ž   s¡   „ Ù)ô �
×'Ñ'ô  ð ñ9ó ð9ð ñó ðò$òð 
‡Z�Z×Ñ�z×.Ñ.°Ó@ñ%ó Að%ð( 
‡Z�Z×Ñ�z×.Ñ.°Ó@ñ	.ó Añ	.r   r‰   c                   óˆ   — e Zd ZdZed„ «       Zed„ «       Zej                  j                  e
j                  d«      d„ «       Zy)ÚCancelWindowTestz'Simulate user clicking [Cancel] button.c                 ó¾   — t        d«       t        «       | _        | j                  j                  «        t	        j
                  | j                  ddg d¬«      | _        y ©Nr'   ÚTitler+   T)Ú_utest©r   r   r,   r-   r   ÚGetKeysWindowr.   r7   s    r   r1   zCancelWindowTest.setUpClassó   óC   € ä�ŒÜ“4ˆŒØ�‰×ÑÔÜ×-Ñ-Ø�H‰H�g˜z¨2°dô<ˆ�
r   c                 ó¨   — | j                   j                  «        | ` | j                  j                  «        | j                  j	                  «        | `y r3   ©r.   Úcancelr,   r5   r6   r7   s    r   r8   zCancelWindowTest.tearDownClassû   ó<   € à�
‰
×ÑÔØˆJØ�‰×!Ñ!Ô#Ø�‰×ÑÔØ‰Hr   rC   c                 ó”  — | j                  | j                  j                  «       d«       | j                  j                  j	                  «        | j                  t        «      5  | j                  j                  «        d d d «       | j                  | j                  j                  d«       |j                  «        y # 1 sw Y   Œ@xY w)NÚToplevelr;   )	rD   r.   Úwinfo_classÚbutton_cancelr†   ÚassertRaisesr   rE   Úassert_not_called©r   Úmock_frame_oks     r   Útest_cancelzCancelWindowTest.test_cancel  s‡   € à×Ñ˜Ÿ™×0Ñ0Ó2°JÔ?Ø�‰×!Ñ!×(Ñ(Ô*Ø×ÑœxÕ(Ø�K‰K×#Ñ#Ô%÷ )à×Ñ˜Ÿ™×+Ñ+¨RÔ0Ø×'Ñ'Õ)÷ )Ð(ús   Á$B>Â>CN)r   r   r   rl   rn   r1   r8   r   r°   r±   r   rm   rÇ   r   r   r   r³   r³   ð   sV   „ Ù-àñ<ó ð<ð ñó ðð 
‡Z�Z×Ñ�z×.Ñ.°Ó5ñ*ó 6ñ*r   r³   c                   óˆ   — e Zd ZdZed„ «       Zed„ «       Zej                  j                  e
j                  d«      d„ «       Zy)ÚOKWindowTestz#Simulate user clicking [OK] button.c                 ó¾   — t        d«       t        «       | _        | j                  j                  «        t	        j
                  | j                  ddg d¬«      | _        y rµ   r¸   r7   s    r   r1   zOKWindowTest.setUpClass  rº   r   c                 ó¨   — | j                   j                  «        | ` | j                  j                  «        | j                  j	                  «        | `y r3   r¼   r7   s    r   r8   zOKWindowTest.tearDownClass  r¾   r   rC   c                 óH  — | j                  | j                  j                  «       d«       | j                  j                  j	                  «        | j                  t        «      5  | j                  j                  «        d d d «       |j                  «        y # 1 sw Y   ŒxY w)NrÀ   )rD   r.   rÁ   Ú	button_okr†   rÃ   r   Úassert_calledrÅ   s     r   Útest_okzOKWindowTest.test_ok   sm   € à×Ñ˜Ÿ™×0Ñ0Ó2°JÔ?Ø�‰×Ñ×$Ñ$Ô&Ø×ÑœxÕ(Ø�K‰K×#Ñ#Ô%÷ )à×#Ñ#Õ%÷ )Ð(ús   Á$BÂB!N)r   r   r   rl   rn   r1   r8   r   r°   r±   r   rm   rÏ   r   r   r   rÉ   rÉ     sV   „ Ù)àñ<ó ð<ð ñó ðð 
‡Z�Z×Ñ�z×.Ñ.°Ó5ñ&ó 6ñ&r   rÉ   c                   ó6   — e Zd ZdZed„ «       Zed„ «       Zd„ Zy)ÚWindowResultTestzTest window result get and set.c                 ó¾   — t        d«       t        «       | _        | j                  j                  «        t	        j
                  | j                  ddg d¬«      | _        y rµ   r¸   r7   s    r   r1   zWindowResultTest.setUpClass,  rº   r   c                 ó¨   — | j                   j                  «        | ` | j                  j                  «        | j                  j	                  «        | `y r3   r¼   r7   s    r   r8   zWindowResultTest.tearDownClass4  r¾   r   c                 ó’  — | j                   }| j                  }d|_         ||j                  d«        ||j                  j                  d«       d|_         ||j                  d«        ||j                  j                  d«       d|j                  _         ||j                  d«        ||j                  j                  d«       y )Nr;   r“   r’   )r.   rD   rE   Úframe)r   r.   r    s      r   Útest_resultzWindowResultTest.test_result<  s–   € Ø—‘ˆØ×ÑˆàˆŒÙ
ˆ6�=‰=˜"ÔÙ
ˆ6�<‰<×Ñ˜rÔ"àˆŒÙ
ˆ6�=‰=˜ÔÙ
ˆ6�<‰<×Ñ˜uÔ%à#ˆ�‰ÔÙ
ˆ6�=‰=˜%Ô Ù
ˆ6�<‰<×Ñ˜uÕ%r   N)r   r   r   rl   rn   r1   r8   rÖ   r   r   r   rÑ   rÑ   )  s0   „ Ù%àñ<ó ð<ð ñó ðó&r   rÑ   c                   ó   — e Zd ZdZd„ Zy)Ú
HelperTestz#Test module level helper functions.c                 ó,  — t         j                  }| j                  } | |dg «      d«        | |dddg«      d«        | |ddg«      d«        | |dddg«      d«        | |dg d¢«      d«        | |dg «      d	«        | |d
dg«      d«       y )NÚqzKey-qr\   ÚAltrX   zKey-Q)r\   rÛ   rX   zPage Upz	Key-PriorÚ*zKey-asterisk)r   Útranslate_keyrD   )r   Útrr    s      r   Útest_translate_keyzHelperTest.test_translate_keyP  s£   € Ü×%Ñ%ˆØ×Ñˆñ 	‰2ˆc�2‹;˜Ô Ù
‰2ˆc�I˜uÐ%Ó&¨Ô0ñ 	‰2ˆc�G�9Ó˜wÔ'Ù
‰2ˆc�I˜wÐ'Ó(¨'Ô2Ù
‰2ˆcÒ.Ó/°Ô9ñ 	‰2ˆi˜Ó˜kÔ*á
‰2ˆc�G�9Ó˜~Õ.r   N)r   r   r   rl   rß   r   r   r   rØ   rØ   M  s
   „ Ù)ó/r   rØ   Ú__main__é   )Ú	verbosity)rl   Úidlelibr   Útest.supportr   Úunittestr   Útkinterr   r   Úidlelib.idle_test.mock_idler   Úidlelib.idle_test.mock_tkr	   ÚTestCaser   rp   r‰   r³   rÉ   rÑ   rØ   r   Úmainr   r   r   Ú<module>rë      sÆ   ðñõ Ý !Û Ý ß  Ý ,Ý /ôSE�X×&Ñ&ô SEôl4,�h×'Ñ'ô 4,ônO.�x×(Ñ(ô O.ôd*�x×(Ñ(ô *ô:&�8×$Ñ$ô &ô8!&�x×(Ñ(ô !&ôH/�×"Ñ"ô /ð, ˆzÒØ€H‡M�M˜AÖð r   