
    /hhF                        S SK r S SKrS SKrS SKrS SKrS SKrS SKJr  S SKJ	r	  S SK
Jr   " S S\ R                  5      r " S S\R                  5      r " S	 S
\ R                  5      r\R"                  " 5        " S S\R                  5      5       rS r\S:X  a8  S\R*                  ;   a  \" 5       R-                  5         g\R.                  " 5         gg)    N)supportimport_module)run_ptyc                   P    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rSrg)samplecmdclass   c                     [        S5        g )NzHello from preloopprintselfs    6/opt/python-3.13.8/usr/lib/python3.13/test/test_cmd.pypreloopsamplecmdclass.preloop   s    "#    c                     [        S5        g )NzHello from postloopr   r   s    r   postloopsamplecmdclass.postloop   s    #$r   c                     [        S5        g )Nz"This is the completedefault methodr   )r   ignoreds     r   completedefaultsamplecmdclass.completedefault   s    23r   c                     [        S5        g )Nzcomplete commandr   r   s    r   complete_commandsamplecmdclass.complete_command   s     !r   c                     g N )r   ss     r   do_shellsamplecmdclass.do_shell   s    r   c                     UR                  5       n[        U5      S:w  a  [        S5        g  U Vs/ s H  n[        U5      PM     nn[        US   US   -   5        g s  snf ! [         a    [        S5         g f = f)N   z*** invalid number of argumentsz*** arguments should be numbersr      )splitlenr   int
ValueError)r   r    lis       r   do_addsamplecmdclass.do_add   sw    GGIq6Q;34	!"#AQA# 	ad1Q4i	 $ 	34	s"   A" AA" A" "A:9A:c                     [        S5        g )Nzhelp text for addr   r   s    r   help_addsamplecmdclass.help_add   s    !"r   c                     [        S5        g )NzTry and be nice to people, avoid eating fat, read a good book every now and then, get some walking in, and try to live together in peace and harmony with people of all creeds and nations.r   r   s    r   help_meaningsamplecmdclass.help_meaning   s     2 	3 	r   c                     [        S5        g )Nz&Always look on the bright side of lifer   r   s    r   	help_lifesamplecmdclass.help_life   s    67r   c                     gNTr   )r   args     r   do_exitsamplecmdclass.do_exit   s    r   r   N)__name__
__module____qualname____firstlineno__r   r   r   r   r!   r,   r/   r2   r5   r:   __static_attributes__r   r   r   r   r      s5    P$%4"
r   r   c                   `    \ rS rSr " S S\R
                  5      r " S S\5      rS rS r	Sr
g	)
TestAlternateInput   c                        \ rS rSrS rS rSrg)TestAlternateInput.simplecmd   c                 *    [        XR                  S9  g )Nfiler   stdoutr   argss     r   do_print%TestAlternateInput.simplecmd.do_print   s    $[[)r   c                     gr8   r   rL   s     r   do_EOF#TestAlternateInput.simplecmd.do_EOF   s    r   r   N)r<   r=   r>   r?   rN   rQ   r@   r   r   r   	simplecmdrE      s    	*	r   rS   c                       \ rS rSrS rSrg)TestAlternateInput.simplecmd2   c                 ,    [        SU R                  S9  g)Nz*** Unknown syntax: EOFrH   TrJ   rL   s     r   rQ   $TestAlternateInput.simplecmd2.do_EOF   s    +$++>r   r   N)r<   r=   r>   r?   rQ   r@   r   r   r   
simplecmd2rU      s    	r   rY   c                     [         R                  " S5      n[         R                  " 5       nU R                  XS9nSUl        UR                  " 5         U R                  UR                  5       S5        g )Nprint test
print test2stdinrK   Fz(Cmd) test
(Cmd) test2
(Cmd) )ioStringIOrS   use_rawinputcmdloopassertMultiLineEqualgetvaluer   inputoutputcmds       r   test_file_with_missing_final_nl2TestAlternateInput.test_file_with_missing_final_nl   sY    56nn5n8 !!&//"3	r   c                    [         R                  " S5      n[         R                  " 5       nU R                  XS9nSUl        UR                  " 5         U R                  UR                  5       S5        [         R                  " S5      n[         R                  " 5       nXl        X#l        UR                  " 5         U R                  UR                  5       S5        g )Nr[   r\   Fz5(Cmd) test
(Cmd) test2
(Cmd) *** Unknown syntax: EOF
zprint 

z,(Cmd) 
(Cmd) 
(Cmd) *** Unknown syntax: EOF
)	r^   r_   rY   r`   ra   rb   rc   r]   rK   rd   s       r   test_input_reset_at_EOF*TestAlternateInput.test_input_reset_at_EOF   s    56ooEo9 !!&//"3/	1 L)	
!!&//"3/	1r   r   N)r<   r=   r>   r?   rg   CmdrS   rY   rh   rk   r@   r   r   r   rB   rB      s(    CGG Y 	1r   rB   c                       \ rS rSrS rSrg)CmdPrintExceptionClass   c                 F    [        [        R                  " 5       S S 5        g )Nr$   )r   sysexc_info)r   lines     r   defaultCmdPrintExceptionClass.default  s    cllnRa !r   r   N)r<   r=   r>   r?   ru   r@   r   r   r   ro   ro      s    "r   ro   c                        \ rS rSrS rS rSrg)CmdTestReadlinei
  c                      [        S5      n g )Nreadliner   )rz   s    r   
setUpClassCmdTestReadline.setUpClass  s     !,r   c                     [         R                  " S5      nSn[        X5      nU R                  SU5        U R                  SU5        g )Nz
            import cmd
            class simplecmd(cmd.Cmd):
                def do_tab_completion_test(self, args):
                    print('tab completion success')
                    return True

            simplecmd().cmdloop()
        s   t	
s   ab_completion_tests   tab completion success)textwrapdedentr   assertIn)r   scriptre   rf   s       r   test_basic_completion%CmdTestReadline.test_basic_completion  sD     "  '+V4/8r   r   N)r<   r=   r>   r?   r{   r   r@   r   r   r   rx   rx   
  s    -
9r   rx   c                 N    UR                  [        R                  " 5       5        U$ r   )addTestdoctestDocTestSuite)loadertestspatterns      r   
load_testsr   $  s    	MM'&&()Lr   __main__z-i)rg   rr   r   unittestr^   r~   testr   test.support.import_helperr   test.support.pty_helperr   rm   r   TestCaserB   ro   requires_subprocessrx   r   r<   argvra   mainr   r   r   <module>r      s     
   	   4 +sSWW sl01** 01f"SWW "  	9h'' 9 92
 zsxx  "	 r   