§
    �ŸjT   ã                   ó<  — d Z ddlZddlZddlZddlmZ ddlmZ ddl	m
Z
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¦  «        Zd„ Z G d„ dej        ¦  «        Zd„ Z G d„ dej        ¦  «        ZdS )z:Tests for the TerminalInteractiveShell and related pieces.é    N)ÚAutoSuggestFromHistory)Útools)Ú_elideÚ(_adjust_completion_text_based_on_context)ÚNavigableAutoSuggestFromHistoryc                   ó   — e Zd Zd„ ZdS )ÚTestAutoSuggestc                 ó  — t          ¦   «         }d |_        |                      |j        d ¦  «         d|_        |                      |j        t
          ¦  «         d|_        |                      |j        t          ¦  «         d S )Nr   r   )Úget_ipythonÚautosuggestions_providerÚassertEqualÚauto_suggestÚassertIsInstancer   r   ©ÚselfÚips     úx/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/IPython/terminal/tests/test_interactivshell.pyÚtest_changing_providerz&TestAutoSuggest.test_changing_provider   ss   € Ý‰]Œ]ˆØ&*ˆÔ#Ø×Ò˜œ¨$Ñ/Ô/Ð/Ø&>ˆÔ#Ø×Ò˜bœoÕ/EÑFÔFÐFØ&GˆÔ#Ø×Ò˜bœoÕ/NÑOÔOÐOÐOÐOó    N)Ú__name__Ú
__module__Ú__qualname__r   © r   r   r	   r	      s(   € € € € € ðPð Pð Pð Pð Pr   r	   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )Ú	TestElidec                 ób  — t          dd¦  «         t          dd¦  «         |                      t          dd¦  «        d¦  «         t          j                             g d¢¦  «        }t          j        dz   dz   d	z   t          j        z   d
z   }|                      t          |d¦  «        |¦  «         d S )Nzconcatenate((a1, a2, ...), axisÚ z concatenate((a1, a2, ..), . axisz0aaaa.bbbb.ccccc.dddddd.eeeee.fffff.gggggg.hhhhhhu   aaaa.bâ€¦g.hhhhhh)r   Ú
aaaaaaaaaaÚ
bbbbbbbbbbÚ
ccccccccccr   Úau   â€¦Úbr    )r   r   ÚosÚsepÚjoin)r   Útest_stringÚexpect_strings      r   Ú
test_elidezTestElide.test_elide   s¶   € ÝÐ0°"Ñ5Ô5Ð5ÝÐ1°2Ñ6Ô6Ð6Ø×ÒÝÐEÀrÑJÔJØñ	
ô 	
ð 	
õ
 ”f—k’kÐ"HÐ"HÐ"HÑIÔIˆåŒF�S‰LÐ4Ñ4°sÑ:½R¼VÑCÀhÑNð 	ð 	×Ò� ¨RÑ0Ô0°-Ñ@Ô@Ð@Ð@Ð@r   c                 óR   — |                       t          ddd¬¦  «        d¦  «         d S )Nú,the quick brown fox jumped over the lazy dogzthe quick brown foxé
   ©Ú	min_elideu"   theâ€¦fox jumped over the lazy dog©r   r   ©r   s    r   Útest_elide_typed_normalz!TestElide.test_elide_typed_normal-   sD   € Ø×ÒÝØ>Ø%Øðñ ô ð
 1ñ	
ô 	
ð 	
ð 	
ð 	
r   c                 óR   — |                       t          ddd¬¦  «        d¦  «         dS )úY
        if the match is too short we don't elide.
        avoid the "the...the"
        r*   Úther+   r,   Nr.   r/   s    r   Útest_elide_typed_short_matchz&TestElide.test_elide_typed_short_match7   s=   € ð
 	×ÒÝÐAÀ5ÐTVÐWÑWÔWØ:ñ	
ô 	
ð 	
ð 	
ð 	
r   c                 óR   — |                       t          ddd¬¦  «        d¦  «         dS )r2   r*   zthe quick red foxr+   r,   Nr.   r/   s    r   Útest_elide_typed_no_matchz#TestElide.test_elide_typed_no_matchA   sF   € ð 	×ÒÝØ>Ø#Øðñ ô ð
 ;ñ	
ô 	
ð 	
ð 	
ð 	
r   N)r   r   r   r(   r0   r4   r6   r   r   r   r   r      sS   € € € € € ðAð Að Að
ð 
ð 
ð
ð 
ð 
ð
ð 
ð 
ð 
ð 
r   r   c                   ó   — e Zd Zd„ ZdS )ÚTestContextAwareCompletionc                 óx  — |                       t          ddd¦  «        d¦  «         |                       t          ddd¦  «        d¦  «         |                       t          ddd¦  «        d¦  «         |                       t          ddd¦  «        d¦  «         |                       t          ddd¦  «        d¦  «         d S )	Nzarg1=z	func1(a=)é   Úarg1zfunc1(a)zfunc1(az%magicÚfunc2)r   r   r/   s    r   Ú,test_adjust_completion_text_based_on_contextzGTestContextAwareCompletion.test_adjust_completion_text_based_on_contextR   sâ   € à×ÒÝ4°W¸kÈ1ÑMÔMÈvñ	
ô 	
ð 	
ð
 	×ÒÝ4°W¸jÈ!ÑLÔLÈgñ	
ô 	
ð 	
ð 	×ÒÝ4°W¸iÈÑKÔKÈWñ	
ô 	
ð 	
ð 	×ÒÝ4°X¸{ÈAÑNÔNÐPXñ	
ô 	
ð 	
ð 	×ÒÝ4°W¸kÈ1ÑMÔMÈwñ	
ô 	
ð 	
ð 	
ð 	
r   N)r   r   r   r=   r   r   r   r8   r8   Q   s#   € € € € € ð
ð 
ð 
ð 
ð 
r   r8   c                   ó*   — e Zd ZdZd„ Zd„ Zd„ Zd„ ZdS )Úmock_input_helperzZMachinery for tests of the main interact loop.

    Used by the mock_input decorator.
    c                 óH   — || _         d | _        t          ¦   «         | _        d S ©N)ÚtestgenÚ	exceptionr   r   )r   rB   s     r   Ú__init__zmock_input_helper.__init__o   s   € ØˆŒØˆŒÝ‘-”-ˆŒˆˆr   c                 óJ   — | j         j        | _        | j        | j         _        | S rA   )r   Úprompt_for_codeÚorig_prompt_for_codeÚ
fake_inputr/   s    r   Ú	__enter__zmock_input_helper.__enter__t   s    € Ø$(¤GÔ$;ˆÔ!Ø"&¤/ˆŒÔØˆr   c                 ó(   — | j         | j        _        d S rA   )rG   r   rF   )r   ÚetypeÚvalueÚtbs       r   Ú__exit__zmock_input_helper.__exit__y   s   € Ø"&Ô";ˆŒÔÐÐr   c                 ó´   — 	 t          | j        ¦  «        S # t          $ r d| j        _        Y dS  t          j        ¦   «         | _        d| j        _        Y dS xY w)NFr   )ÚnextrB   ÚStopIterationr   Úkeep_runningÚsysÚexc_inforC   r/   s    r   rH   zmock_input_helper.fake_input|   sa   € ð	Ý˜œÑ%Ô%Ð%øÝð 	ð 	ð 	Ø#(ˆDŒGÔ Ø�3�3ð	Ý œ\™^œ^ˆDŒNØ#(ˆDŒGÔ Ø�3�3øøøs   ‚ –A¯%AN)r   r   r   Ú__doc__rD   rI   rN   rH   r   r   r   r?   r?   j   sZ   € € € € € ðð ð ð  ð  ð
ð ð ð
<ð <ð <ð	ð 	ð 	ð 	ð 	r   r?   c                 ó   ‡ — ˆ fd„}|S )z·Decorator for tests of the main interact loop.

    Write the test as a generator, yield-ing the input strings, which IPython
    will see as if they were typed in at the prompt.
    c                 ó  •—  ‰| ¦  «        }t          |¦  «        5 }|j                             ¦   «          d d d ¦  «         n# 1 swxY w Y   |j        �3|j        \  }}}dd l}|                     |t          j        ¬¦  «         ~|‚d S )Nr   )Úfile)r?   r   ÚinteractrC   Ú	tracebackÚprint_tbrS   Ústdout)r   rB   ÚmihrK   rL   rM   rZ   Útestfuncs          €r   Útest_methodzmock_input.<locals>.test_method�   sÑ   ø€ Ø�(˜4‘.”.ˆÝ˜wÑ'Ô'ð 	¨3ØŒF�OŠOÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð Œ=Ð$à"œ}ÑˆE�5˜"ØÐÐÐØ×Ò˜r­¬
ÐÑ3Ô3Ð3ØØˆKð %Ð$s   œAÁAÁ	Ar   )r^   r_   s   ` r   Ú
mock_inputr`   ‡   s$   ø€ ðð ð ð ð ð Ðr   c                   ó0   — e Zd Zd„ Zed„ ¦   «         Zd„ ZdS )ÚInteractiveShellTestCasec                 óD   ‡— ˆfd„t          |dz
  dd¦  «        D ¦   «         S )z-Get last n readline history entries as a listc                 ód   •— g | ],}‰                      ‰                     ¦   «         |z
  ¦  «        ‘Œ-S r   )Úget_history_itemÚget_current_history_length)Ú.0ÚxÚrls     €r   ú
<listcomp>z<InteractiveShellTestCase.rl_hist_entries.<locals>.<listcomp>¡   sH   ø€ ð /ð /ð /Øð ×#Ò# B×$AÒ$AÑ$CÔ$CÀaÑ$GÑHÔHð /ð /ð /r   é   éÿÿÿÿ)Úrange)r   ri   Úns    ` r   Úrl_hist_entriesz(InteractiveShellTestCase.rl_hist_entriesŸ   s>   ø€ ð/ð /ð /ð /Ý˜q 1™u b¨"Ñ-Ô-ð/ñ /ô /ð 	/r   c              #   ó  K  — t          ¦   «         }|j                             t          ¦  «         	 t	          j        dd¬¦  «        5  dV — d d d ¦  «         n# 1 swxY w Y   t	          j        dd¬¦  «        5  dV — d d d ¦  «         n# 1 swxY w Y   t	          j        dd¬¦  «        5  dV — d d d ¦  «         n# 1 swxY w Y   |j                             t          ¦  «         d S # |j                             t          ¦  «         w xY w)	NÚ4F)Úsuppressz
print(2*2)zSyntaxError: input containszprint(2345) # syntaxerrorÚ16z
print(4*4))r   Úinput_transformers_postÚappendÚsyntax_error_transformerÚttÚAssertPrintsÚremover   s     r   Ú!test_inputtransformer_syntaxerrorz:InteractiveShellTestCase.test_inputtransformer_syntaxerror¤   sÒ  è è € å‰]Œ]ˆØ
Ô"×)Ò)Õ*BÑCÔCÐCð	Hå” ¨uÐ5Ñ5Ô5ð $ð $Ø#Ð#Ð#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $õ ”Ð!>ÈÐOÑOÔOð 3ð 3Ø2Ð2Ð2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3õ ” °Ð6Ñ6Ô6ð $ð $Ø#Ð#Ð#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð Ô&×-Ò-Õ.FÑGÔGÐGÐGÐGøˆBÔ&×-Ò-Õ.FÑGÔGÐGÐGøøøsw   ±C( ÁAÁC( ÁAÁC( ÁAÁ C( Á9B
Á>C( Â
BÂC( ÂBÂC( Â+B<Â0C( Â<C Ã C( ÃC ÃC( Ã(!D	c                 ó”  ‡	— t          ¦   «         }|j        }|j        dgk    sJ ‚|j        j        sJ ‚ G d„ dt
          ¦  «        } |¦   «         }|                     |¦  «        \  }}|                      |dt          |¦  «        i¦  «          G d„ d|¦  «        }dŠ	ˆ	fd„}|j        j         	                    d¦  «         d	|j        j
        d         _        ||j        d<   	  |¦   «         }t          |¦  «         d|j        j
        d         _        |j        d= n$# d|j        j
        d         _        |j        d= w xY w‰	d	k    sJ ‚d S )
Nz
text/plainc                   ó   — e Zd Zd„ Zd„ ZdS )ú?InteractiveShellTestCase.test_repl_not_plain_text.<locals>.Testc                 ó&   — dt          | ¦  «        z  S )Nz	<Test %i>)Úidr/   s    r   Ú__repr__zHInteractiveShellTestCase.test_repl_not_plain_text.<locals>.Test.__repr__Á   s   € Ø"¥R¨¡X¤XÑ-Ð-r   c                 ó   — dS )Nz<html>r   r/   s    r   Ú_repr_html_zKInteractiveShellTestCase.test_repl_not_plain_text.<locals>.Test._repr_html_Ä   s   € Ø�xr   N)r   r   r   r€   r‚   r   r   r   ÚTestr}   À   s2   € € € € € ð.ð .ð .ð ð  ð  ð  ð  r   rƒ   c                   ó   — e Zd Zd„ ZdS )ú@InteractiveShellTestCase.test_repl_not_plain_text.<locals>.Test2c                 ó>   — ddl m}m}  | |d¦  «        ¦  «         d S )Nr   )ÚdisplayÚHTMLz<custom>)ÚIPython.displayr‡   rˆ   )r   r‡   rˆ   s      r   Ú_ipython_display_zRInteractiveShellTestCase.test_repl_not_plain_text.<locals>.Test2._ipython_display_Í   s:   € Ø9Ð9Ð9Ð9Ð9Ð9Ð9Ð9à�˜˜˜ZÑ(Ô(Ñ)Ô)Ð)Ð)Ð)r   N)r   r   r   rŠ   r   r   r   ÚTest2r…   Ì   s#   € € € € € ð*ð *ð *ð *ð *r   r‹   Fc                 ó*   •— t          d¦  «         dŠd S )NzHandler calledT)Úprint)ÚdataÚmetadataÚcalleds     €r   ÚhandlerzBInteractiveShellTestCase.test_repl_not_plain_text.<locals>.handlerÕ   s   ø€ ÝÐ"Ñ#Ô#Ð#àˆFˆFˆFr   z	text/htmlT)r   Údisplay_formatterÚactive_typesÚipython_display_formatterÚenabledÚobjectÚformatr   Úreprru   Ú
formattersÚmime_renderersr‡   )
r   r   Ú	formatterrƒ   ÚobjrŽ   Ú_r‹   r‘   r�   s
            @r   Útest_repl_not_plain_textz1InteractiveShellTestCase.test_repl_not_plain_text·   s¯  ø€ Ý‰]Œ]ˆØÔ(ˆ	ØÔ%¨,¨Ò7Ð7Ð7Ð7ð Ô2Ô:Ð:Ð:Ð:ð	 ð 	 ð 	 ð 	 ð 	 •6ñ 	 ô 	 ð 	 ð ˆd‰fŒfˆØ×"Ò" 3Ñ'Ô'‰ˆˆaØ×Ò˜ ­d°3©i¬iÐ8Ñ9Ô9Ð9ð	*ð 	*ð 	*ð 	*ð 	*�Dñ 	*ô 	*ð 	*ð ˆð	ð 	ð 	ð 	ð 	ð
 	ÔÔ)×0Ò0°Ñ=Ô=Ð=Ø?CˆÔÔ'¨Ô4Ô<Ø)0ˆÔ˜+Ñ&ð	/Ø�$‘&”&ˆCÝ�C‰LŒLˆLàCHˆBÔ Ô+¨KÔ8Ô@ØÔ! +Ð.Ð.øð DIˆBÔ Ô+¨KÔ8Ô@ØÔ! +Ð.Ð.Ð.Ð.Ð.à˜Š~ˆ~ˆ~ˆ~ˆ~ˆ~s   Ã#D Ä!D=N)r   r   r   ro   r`   rz   rž   r   r   r   rb   rb   ž   sP   € € € € € ð/ð /ð /ð
 ðHð Hñ „ZðHð$-ð -ð -ð -ð -r   rb   c                 óŠ   — | D ]?}|                      d¦  «        }|dk    r"t          d¦  «        }||_        |dz   |_        |‚Œ@| S )zDTransformer that throws SyntaxError if 'syntaxerror' is in the code.Úsyntaxerrorr   zinput contains "syntaxerror"rk   )ÚfindÚSyntaxErrorÚtextÚoffset)ÚlinesÚlineÚposÚes       r   rv   rv   ç   s\   € àð ð ˆØ�iŠi˜Ñ&Ô&ˆØ�!Š8ˆ8ÝÐ:Ñ;Ô;ˆAØˆAŒFØ˜Q‘wˆAŒHØˆGð	 ð
 €Lr   c                   ó   — e Zd Zd„ ZdS )ÚTerminalMagicsTestCasec                 óÌ   — t          ¦   «         }d}|j        j        d         }|                     |d¬¦  «         |                       |j        d         d¦  «        d¦  «         dS )z=Test that code with a blank line doesn't get split (gh-3246).z-def pasted_func(a):
    b = a+1

    return bÚTerminalMagicsN)ÚnameÚpasted_funcé6   é7   )r   Úmagics_managerÚregistryÚstore_or_executer   Úuser_ns)r   r   ÚsÚtms       r   Útest_paste_magics_blanklinez2TerminalMagicsTestCase.test_paste_magics_blanklineô   sl   € å‰]Œ]ˆðˆð
 ÔÔ'Ð(8Ô9ˆØ
×Ò˜A DÐÑ)Ô)Ð)à×ÒÐ2˜œ MÔ2°2Ñ6Ô6¸Ñ;Ô;Ð;Ð;Ð;r   N)r   r   r   r·   r   r   r   rª   rª   ó   s#   € € € € € ð<ð <ð <ð <ð <r   rª   )rU   rS   Úunittestr#   Úprompt_toolkit.auto_suggestr   ÚIPython.testingr   rw   ÚIPython.terminal.ptutilsr   r   Ú'IPython.terminal.shortcuts.auto_suggestr   ÚTestCaser	   r   r8   r–   r?   r`   rb   rv   rª   r   r   r   ú<module>r¾      s½  ðà @Ð @ð €
€
€
Ø €€€Ø 	€	€	€	à >Ð >Ð >Ð >Ð >Ð >ð (Ð 'Ð 'Ð 'Ð 'Ð 'à UÐ UÐ UÐ UÐ UÐ UÐ UÐ UØ SÐ SÐ SÐ SÐ SÐ SðPð Pð Pð Pð P�hÔ'ñ Pô Pð Pð0
ð 0
ð 0
ð 0
ð 0
�Ô!ñ 0
ô 0
ð 0
ðf
ð 
ð 
ð 
ð 
 Ô!2ñ 
ô 
ð 
ð2ð ð ð ð ˜ñ ô ð ð:ð ð ð.Fð Fð Fð Fð F˜xÔ0ñ Fô Fð FðR	ð 	ð 	ð<ð <ð <ð <ð <˜XÔ.ñ <ô <ð <ð <ð <r   