
    z%i                     >   	 d dl Z d dlZd dlZd dlZd dlZd dlmZ  G d de j                        Z G d dej                        Z
d Zd Zed	k(  rMd
ej                  v r	 ed       ydej                  v r e       j                          y ej                           yy)    N)supportc                   J    e Zd Z	 d Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)samplecmdclassc                     t        d       y )NzHello from preloopprintselfs    A/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/test/test_cmd.pypreloopzsamplecmdclass.preloop   s    "#    c                     t        d       y )NzHello from postloopr   r	   s    r   postloopzsamplecmdclass.postloop   s    #$r   c                     t        d       y )Nz"This is the completedefault methodr   )r
   ignoreds     r   completedefaultzsamplecmdclass.completedefault   s    23r   c                     t        d       y )Nzcomplete commandr   r	   s    r   complete_commandzsamplecmdclass.complete_command   s     !r   c                      y N )r
   ss     r   do_shellzsamplecmdclass.do_shell   s    r   c                     |j                         }t        |      dk7  rt        d       y 	 |D cg c]  }t        |       }}t        |d   |d   z          y c c}w # t        $ r t        d       Y y w xY w)N   z*** invalid number of argumentsz*** arguments should be numbersr      )splitlenr   int
ValueError)r
   r   lis       r   do_addzsamplecmdclass.do_add   sv    GGIq6Q;34	!"#AQ#A# 	ad1Q4i	 $ 	34	s"   A AA A A54A5c                     t        d       y )Nzhelp text for addr   r	   s    r   help_addzsamplecmdclass.help_add   s    !"r   c                     t        d       y )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_meaningzsamplecmdclass.help_meaning   s     2 	3 	r   c                     t        d       y )Nz&Always look on the bright side of lifer   r	   s    r   	help_lifezsamplecmdclass.help_life   s    67r   c                      yNTr   )r
   args     r   do_exitzsamplecmdclass.do_exit   s    r   N)__name__
__module____qualname__r   r   r   r   r   r#   r%   r'   r)   r-   r   r   r   r   r      s;    EN$%4"
r   r   c                   X    e Zd Z G d dej                        Z G d de      Zd Zd Zy)TestAlternateInputc                       e Zd Zd Zd Zy)TestAlternateInput.simplecmdc                 2    t        || j                         y )Nfiler   stdoutr
   argss     r   do_printz%TestAlternateInput.simplecmd.do_print   s    $T[[)r   c                      yr+   r   r:   s     r   do_EOFz#TestAlternateInput.simplecmd.do_EOF   s    r   N)r.   r/   r0   r<   r>   r   r   r   	simplecmdr4      s    	*	r   r?   c                       e Zd Zd Zy)TestAlternateInput.simplecmd2c                 2    t        d| j                         y)Nz*** Unknown syntax: EOFr6   Tr8   r:   s     r   r>   z$TestAlternateInput.simplecmd2.do_EOF   s    +$++>r   N)r.   r/   r0   r>   r   r   r   
simplecmd2rA      s    	r   rC   c                     t        j                  d      }t        j                         }| j                  ||      }d|_         |j                          | j                  |j                         d       y )Nprint test
print test2stdinr9   Fz(Cmd) test
(Cmd) test2
(Cmd) )ioStringIOr?   use_rawinputcmdloopassertMultiLineEqualgetvaluer
   inputoutputcmds       r   test_file_with_missing_final_nlz2TestAlternateInput.test_file_with_missing_final_nl   s]    56nn5n8 !!&//"3	r   c                    t        j                  d      }t        j                         }| j                  ||      }d|_         |j                          | j                  |j                         d       t        j                  d      }t        j                         }||_        ||_         |j                          | j                  |j                         d       y )NrE   rF   Fz5(Cmd) test
(Cmd) test2
(Cmd) *** Unknown syntax: EOF
zprint 

z,(Cmd) 
(Cmd) 
(Cmd) *** Unknown syntax: EOF
)	rH   rI   rC   rJ   rK   rL   rM   rG   r9   rN   s       r   test_input_reset_at_EOFz*TestAlternateInput.test_input_reset_at_EOF   s    56ooE&o9 !!&//"3/	1 L)	
!!&//"3/	1r   N)	r.   r/   r0   rQ   Cmdr?   rC   rR   rT   r   r   r   r2   r2      s(    CGG Y 	1r   r2   c                 L    |j                  t        j                                |S r   )addTestdoctestDocTestSuite)loadertestspatterns      r   
load_testsr]      s    	MM'&&()Lr   c                    t        j                  d      }|j                  t        j                  t        j
                  gdd      }|j                  d       |j                         }t        d       |j                  dd|        y )	Ntracer   r   )
ignoredirsr_   countz4import importlib; importlib.reload(cmd); test_main()zWriting coverage results...T)show_missingsummarycoverdir)
r   import_moduleTracesysbase_prefixbase_exec_prefixrunresultsr   write_results)rd   r_   tracerrs       r   test_coveragero      so    !!'*E;;3??C4H4H"Jq  *F
JJEFnnA	
'(OOthOGr   __main__z-cz/tmp/cmd.coverz-i)rQ   rg   rX   unittestrH   testr   rU   r   TestCaser2   r]   ro   r.   argvrK   mainr   r   r   <module>rv      s     
   	 sSWW sl01** 01fH zsxx&'		  " r   