Ë
    #´˜jŒ=  ã                   óÂ  — d Z ddlmZ ddlZddlZddlmZmZ ddlZddlm	Z	 ddlZddl
mZ de_         G d„ d	ej                  «      Z G d
„ de«      Z G d„ d«      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j0                  d¬«       yy)zTest run, coverage 54%.é    )ÚrunN)Úcaptured_outputÚcaptured_stderr)Úmock)ÚFuncTc                   ó~   — e Zd Zd„ ZdedfdedfdedffZd„ Ze	j                  j                  ed	d
„ ¬«      d„ «       Zy)ÚExceptionTestc           	      óJ  —  G d„ dt         «      } |d«      } |d«      }	 ||‚# |$ r‡ 	 |‚# |$ ry t        «       5 }t        j                  j	                  t
        d«      5 }d„ |_        t        j                  «        d d d «       n# 1 sw Y   nxY wd d d «       n# 1 sw Y   nxY wY nw xY wY nw xY wj                  «       j                  «       j                  «       }| j                  dt        |«      «       | j                  d|d	   «       | j                  d
|d   «       y )Nc                   ó   — e Zd Zd„ Zy)úJExceptionTest.test_print_exception_unhashable.<locals>.UnhashableExceptionc                  ó   — y)NT© )ÚselfÚothers     ú,lib/python3.12/idlelib/idle_test/test_run.pyÚ__eq__zQExceptionTest.test_print_exception_unhashable.<locals>.UnhashableException.__eq__   s   € Øó    N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   ÚUnhashableExceptionr      s   „ ór   r   Úex1Úex2Úcleanup_tracebackc                 ó   — | S ©Nr   ©ÚtÚes     r   Ú<lambda>z?ExceptionTest.test_print_exception_unhashable.<locals>.<lambda>    s   € ±ar   é   zUnhashableException: ex2é   zUnhashableException: ex1é
   )Ú	Exceptionr   r   ÚpatchÚobjectr   Úside_effectÚprint_exceptionÚgetvalueÚstripÚ
splitlinesÚassertEqualÚlenÚassertIn)r   r   r   r   ÚoutputÚctÚtbs          r   Útest_print_exception_unhashablez-ExceptionTest.test_print_exception_unhashable   sþ   € ô	¤)ô 	ñ " %Ó(ˆÙ! %Ó(ˆð		.Ø˜3ÐøØ"ò 	.ð.Ø�	øØ&ò .Ü$Ô&¨&ÜŸ™×*Ñ*¬3Ð0CÔDÈÙ)7˜œÜ×+Ñ+Ô-÷ E×DÑDú÷ '×&Ñ&üð.üð	.úð �_‰_Ó×$Ñ$Ó&×1Ñ1Ó3ˆØ×Ñ˜œS ›WÔ%Ø�‰Ð0°"°Q±%Ô8Ø�‰Ð0°"°R±&Õ9sY   ¡$ ¤B0ª,¬B*»%BÁ B	Á=	BÂBÂBÂ	B*ÂB$Â B*Â'B0Â)B*Â*B0Â/B0ú1/0zdivision by zero
ÚabczSname 'abc' is not defined. Did you mean: 'abs'? Or did you forget to import 'abc'?
zint.reelzAtype object 'int' has no attribute 'reel'. Did you mean: 'real'?
c           	      ój  — | j                   D ]8  \  }}}| j                  |¬«      5  	 t        t        |dd«      «       d d d «       Œ: y # |$ rX t	        j
                  «       \  }}}t        j                  |||«      d   }|j                  › d|› �}| j                  ||«       Y Œgw xY w# 1 sw Y   Œ¥xY w)N)ÚcodeÚ Úevalr   z: )
ÚdataÚsubTestr8   ÚcompileÚsysÚexc_infor   Úget_message_linesr   r,   )	r   r6   ÚexcÚmsgÚtypÚvalr1   ÚactualÚexpects	            r   Útest_get_messagezExceptionTest.test_get_message1   sª   € Ø"Ÿiœi‰NˆD�#�sØ—‘ 4�Õ(ð5Üœ  r¨6Ó2Ô3÷ )Ð(ñ (øð ò 5Ü#&§<¡<£>‘L�C˜˜bÜ ×2Ñ2°3¸¸RÓ@ÀÑC�FØ #§¡˜~¨R°¨uÐ5�FØ×$Ñ$ V¨VÖ4ð	5ú÷ )Ð(ús)   ¦B)¨A	Á	AB&Â#B)Â%B&Â&B)Â)B2	r   c                  ó   — d„ S )Nc                  ó   — y r   r   r   s     r   r    z(ExceptionTest.<lambda>.<locals>.<lambda>=   s   € ¸$r   r   r   r   r   r    zExceptionTest.<lambda>=   s   € Ò->r   ©Únew_callablec           
      ól  — | j                   }|d   |d   f|d   |d   f|d   |d   ff}d}|D ]A  \  \  }}}\  }}	}
| j                  ||f¬«      5  	 t        t        |dd«      «       d d d «       ŒC | j                  |t        |«      «       y # |$ r“ 	 t        t        |dd«      «       nx# |	$ rp t	        «       5 }t        j                  «        d d d «       n# 1 sw Y   nxY wj                  «       }| j                  ||«       | j                  |
|«       |dz  }Y nw xY wY Œ½w xY w# 1 sw Y   �ŒxY w)Nr   é   é   )Úcodesr7   r8   )r9   r:   r8   r;   r   r   r(   r)   r.   r,   r-   )r   r   ÚdÚdata2ÚsubtestsÚcode1Úexc1Úmsg1Úcode2Úexc2Úmsg2r/   rC   s                r   Útest_get_multiple_messagez'ExceptionTest.test_get_multiple_message<   s5  € ð �I‰IˆØ�A‘$˜˜!™�  !¡ a¨¡d˜|¨a°©d°A°a±D¨\Ð:ˆØˆÛ8=Ñ4ÑˆU�D˜$Ñ!4 %¨¨tØ—‘ U¨5 M�Õ2ð&Üœ ¨¨FÓ3Ô4÷ 3Ð2ð 9>ð 	×Ñ˜¤3 u£:Õ.øð ò 	&ð&ÜœW U¨B°Ó7Õ8øØò &Ü,Ô.°&Ü×/Ñ/Ô1÷ /×.Ñ.úà!'§¡Ó!2˜ØŸ™ d¨FÔ3ØŸ™ d¨FÔ3Ø  A™šð&üð	&ú÷ 3Ñ2úsg   ÁD)ÁBÂD&ÂB+Â*D&Â+D 	Â:CÃ	D 	ÃC!ÃA D 	ÄD&ÄD 	Ä D&Ä#D)Ä%D&Ä&D)Ä)D3	N)r   r   r   r2   ÚZeroDivisionErrorÚ	NameErrorÚAttributeErrorr9   rE   r   r%   r&   r   rW   r   r   r   r	   r	      su   „ ò:ð. Ð%Ð';Ð<Ø�Ið  Fð Gð ˜ð+ð,ð	€Dò	5ð 
‡Z�Z×Ñ�sÐ/Ù$?ð ó Añ/óAñ/r   r	   c                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚSc                 ó2   — dt        | «      j                  z  S )Nz%s:str©Útyper   ©r   s    r   Ú__str__z	S.__str__U   s   € Øœ$˜t›*×-Ñ-Ñ-Ð-r   c                 ó2   — dt        | «      j                  z  S )Nz
%s:unicoder^   r`   s    r   Ú__unicode__zS.__unicode__W   s   € Øœd 4›j×1Ñ1Ñ1Ð1r   c                  ó   — y©Nr"   r   r`   s    r   Ú__len__z	S.__len__Y   s   € Ør   c                 ó   — t        d«      S )Nr4   )Úiterr`   s    r   Ú__iter__z
S.__iter__[   s   € Ü�E‹{Ðr   c                 ó2   — dt        | «      j                  z  S )Nz%s:itemr^   ©r   Úargss     r   Ú__getitem__zS.__getitem__]   s   € Øœ4 ›:×.Ñ.Ñ.Ð.r   c                 ó2   — dt        | «      j                  z  S )Nz%s:slicer^   rk   s     r   Ú__getslice__zS.__getslice___   s   € ØœD ›J×/Ñ/Ñ/Ð/r   N)	r   r   r   ra   rc   rf   ri   rm   ro   r   r   r   r\   r\   T   s    „ ò.ò2òòò/ó0r   r\   c                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)Ú	MockShellc                 ó$   — | j                  «        y r   )Úresetr`   s    r   Ú__init__zMockShell.__init__d   s   € Ø�
‰
�r   c                 ó:   — | j                   j                  |«       y r   )ÚwrittenÚappendrk   s     r   ÚwritezMockShell.writef   s   € Ø�‰×Ñ˜DÕ!r   c                 ó6   — | j                   j                  «       S r   )ÚlinesÚpopr`   s    r   ÚreadlinezMockShell.readlineh   s   € Ø�z‰z�~‰~ÓÐr   c                  ó   — y r   r   r`   s    r   ÚclosezMockShell.closej   s   € Ør   c                 ó   — g | _         y r   )rv   r`   s    r   rs   zMockShell.resetl   s	   € Øˆ�r   c                 ó0   — t        |«      d d d…   | _        y )Néÿÿÿÿ)Úlistrz   )r   rz   s     r   ÚpushzMockShell.pushn   s   € Ü˜%“[¡ 2 Ñ&ˆ�
r   N)	r   r   r   rt   rx   r|   r~   rs   rƒ   r   r   r   rq   rq   c   s    „ òò"ò òòó'r   rq   c                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚStdInputFilesTestc                 ó�  — t        «       }t        j                  |d«      }| j                  |t        j
                  «       | j                  |j                  d«       | j                  |j                  d«       | j                  |j                  «       | j                  |j                  d«       | j                  |j                  «       | j                  |j                  «       «       | j                  |j!                  «       «       | j                  |j#                  «       «       | j                  |j%                  «       «       y )NÚstdinúutf-8Ústrictz<stdin>)rq   r   ÚStdInputFileÚassertIsInstanceÚioÚ
TextIOBaser,   ÚencodingÚerrorsÚassertIsNoneÚnewlinesÚnameÚassertFalseÚclosedÚ
assertTrueÚisattyÚreadableÚwritableÚseekable©r   ÚshellÚfs      r   Ú	test_misczStdInputFilesTest.test_misct   sÛ   € Ü“ˆÜ×Ñ˜U GÓ,ˆØ×Ñ˜a¤§¡Ô/Ø×Ñ˜Ÿ™ WÔ-Ø×Ñ˜Ÿ™ 8Ô,Ø×Ñ˜!Ÿ*™*Ô%Ø×Ñ˜Ÿ™ Ô+Ø×Ñ˜Ÿ™Ô"Ø�‰˜Ÿ™›
Ô#Ø�‰˜Ÿ
™
›Ô%Ø×Ñ˜Ÿ™›Ô&Ø×Ñ˜Ÿ™›Õ&r   c                 óŒ  — t        «       }t        j                  |d«      }| j                  t        |j
                  «       | j                  t        |j                  «       | j                  t        |j                  d«       | j                  t        |j                  d«       | j                  t        |j                  dg«       y )Nr‡   r   Úx)
rq   r   rŠ   ÚassertRaisesÚOSErrorÚfilenoÚtellÚseekrx   Ú
writelinesrš   s      r   Útest_unsupportedz"StdInputFilesTest.test_unsupported‚   s‡   € Ü“ˆÜ×Ñ˜U GÓ,ˆØ×Ñœ' 1§8¡8Ô,Ø×Ñœ' 1§6¡6Ô*Ø×Ñœ' 1§6¡6¨1Ô-Ø×Ñœ' 1§7¡7¨CÔ0Ø×Ñœ' 1§<¡<°#°Õ7r   c                 ó–  — t        «       }t        j                  |d«      }|j                  g d¢«       | j	                  |j                  «       d«       |j                  g d¢«       | j	                  |j                  d«      d«       |j                  g d¢«       | j	                  |j                  d «      d«       |j                  g d¢«       | j	                  |j                  d«      d«       | j	                  |j                  d«      d	«       | j	                  |j                  d
«      d«       |j                  ddg«       | j	                  |j                  d«      d«       | j                  t        |j
                  d«       | j                  t        |j
                  d«       | j                  t        |j
                  dd«       y )Nr‡   ©úone
útwo
r7   úone
two
r�   )r©   rª   úthree
r7   rL   Úonr"   ze
tr#   z	wo
three
r©   rª   r   r7   ç      ø?Ú1rK   )rq   r   rŠ   rƒ   r,   Úreadr    Ú	TypeErrorrš   s      r   Ú	test_readzStdInputFilesTest.test_read‹   sJ  € Ü“ˆÜ×Ñ˜U GÓ,ˆØ�
‰
Ò)Ô*Ø×Ñ˜Ÿ™› <Ô0Ø�
‰
Ò)Ô*Ø×Ñ˜Ÿ™ › \Ô2Ø�
‰
Ò)Ô*Ø×Ñ˜Ÿ™ › |Ô4Ø�
‰
Ò4Ô5Ø×Ñ˜Ÿ™ › DÔ)Ø×Ñ˜Ÿ™ › FÔ+Ø×Ñ˜Ÿ™ › ]Ô3à�
‰
�G˜WÐ%Ô&Ø×Ñ˜Ÿ™ › BÔ'Ø×Ñœ) Q§V¡V¨SÔ1Ø×Ñœ) Q§V¡V¨SÔ1Ø×Ñœ) Q§V¡V¨Q°Õ2r   c                 óÖ  — t        «       }t        j                  |d«      }|j                  g d¢«       | j	                  |j                  «       d«       | j	                  |j                  d«      d«       | j	                  |j                  d «      d«       |j                  dg«       | j	                  |j                  «       d«       | j	                  |j                  «       d«       |j                  g d¢«       | j	                  |j                  «       d	«       | j	                  |j                  «       d
«       |j                  g d¢«       | j	                  |j                  d«      d«       | j	                  |j                  d«      d«       | j	                  |j                  d«      d«       | j	                  |j                  d«      d«       |j                  ddg«       | j	                  |j                  d«      d«       | j                  t        |j                  d«       | j                  t        |j                  d«       | j                  t        |j                  dd«       y )Nr‡   )r©   rª   r¬   zfour
r©   r�   rª   r¬   r«   )ÚoneÚtwoÚthreer´   rµ   )r©   rª   r¬   rL   r­   rK   r   Ú
r#   r   r7   r®   r¯   )	rq   r   rŠ   rƒ   r,   r|   r    r±   Ú	readlinesrš   s      r   Útest_readlinezStdInputFilesTest.test_readlineŸ   s¼  € Ü“ˆÜ×Ñ˜U GÓ,ˆØ�
‰
Ò:Ô;Ø×Ñ˜Ÿ™› wÔ/Ø×Ñ˜Ÿ™ B›¨Ô1Ø×Ñ˜Ÿ™ DÓ)¨9Ô5Ø�
‰
�L�>Ô"Ø×Ñ˜Ÿ™› wÔ/Ø×Ñ˜Ÿ™› wÔ/Ø�
‰
Ò*Ô+Ø×Ñ˜Ÿ™› uÔ-Ø×Ñ˜Ÿ™› uÔ-Ø�
‰
Ò0Ô1Ø×Ñ˜Ÿ™ A›¨Ô-Ø×Ñ˜Ÿ™ A›¨Ô,Ø×Ñ˜Ÿ™ A›¨Ô-Ø×Ñ˜Ÿ™ B›¨Ô1à�
‰
�G˜WÐ%Ô&Ø×Ñ˜Ÿ™ A›¨Ô+Ø×Ñœ) Q§[¡[°#Ô6Ø×Ñœ) Q§[¡[°#Ô6Ø×Ñœ) Q§[¡[°!°QÕ7r   c                 ó¶  — t        «       }t        j                  |d«      }|j                  g d¢«       | j	                  |j                  «       ddg«       |j                  g d¢«       | j	                  |j                  d«      ddg«       |j                  g d¢«       | j	                  |j                  d «      ddg«       |j                  g d¢«       | j	                  |j                  d«      ddg«       |j                  g d¢«       | j	                  |j                  d«      dg«       |j                  g d¢«       | j	                  |j                  d«      ddg«       |j                  g d¢«       | j                  t        |j
                  d	«       | j                  t        |j
                  d
«       | j                  t        |j
                  dd«       y )Nr‡   r¨   r©   rª   r�   r   r"   é   r®   r¯   rK   )rq   r   rŠ   rƒ   r,   r¸   r    r±   rš   s      r   Útest_readlinesz StdInputFilesTest.test_readlines¸   sd  € Ü“ˆÜ×Ñ˜U GÓ,ˆØ�
‰
Ò)Ô*Ø×Ñ˜Ÿ™›¨°'Ð(:Ô;Ø�
‰
Ò)Ô*Ø×Ñ˜Ÿ™ R›¨7°GÐ*<Ô=Ø�
‰
Ò)Ô*Ø×Ñ˜Ÿ™ TÓ*¨W°gÐ,>Ô?Ø�
‰
Ò)Ô*Ø×Ñ˜Ÿ™ Q›¨'°7Ð);Ô<Ø�
‰
Ò)Ô*Ø×Ñ˜Ÿ™ Q›¨'¨Ô3Ø�
‰
Ò)Ô*Ø×Ñ˜Ÿ™ Q›¨'°7Ð);Ô<à�
‰
Ò)Ô*Ø×Ñœ) Q§[¡[°#Ô6Ø×Ñœ) Q§[¡[°#Ô6Ø×Ñœ) Q§[¡[°!°QÕ7r   c                 ó¸  — t        «       }t        j                  |d«      }|j                  g d¢«       | j	                  |j
                  «       | j                  |j                  «       d«       |j                  «        | j	                  |j
                  «       | j                  |j                  «       d«       | j                  t        |j                  d«       y )Nr‡   r¨   r©   rª   rK   )rq   r   rŠ   rƒ   r“   r”   r,   r|   r~   r    r±   rš   s      r   Ú
test_closezStdInputFilesTest.test_closeÍ   s—   € Ü“ˆÜ×Ñ˜U GÓ,ˆØ�
‰
Ò)Ô*Ø×Ñ˜Ÿ™Ô"Ø×Ñ˜Ÿ™› wÔ/Ø	�‰Œ	Ø×Ñ˜Ÿ™Ô"Ø×Ñ˜Ÿ™› wÔ/Ø×Ñœ) Q§W¡W¨aÕ0r   N)	r   r   r   r�   r¦   r²   r¹   r¼   r¾   r   r   r   r…   r…   r   s    „ ò'ò8ò3ò(8ò28ó*	1r   r…   c                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚStdOutputFilesTestc                 ó�  — t        «       }t        j                  |d«      }| j                  |t        j
                  «       | j                  |j                  d«       | j                  |j                  d«       | j                  |j                  «       | j                  |j                  d«       | j                  |j                  «       | j                  |j                  «       «       | j                  |j!                  «       «       | j                  |j#                  «       «       | j                  |j%                  «       «       y )NÚstdoutrˆ   r‰   z<stdout>)rq   r   ÚStdOutputFiler‹   rŒ   r�   r,   rŽ   r�   r�   r‘   r’   r“   r”   r•   r–   r—   r˜   r™   rš   s      r   r�   zStdOutputFilesTest.test_miscÛ   sÛ   € Ü“ˆÜ×Ñ˜e XÓ.ˆØ×Ñ˜a¤§¡Ô/Ø×Ñ˜Ÿ™ WÔ-Ø×Ñ˜Ÿ™ 8Ô,Ø×Ñ˜!Ÿ*™*Ô%Ø×Ñ˜Ÿ™ Ô,Ø×Ñ˜Ÿ™Ô"Ø�‰˜Ÿ™›
Ô#Ø×Ñ˜Ÿ™›Ô&Ø�‰˜Ÿ
™
›Ô%Ø×Ñ˜Ÿ™›Õ&r   c                 óŠ  — t        «       }t        j                  |d«      }| j                  t        |j
                  «       | j                  t        |j                  «       | j                  t        |j                  d«       | j                  t        |j                  d«       | j                  t        |j                  d«       y )NrÂ   r   )
rq   r   rÃ   r    r¡   r¢   r£   r¤   r°   r|   rš   s      r   r¦   z#StdOutputFilesTest.test_unsupportedé   s…   € Ü“ˆÜ×Ñ˜e XÓ.ˆØ×Ñœ' 1§8¡8Ô,Ø×Ñœ' 1§6¡6Ô*Ø×Ñœ' 1§6¡6¨1Ô-Ø×Ñœ' 1§6¡6¨1Ô-Ø×Ñœ' 1§:¡:¨qÕ1r   c                 óØ  — t        «       }t        j                  |d«      }|j                  d«       | j	                  |j
                  dg«       |j                  «        |j                  d«       | j	                  |j
                  dg«       |j                  «        |j                  t        d«      «       | j	                  |j
                  dg«       | j	                  t        |j
                  d   d   «      t        «       |j                  «        | j                  t        |j                  «       | j	                  |j
                  g «       | j                  t        |j                  d«       | j                  t        |j                  d«       | j	                  |j
                  g «       | j                  t        |j                  dd	«       | j	                  |j
                  g «       y )
NrÂ   Útest©rÆ   rÂ   õ	   tÃ¨Å›ð�–™)rÈ   rÂ   r   ó   testé{   Úspam©rq   r   rÃ   rx   r,   rv   rs   r\   r_   Ústrr    r±   rš   s      r   Ú
test_writezStdOutputFilesTest.test_writeò   s_  € Ü“ˆÜ×Ñ˜e XÓ.ˆØ	�‰�ŒØ×Ñ˜Ÿ™Ð);Ð(<Ô=Ø�‰ŒØ	�‰Ð'Ô(Ø×Ñ˜Ÿ™Ð)LÐ(MÔNØ�‰Œà	�‰”Ð)Ó*Ô+Ø×Ñ˜Ÿ™Ð)LÐ(MÔNØ×Ñœ˜eŸm™m¨AÑ.¨qÑ1Ó2´CÔ8Ø�‰Œà×Ñœ) Q§W¡WÔ-Ø×Ñ˜Ÿ™¨Ô+Ø×Ñœ) Q§W¡W¨gÔ6Ø×Ñœ) Q§W¡W¨cÔ2Ø×Ñ˜Ÿ™¨Ô+Ø×Ñœ) Q§W¡W¨f°fÔ=Ø×Ñ˜Ÿ™¨Õ+r   c                 ó`  — t        «       }t        j                  |ddd«      }|j                  d«       | j	                  |j
                  dg«       |j                  «        |j                  t        d«      «       | j	                  |j
                  dg«       | j	                  t        |j
                  d   d   «      t        «       |j                  «        | j                  t        |j                  «       | j	                  |j
                  g «       | j                  t        |j                  d«       | j                  t        |j                  d«       | j	                  |j
                  g «       | j                  t        |j                  d	d
«       | j	                  |j
                  g «       y )NÚstderrziso-8859-15Úbackslashreplaceu   tÃ¨Å›ð�–™Â¤)u   tÃ¨\u015b\U0001d599\xa4rÐ   r   rÉ   rÊ   rÆ   rË   rÌ   rš   s      r   Útest_write_stderr_nonencodablez1StdOutputFilesTest.test_write_stderr_nonencodable	  s8  € Ü“ˆÜ×Ñ˜e X¨}Ð>PÓQˆØ	�‰Ð+Ô,Ø×Ñ˜Ÿ™Ð)SÐ(TÔUØ�‰Œà	�‰”Ð-Ó.Ô/Ø×Ñ˜Ÿ™Ð)SÐ(TÔUØ×Ñœ˜eŸm™m¨AÑ.¨qÑ1Ó2´CÔ8Ø�‰Œà×Ñœ) Q§W¡WÔ-Ø×Ñ˜Ÿ™¨Ô+Ø×Ñœ) Q§W¡W¨gÔ6Ø×Ñœ) Q§W¡W¨cÔ2Ø×Ñ˜Ÿ™¨Ô+Ø×Ñœ) Q§W¡W¨f°fÔ=Ø×Ñ˜Ÿ™¨Õ+r   c                 óÞ  — t        «       }t        j                  |d«      }|j                  g «       | j	                  |j
                  g «       |j                  «        |j                  ddg«       | j	                  |j
                  ddg«       |j                  «        |j                  ddg«       | j	                  |j
                  dd	g«       |j                  «        |j                  t        d
«      g«       | j	                  |j
                  dg«       | j	                  t        |j
                  d   d   «      t        «       |j                  «        | j                  t        |j                  «       | j	                  |j
                  g «       | j                  t        |j                  d«       | j	                  |j
                  g «       | j                  t        |j                  dg«       | j                  t        |j                  dg«       | j	                  |j
                  g «       | j                  t        |j                  g g «       | j	                  |j
                  g «       y )NrÂ   r©   rµ   )r©   rÂ   )rµ   rÂ   õ   onÃ¨
õ   twÃ²)rÔ   rÂ   )rÕ   rÂ   õ   tÃ¨st)rÖ   rÂ   r   rÊ   rÉ   )rq   r   rÃ   r¥   r,   rv   rs   r\   r_   rÍ   r    r±   rš   s      r   Útest_writelinesz"StdOutputFilesTest.test_writelines  sÌ  € Ü“ˆÜ×Ñ˜e XÓ.ˆØ	�‰�RÔØ×Ñ˜Ÿ™¨Ô+Ø�‰ŒØ	�‰�g˜uÐ%Ô&Ø×Ñ˜Ÿ™Ø-Ð/@ÐAô	Cà�‰ŒØ	�‰�j (Ð+Ô,Ø×Ñ˜Ÿ™Ø0Ð2FÐGô	Ià�‰Œà	�‰”a˜	“l�^Ô$Ø×Ñ˜Ÿ™Ð)>Ð(?Ô@Ø×Ñœ˜eŸm™m¨AÑ.¨qÑ1Ó2´CÔ8Ø�‰Œà×Ñœ) Q§\¡\Ô2Ø×Ñ˜Ÿ™¨Ô+Ø×Ñœ) Q§\¡\°3Ô7Ø×Ñ˜Ÿ™¨Ô+Ø×Ñœ) Q§\¡\°G°9Ô=Ø×Ñœ) Q§\¡\°C°5Ô9Ø×Ñ˜Ÿ™¨Ô+Ø×Ñœ) Q§\¡\°2°rÔ:Ø×Ñ˜Ÿ™¨Õ+r   c                 óÐ  — t        «       }t        j                  |d«      }| j                  |j                  «       |j                  d«       |j                  «        | j                  |j                  «       | j                  t        |j
                  d«       | j                  |j                  dg«       |j                  «        | j                  t        |j                  d«       y )NrÂ   rÆ   rŸ   rÇ   rK   )rq   r   rÃ   r“   r”   rx   r~   r•   r    Ú
ValueErrorr,   rv   r±   rš   s      r   r¾   zStdOutputFilesTest.test_close;  sž   € Ü“ˆÜ×Ñ˜e XÓ.ˆØ×Ñ˜Ÿ™Ô"Ø	�‰�ŒØ	�‰Œ	Ø�‰˜Ÿ™Ô!Ø×Ñœ* a§g¡g¨sÔ3Ø×Ñ˜Ÿ™Ð);Ð(<Ô=Ø	�‰Œ	Ø×Ñœ) Q§W¡W¨aÕ0r   N)	r   r   r   r�   r¦   rÎ   rÒ   r×   r¾   r   r   r   rÀ   rÀ   Ù   s    „ ò'ò2ò,ò.,ò(,ó<
1r   rÀ   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚRecursionLimitTestc                 ó  — t        j                  «        | j                  t         j                  «       t        j
                  }| j                  t        |d¬«       | j                  t        |dd«       | j                  t        |d«       y )Néd   )Úlimitiè  r   )	r   Úinstall_recursionlimit_wrappersÚ
addCleanupÚ!uninstall_recursionlimit_wrappersr<   Úsetrecursionlimitr    r±   rÙ   )r   rœ   s     r   Ú test_bad_setrecursionlimit_callsz3RecursionLimitTest.test_bad_setrecursionlimit_callsK  sf   € Ü×+Ñ+Ô-Ø�‰œ×=Ñ=Ô>Ü×!Ñ!ˆØ×Ñœ) Q¨cÐÔ2Ø×Ñœ) Q¨¨TÔ2Ø×Ñœ* a¨Õ+r   c                 óT  — t        j                  «        | j                  t         j                  «       t	        j
                  «       }| j                  t        j                  |«       t	        j                  |dz   «       t	        j
                  «       }| j                  ||dz   «       y re   )r   rß   rà   rá   r<   Úgetrecursionlimitrâ   r,   ©r   Úorig_reclimitÚnew_reclimits      r   Útest_roundtripz!RecursionLimitTest.test_roundtripS  s|   € Ü×+Ñ+Ô-Ø�‰œ×=Ñ=Ô>ô ×-Ñ-Ó/ˆØ�‰œ×-Ñ-¨}Ô=Ü×Ñ˜m¨aÑ/Ô0ô ×,Ñ,Ó.ˆØ×Ñ˜ }°qÑ'8Õ9r   c                 óÞ   — t        j                  «       }t        j                  «        | j	                  t        j
                  «       t        j                  «       }| j                  ||«       y r   )r<   rå   r   rß   rà   rá   r,   ræ   s      r   Ú&test_default_recursion_limit_preservedz9RecursionLimitTest.test_default_recursion_limit_preserved`  sL   € Ü×-Ñ-Ó/ˆÜ×+Ñ+Ô-Ø�‰œ×=Ñ=Ô>Ü×,Ñ,Ó.ˆØ×Ñ˜ }Õ5r   c                 óà   — d„ }t        j                  |d«       | j                  |j                  d«       d |_        t        j                  |d«       | j                  |j                  d«       y )Nc                   ó   — y)Ú	docstringNr   r   r   r   Úfuncz,RecursionLimitTest.test_fixdoc.<locals>.funci  s   � r   Úmorezdocstring

more)r   Úfixdocr,   Ú__doc__)r   rï   s     r   Útest_fixdoczRecursionLimitTest.test_fixdocg  sQ   € âÜ�
‰
�4˜Ô Ø×Ñ˜Ÿ™Ð':Ô;ØˆŒÜ�
‰
�4˜Ô Ø×Ñ˜Ÿ™ vÕ.r   N)r   r   r   rã   ré   rë   ró   r   r   r   rÛ   rÛ   H  s   „ ò,ò:ò6ó/r   rÛ   c                   ó   — e Zd Zd„ Zy)ÚHandleErrorTestc                 ó  — | j                   }t        d«      5 }t        j                  dt        ¬«      5 }	 t
        ‚# t
        $ r$ t        j                  j                  d dd«       Y nw xY w |t        j                  d«       dt        _	         ||j                  «       d«       	 t        ‚# t        $ r$ t        j                  j                  d dd«       Y nw xY w |t        j                  d«       dt        _        |j                  «       }| j                  d|«       | j                  d|«       | j                  d	|«        ||j                  d
«       d d d «       n# 1 sw Y   nxY wd d d «       y # 1 sw Y   y xY w)NÚ
__stderr__z!idlelib.run.thread.interrupt_mainrH   r4   Ú123TFr7   Ú
IndexErrorrL   )r,   r   r   r%   r   ÚEOFErrorr   ÚMyRPCServerÚhandle_errorÚexit_nowr)   rù   Úquittingr.   Úcalled)r   ÚeqÚerrrï   r@   s        r   Útest_fatal_errorz HandleErrorTest.test_fatal_errors  s*  € Ø×ÑˆÜ˜\Ô*¨cÜ�Z‰ZÐ;Ü%)õ+Ø.2ðAÜ�øÜò AÜ—‘×,Ñ,¨T°5¸%Ö@ðAúáŒs�|‰|˜TÔ"Ø ŒCŒLÙˆs�|‰|‹~˜rÔ"ðAÜ Ð øÜò AÜ—‘×,Ñ,¨T°5¸%Ö@ðAúáŒs�|‰|˜TÔ"Ø ŒCŒLØ—,‘,“.ˆCØ�M‰M˜% Ô%Ø�M‰M˜% Ô%Ø�M‰M˜,¨Ô,Ùˆt�{‰{˜AÔ÷)+÷ +ñ +ú÷ +×*Ñ*ús\   ˜E5´E ¶<¼*A)Á&E Á(A)Á)<E Â&B,Â,*CÃE ÃCÃA>E Å	E5Å E)	Å%E5Å5E>N)r   r   r   r  r   r   r   rõ   rõ   q  s   „ ór   rõ   c                   ó2   — e Zd Zed„ «       Zed„ «       Zd„ Zy)ÚExecRuncodeTestc                 ó2  — | j                  t        t        dt        j                  «       t	        «       | _        | j
                  t        _        t        j                  «       }t	        d¬«      |j                  _	        t        j                  |«      | _        y )Nr(   F)Úresult)ÚaddClassCleanupÚsetattrr   r(   r   Úprtr   ÚMockÚconsoleÚgetvarÚ	ExecutiveÚex)ÚclsÚmockrpcs     r   Ú
setUpClasszExecRuncodeTest.setUpClass�  s^   € à×ÑœG¤CÐ(9¼#×:MÑ:MÔNÜ“&ˆŒØ!Ÿg™gŒÔÜ—)‘)“+ˆÜ!%¨UÔ!3ˆ�‰ÔÜ—‘˜wÓ'ˆ�r   c                 óJ   — t         j                  t         j                  k(  sJ ‚y r   )r<   Ú
excepthookÚ__excepthook__)r  s    r   ÚtearDownClasszExecRuncodeTest.tearDownClass˜  s   € ä�~‰~¤×!3Ñ!3Ò3Ð3Ñ3r   c                 óD  — | j                   }|j                  d«       | j                  |j                  d   t        «       | j                  t        t        dt        j                  «       d„ t        _	        |j                  d«       | j                  | j                  j                  d   t        «       d„ t        _	        |j                  d«       |j                  \  }}}| j                  |t        «       | j                  t        |j                  t        «      «       y )Nr3   r   r  c                 ó,   — t        j                  | «      S r   )r   r(   )r   r   r1   s      r   r    z1ExecRuncodeTest.test_exceptions.<locals>.<lambda>¢  s   € ¬#×*=Ñ*=¸aÔ*@r   c                   ó   — y r   r   r   r   r   r    z1ExecRuncodeTest.test_exceptions.<locals>.<lambda>¦  s   €  r   )r  ÚruncodeÚassertIsÚuser_exc_inforX   rà   r  r<   r  r  r	  rl   r±   r•   Ú
isinstanceÚ__context__)r   r  r   r   r1   s        r   Útest_exceptionszExecRuncodeTest.test_exceptionsœ  sÂ   € Ø�W‰WˆØ
�
‰
�5ÔØ�‰�b×&Ñ& qÑ)Ô+<Ô=à�‰œ¤ l´C×4FÑ4FÔGÙ@ŒŒØ
�
‰
�5ÔØ�‰�d—h‘h—m‘m AÑ&Ô(9Ô:á%ŒŒØ
�
‰
�5ÔØ×#Ñ#‰ˆˆ1ˆbØ�‰�aœÔ#Ø�‰œ
 1§=¡=Ô2CÓDÕEr   N)r   r   r   Úclassmethodr  r  r  r   r   r   r  r  �  s.   „ àñ(ó ð(ð ñ4ó ð4óFr   r  Ú__main__rL   )Ú	verbosity)rò   Úidlelibr   rŒ   r<   Útest.supportr   r   Úunittestr   Úidlelib.idle_test.mock_idler   ÚtestingÚTestCaser	   rÍ   r\   rq   r…   rÀ   rÛ   rõ   r  r   Úmainr   r   r   Ú<module>r)     sÓ   ðÙ å Û 	Û 
ß 9Û Ý Û Ý ,à€„ôA/�H×%Ñ%ô A/ôJ0ˆô 0÷'ñ 'ôd1˜×)Ñ)ô d1ôNl1˜×*Ñ*ô l1ô^&/˜×*Ñ*ô &/ôR�h×'Ñ'ô ô8F�h×'Ñ'ô Fð@ ˆzÒØ€H‡M�M˜AÖð r   