+
    BiZ9                     (   ^ RI t ^ RIt^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIH	t	 ^ RIH
t
 ]
P                  ! R4      t ! R R	4      t]	 ! R
 R]P                  ]4      4       t ! R R]P                  ]4      t]R8X  d   ]P$                  ! 4        R# R# )    N)dedent)	ExitStack)mock)force_not_colorized_test_class)import_helpercodec                   &   a  ] tR t^t o R tRtV tR# )MockSysc                   \        4       pV P                  VP                  4       VP                  \        P
                  ! R RR7      4      V n        VP                  \        P
                  ! R4      4      V n        VP                  \        P
                  ! R4      4      V n        \        P
                  ! R\        P                  \        P                  R7      pVP                  V4      V n        \        P                  \        P                  J d&   V P                  P                  V P                  n        V P                  =V P                  =R# )z
code.inputT)createzcode.sys.stdoutzcode.sys.stderrzcode.sys)wrapsspecN)r   
addCleanupcloseenter_contextr   patchinfuncstdoutstderrr   syssysmod
excepthook__excepthook__ps1ps2)selfstackprepatchs   &  ,/usr/lib/python3.14/test/test_code_module.pymock_sysMockSys.mock_sys   s     $))$**\15+7 8))$**5F*GH))$**5F*GH::jtxxH))(3>>S///%)[[%?%?DKK"KKOKKO    )r   r   r   r   N)__name__
__module____qualname____firstlineno__r    __static_attributes____classdictcell____classdict__s   @r   r
   r
      s      r"   r
   c                      a  ] tR t^!t o RtR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tRtV tR# )TestInteractiveConsoleNc                X    \         P                  4       V n        V P                  4        R # Nr   InteractiveConsoleconsoler    r   s   &r   setUpTestInteractiveConsole.setUp%   s    ..0r"   c                   R R\        R4      .V P                  n        V P                  P	                  4        RP                  R V P                  P                   4       4      pV P                  RV4       V P                  V P                  R4       R R\        R4      .V P                  n        RV P                  n        V P                  P	                  4        RP                  R V P                  P                   4       4      pV P                  RV4       V P                  V P                  P                  R4       R	# )
import codezcode.sys.ps1Finished c              3   R   "   T F  pR P                  V^,          4      x  K  	  R# 5ir8   Njoin.0calls   & r   	<genexpr>2TestInteractiveConsole.test_ps1.<locals>.<genexpr>0   "     O6Nda))6N   %'z>>> r   z	custom1> c              3   R   "   T F  pR P                  V^,          4      x  K  	  R# 5ir:   r;   r=   s   & r   r@   rA   ;   rB   rC   N)EOFErrorr   side_effectr1   interactr<   r   method_callsassertInassertNotHasAttrr   r   assertEqualr   outputs   & r   test_ps1TestInteractiveConsole.test_ps1)       Z #

 	Odkk6N6NOOff%dkk51 Z #

 &Odkk6N6NOOk6*+6r"   c                   R R\        R4      .V P                  n        V P                  P	                  4        RP                  R V P                  P                   4       4      pV P                  RV4       V P                  V P                  R4       R R\        R4      .V P                  n        RV P                  n        V P                  P	                  4        RP                  R V P                  P                   4       4      pV P                  RV4       V P                  V P                  P                  R4       R	# )
r6   zcode.sys.ps2r7   r8   c              3   R   "   T F  pR P                  V^,          4      x  K  	  R# 5ir:   r;   r=   s   & r   r@   2TestInteractiveConsole.test_ps2.<locals>.<genexpr>F   rB   rC   z... r   z	custom2> c              3   R   "   T F  pR P                  V^,          4      x  K  	  R# 5ir:   r;   r=   s   & r   r@   rS   Q   rB   rC   N)rE   r   rF   r1   rG   r<   r   rH   rI   rJ   r   r   rK   rL   s   & r   test_ps2TestInteractiveConsole.test_ps2?   rP   r"   c                   R R\        R4      .V P                  n        V P                  P	                  4        \        V P                  P                  4       F#  pRRP                  V^,          4      9   g   K"   R# 	  \        R4      h)z	'antioch'r8   r7   antiochzno console stdoutN)
rE   r   rF   r1   rG   listr   rH   r<   AssertionError)r   r?   s   & r   test_console_stderr*TestInteractiveConsole.test_console_stderrU   si    #.HZ4H"I112DBGGDG,, 3 !!455r"   c                D   R RR\        R4      .V P                  n        V P                  P	                  4        RP                  R V P                  P                   4       4      pWP                  R4      R pVRVP                  R4       pV P                  VP                  4       R,          . R	O4       V P                  V P                  P                  \        4       V P                  \        V P                  P                   4      \        4       V P#                  V P                  P$                  4       V P#                  V P                  P                   P&                  4       V P                  V P                  P(                  V P                  P                   4       R# )
def f():	    x = ?r8   r7   c              3   R   "   T F  pR P                  V^,          4      x  K  	  R# 5ir:   r;   r=   s   & r   r@   ;TestInteractiveConsole.test_syntax_error.<locals>.<genexpr>d   rB   rC   (InteractiveConsole)N
now exiting   NN)z  File "<console>", line 2r_   z	        ^zSyntaxError: invalid syntax)rE   r   rF   r1   rG   r<   r   rH   indexrK   
splitlinesassertIsr   	last_typeSyntaxErrortype
last_valueassertIsNonelast_traceback__traceback__last_excrL   s   & r   test_syntax_error(TestInteractiveConsole.test_syntax_error^   s.   #-#.#%$,Z$8#: 	Odkk6N6NOO%;<=>6o67**,R0 3+ 	,
 	dkk++[9d4;;112K@$++445$++00>>?dkk**DKK,B,BCr"   c                @   R \        R4      .V P                  n        V P                  P	                  4        RP                  R V P                  P                   4       4      pWP                  R4      R pVRVP                  R4       pV P                  VP                  4       R,          . RO4       V P                  V P                  P                  \        4       V P                  \        V P                  P                   4      \        4       V P#                  V P                  P$                  4       V P#                  V P                  P                   P&                  4       V P                  V P                  P(                  V P                  P                   4       R# )	  1r7   r8   c              3   R   "   T F  pR P                  V^,          4      x  K  	  R# 5ir:   r;   r=   s   & r   r@   @TestInteractiveConsole.test_indentation_error.<locals>.<genexpr>u   rB   rC   rb   Nrc   rd   )z  File "<console>", line 1z    1z#IndentationError: unexpected indent)rE   r   rF   r1   rG   r<   r   rH   rf   rK   rg   rh   r   ri   IndentationErrorrk   rl   rm   rn   ro   rp   rL   s   & r   test_indentation_error-TestInteractiveConsole.test_indentation_errorr   s%   #((:*>"?Odkk6N6NOO%;<=>6o67**,R0 33 	4 	dkk++-=>d4;;1124DE$++445$++00>>?dkk**DKK,B,BCr"   c                   R \        R4      .V P                  n        V P                  P	                  4        RP                  R V P                  P                   4       4      pWP                  R4      R pWP                  R4      ^,           R pV P                  VR4       V P                  V P                  P                  \        4       V P                  \        V P                  P                  4      \        4       V P!                  V P                  P"                  4       V P!                  V P                  P                  P$                  4       V P                  V P                  P&                  V P                  P                  4       R# )u   ''r7   r8   c              3   R   "   T F  pR P                  V^,          4      x  K  	  R# 5ir:   r;   r=   s   & r   r@   <TestInteractiveConsole.test_unicode_error.<locals>.<genexpr>   rB   rC   rb   N
zUnicodeEncodeError: )rE   r   rF   r1   rG   r<   r   rH   rf   assertStartsWithrh   r   ri   UnicodeEncodeErrorrk   rl   rm   rn   ro   rp   rL   s   & r   test_unicode_error)TestInteractiveConsole.test_unicode_error   s   #-x
/C"DOdkk6N6NOO%;<=>T*Q./0f&<=dkk++-?@d4;;1124FG$++445$++00>>?dkk**DKK,B,BCr"   c                   R RRR\        R4      .V P                  n        \        P                  ! 4       pWP
                  n        V P                  P                  4        VP                  4        VP                  V P
                  P                  V P
                  P                  V P
                  P                  4       V P                  V P
                  P                  \        4       V P                  \!        V P
                  P                  4      \        4       V P                  V P
                  P                  V P
                  P                  P"                  4       V P                  V P
                  P$                  V P
                  P                  4       V P'                  \(        P*                  ! V P
                  P$                  4      . RO4       R# )r^   z    raise ValueError('BOOM!')r8   zf()r7   N)z#Traceback (most recent call last):
z(  File "<console>", line 1, in <module>
z!  File "<console>", line 2, in f
zValueError: BOOM!
)rE   r   rF   r   Mockr   r   r1   rG   assert_calledassert_called_withri   rl   rn   rh   
ValueErrorrk   ro   rp   rK   	tracebackformat_exceptionr   hooks   & r   test_sysexcepthook)TestInteractiveConsole.test_sysexcepthook   s7   #-#B#%#($,Z$8	#:
 yy{!% 5 5 $ 6 6 $ : :	< 	dkk++Z8d4;;112J?dkk00$++2H2H2V2VWdkk**DKK,B,BC33DKK4H4HI L# 	$r"   c                   R RR\        R4      .V P                  n        \        P                  ! 4       pWP
                  n        V P                  P                  4        VP                  4        VP                  V P
                  P                  V P
                  P                  V P
                  P                  4       V P                  V P
                  P                  \        4       V P                  \!        V P
                  P                  4      \        4       V P#                  V P
                  P                  4       V P#                  V P
                  P                  P$                  4       V P                  V P
                  P&                  V P
                  P                  4       V P)                  \*        P,                  ! V P
                  P&                  4      . RO4       R# )r^   r_   r8   r7   N)z  File "<console>", line 2
z
    x = ?
z
        ^
zSyntaxError: invalid syntax
)rE   r   rF   r   r   r   r   r1   rG   r   r   ri   rl   rn   rh   rj   rk   rm   ro   rp   rK   r   r   r   s   & r   test_sysexcepthook_syntax_error6TestInteractiveConsole.test_sysexcepthook_syntax_error   sB   #-#.#%$,Z$8#: yy{!% 5 5 $ 6 6 $ : :	< 	dkk++[9d4;;112K@$++445$++00>>?dkk**DKK,B,BC33DKK4H4HI L- 	.r"   c                   R \        R4      .V P                  n        \        P                  ! 4       pWP
                  n        V P                  P                  4        VP                  4        VP                  V P
                  P                  V P
                  P                  V P
                  P                  4       V P                  V P
                  P                  \        4       V P                  \!        V P
                  P                  4      \        4       V P#                  V P
                  P                  4       V P#                  V P
                  P                  P$                  4       V P                  V P
                  P&                  V P
                  P                  4       V P)                  \*        P,                  ! V P
                  P&                  4      . RO4       R# )rt   r7   N)z  File "<console>", line 1
z    1
z$IndentationError: unexpected indent
)rE   r   rF   r   r   r   r   r1   rG   r   r   ri   rl   rn   rh   rw   rk   rm   ro   rp   rK   r   r   r   s   & r   $test_sysexcepthook_indentation_error;TestInteractiveConsole.test_sysexcepthook_indentation_error   s9   #((:*>"?yy{!% 5 5 $ 6 6 $ : :	< 	dkk++-=>d4;;1124DE$++445$++00>>?dkk**DKK,B,BC33DKK4H4HI L5 	6r"   c                   R RR\        R4      .V P                  n        ^V P                  n        V P
                  P                  4        V P                  RR/ .V P                  P                  ^ ,          4       RP                  R V P                  P                   4       4      pV P                  RV4       V P                  VP                  R4      ^4       V P                  R	V4       V P                  R
V4       R# )1/0a = 123print(a)r7   writer8   c              3   f   "   T F'  q^ ,          R8X  g   K  VP                   ^ ,          x  K)  	  R# 5ir   r   Nargsr=   s   & r   r@   WTestInteractiveConsole.test_sysexcepthook_crashing_doesnt_close_repl.<locals>.<genexpr>   )     `1IRSWX_M_		!1I   11Error in sys.excepthook:z'int' object is not callableOriginal exception was:division by zeroN123rE   r   rF   r   r   r1   rG   rK   r   rH   r<   r   rI   count)r   errors   & r   -test_sysexcepthook_crashing_doesnt_close_replDTestInteractiveConsole.test_sysexcepthook_crashing_doesnt_close_repl   s    #()Z*AU"V!"'9b14;;3K3KA3NO`1I1I``0%8%CDaH/7(%0r"   c                  a R RR\        R4      .V P                  n        RoV3R lpWP                  n        V P
                  P                  4        V P                  RR/ .V P                  P                  ^ ,          4       RP                  R V P                  P                   4       4      pV P                  R	V4       V P                  VP                  R4      ^4       V P                  R
V4       V P                  RV4       R# )r   r   r   r7   znot so fastc                     < \        S4      hr.   )BaseException)r   kwargsss   *,r   
raise_baseSTestInteractiveConsole.test_sysexcepthook_raising_BaseException.<locals>.raise_base   s    ""r"   r   r8   c              3   f   "   T F'  q^ ,          R8X  g   K  VP                   ^ ,          x  K)  	  R# 5ir   r   r=   s   & r   r@   RTestInteractiveConsole.test_sysexcepthook_raising_BaseException.<locals>.<genexpr>   r   r   r   r   r   Nr   r   )r   r   r   r   s   &  @r   (test_sysexcepthook_raising_BaseException?TestInteractiveConsole.test_sysexcepthook_raising_BaseException   s    #()Z*AU"V	#!+'9b14;;3K3KA3NO`1I1I``0%8]3Q7/7(%0r"   c                    R .V P                   n        R pWP                  n        V P	                  \
        4      ;_uu_ 4        V P                  P                  4        RRR4       R#   + '       g   i     R# ; i)r   c                      \         hr.   )
SystemExit)r   r   s   *,r   r   ]TestInteractiveConsole.test_sysexcepthook_raising_SystemExit_gets_through.<locals>.raise_base   s    r"   N)r   rF   r   r   assertRaisesr   r1   rG   )r   r   s   & r   2test_sysexcepthook_raising_SystemExit_gets_throughITestInteractiveConsole.test_sysexcepthook_raising_SystemExit_gets_through   sO    #('	!+z**LL!!# +***s   A((A9	c                2   \        R 4      V P                  n        V P                  P	                  RR7       V P                  \        V P                  P                  4      ^4       V P                  P                  ^ ,          pV P                  VRR/ .4       V P                  P                  4        \        R 4      V P                  n        V P                  P	                  RR7       V P                  \        V P                  P                  4      ^4       R# )r7   Foobannerr   r8   N)zFoo

rE   r   rF   r1   rG   rK   lenr   rH   
reset_mock)r   banner_calls   & r   test_banner"TestInteractiveConsole.test_banner   s    "*:"6U+T[[556:kk..q1w
B&?@ 	 "*:"6R(T[[556:r"   c                   \        R 4      V P                  n        V P                  P	                  RR7       V P                  \        V P                  P                  4      ^4       V P                  P                  ^,          pRpV P                  VRV3/ .4       V P                  P                  4        \        R 4      V P                  n        V P                  P	                  RRR7       V P                  \        V P                  P                  4      ^4       V P                  P                  4        Rp\        R 4      V P                  n        V P                  P	                  RVR7       V P                  \        V P                  P                  4      ^4       V P                  P                  ^,          pVR,           pV P                  VRV3/ .4       R# )	r7   r8   r   "now exiting InteractiveConsole...
r   )r   exitmsgu	   bye! ζжr}   Nr   )r   err_msgexpectedmessages   &   r   test_exit_msg$TestInteractiveConsole.test_exit_msg   sk   "*:"6R(T[[556:++**1-87XK"<= 	 "*:"6R4T[[556: 	 K 	 #+:"6R9T[[556:++**1-T>7XK"<=r"   c                   R \        R4      .V P                  n        V P                  P	                  4        RP                  R V P                  P                   4       4      p\        R4      pV P                  W!4       V P                  V P                  P                  \        4       V P                  \        V P                  P                  4      \        4       V P                  V P                  P                   V P                  P                  P"                  4       V P%                  V P                  P                   4       V P                  V P                  P&                  V P                  P                  4       R# )z(raise ValueError('') from AttributeErrorr7   r8   c              3   R   "   T F  pR P                  V^,          4      x  K  	  R# 5ir:   r;   r=   s   & r   r@   7TestInteractiveConsole.test_cause_tb.<locals>.<genexpr>  rB   rC   z
        AttributeError

        The above exception was the direct cause of the following exception:

        Traceback (most recent call last):
          File "<console>", line 1, in <module>
        ValueError
        N)rE   r   rF   r1   rG   r<   r   rH   r   rI   rh   r   ri   r   rk   rl   rn   ro   assertIsNotNonerp   r   rM   r   s   &  r   test_cause_tb$TestInteractiveConsole.test_cause_tb  s    #M$,Z$8#:Odkk6N6NOO   	h'dkk++Z8d4;;112J?dkk00$++2H2H2V2VWT[[778dkk**DKK,B,BCr"   c                   R \        R4      .V P                  n        V P                  P	                  4        RP                  R V P                  P                   4       4      p\        R4      pV P                  W!4       V P                  V P                  P                  \        4       V P                  \        V P                  P                  4      \        4       V P                  V P                  P                   V P                  P                  P"                  4       V P%                  V P                  P                   4       V P                  V P                  P&                  V P                  P                  4       R# )ztry: ham
except: eggs
r7   r8   c              3   R   "   T F  pR P                  V^,          4      x  K  	  R# 5ir:   r;   r=   s   & r   r@   9TestInteractiveConsole.test_context_tb.<locals>.<genexpr>4  rB   rC   ah  
        Traceback (most recent call last):
          File "<console>", line 1, in <module>
        NameError: name 'ham' is not defined

        During handling of the above exception, another exception occurred:

        Traceback (most recent call last):
          File "<console>", line 2, in <module>
        NameError: name 'eggs' is not defined
        N)rE   r   rF   r1   rG   r<   r   rH   r   rI   rh   r   ri   	NameErrorrk   rl   rn   ro   r   rp   r   s   &  r   test_context_tb&TestInteractiveConsole.test_context_tb0  s    #=$,Z$8#:Odkk6N6NOO 
 
 	h'dkk++Y7d4;;112I>dkk00$++2H2H2V2VWT[[778dkk**DKK,B,BCr"   r1   )r#   r$   r%   r&   maxDiffr3   rN   rU   r[   rq   rx   r   r   r   r   r   r   r   r   r   r   r   r'   r(   r)   s   @r   r,   r,   !   sj     G7,7,6D(D D$...6&	11$;>8D*D Dr"   r,   c                      a  ] tR tRt o R t]P                  ! ]P                  P                  R4      R 4       t
RtV tR# )TestInteractiveConsoleLocalExitiH  c                \    \         P                  R R7      V n        V P                  4        R# )T)
local_exitNr/   r2   s   &r   r3   %TestInteractiveConsoleLocalExit.setUpJ  s     ..$.?r"   z1exit() isn't defined unless there's a site modulec                *   R .V P                   n        V P                  P                  RR7       V P	                  \        V P                  P                  4      ^4       V P                  P                  ^,          pRpV P	                  VRV3/ .4       R# )zexit()r8   r   r   r   N)r   rF   r1   rG   rK   r   r   rH   )r   r   r   s   &  r   	test_exit)TestInteractiveConsoleLocalExit.test_exitN  sx     $,*R(T[[556:++**1-87XK"<=r"   r   N)r#   r$   r%   r&   r3   unittestskipIfr   flagsno_siter   r'   r(   r)   s   @r   r   r   H  s5      __SYY&&([\> ]>r"   r   __main__)r   r   r   textwrapr   
contextlibr   r   test.supportr   r   import_moduler   r
   TestCaser,   r   r#   main r"   r   <module>r      s    
       7 &""6* &  cDX.. cD  cDL	>h&7&7 >" zMMO r"   