a zei@sddlZddlZddlZddlZddlmZGdddejZGdddejZ dddZ d d Z e d krd ej vr~e d ndej vrene dS)N)supportc@sLeZdZddZddZddZddZd d Zd d Zd dZ ddZ dS)samplecmdclasscCs tddS)NzHello from preloopprintselfrA/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_cmd.pypreloopszsamplecmdclass.preloopcCs tddS)NzHello from postlooprrrrr postloopszsamplecmdclass.postloopcGs tddS)Nz"This is the completedefault methodr)rZignoredrrr completedefaultszsamplecmdclass.completedefaultcCs tddS)Nzcomplete commandrrrrr complete_commandszsamplecmdclass.complete_commandcCsdS)Nr)rsrrr do_shellszsamplecmdclass.do_shellcCsh|}t|dkr tddSzdd|D}WntyNtdYdS0t|d|ddS)Nz*** invalid number of argumentscSsg|] }t|qSr)int).0irrr z)samplecmdclass.do_add..z*** arguments should be numbersr)splitlenr ValueError)rrlrrr do_adds  zsamplecmdclass.do_addcCs tddS)Nzhelp text for addrrrrr help_addszsamplecmdclass.help_addcCsdSNTr)rargrrr do_exitszsamplecmdclass.do_exitN) __name__ __module__ __qualname__r r r r rrrrrrrr r s{ rc@s>eZdZGdddejZGdddeZddZddZd S) TestAlternateInputc@seZdZddZddZdS)zTestAlternateInput.simplecmdcCst||jddS)Nfilerstdoutrargsrrr do_printsz%TestAlternateInput.simplecmd.do_printcCsdSrrr(rrr do_EOFsz#TestAlternateInput.simplecmd.do_EOFN)r r!r"r*r+rrrr simplecmdsr,c@seZdZddZdS)zTestAlternateInput.simplecmd2cCstd|jddS)Nz*** Unknown syntax: EOFr$Tr&r(rrr r+sz$TestAlternateInput.simplecmd2.do_EOFN)r r!r"r+rrrr simplecmd2sr-cCsBtd}t}|j||d}d|_|||ddS)Nprint test print test2stdinr'Fz(Cmd) test (Cmd) test2 (Cmd) )ioStringIOr, use_rawinputcmdloopassertMultiLineEqualgetvaluerinputoutputcmdrrr test_file_with_missing_final_nls  z2TestAlternateInput.test_file_with_missing_final_nlcCsxtd}t}|j||d}d|_|||dtd}t}||_||_|||ddS)Nr.r/Fz5(Cmd) test (Cmd) test2 (Cmd) *** Unknown syntax: EOF zprint z,(Cmd) (Cmd) (Cmd) *** Unknown syntax: EOF ) r1r2r-r3r4r5r6r0r'r7rrr test_input_reset_at_EOFs     z*TestAlternateInput.test_input_reset_at_EOFN) r r!r"r:Cmdr,r-r;r<rrrr r#s  r#cCs&ddlm}t||ttdS)Nr)test_cmd)testr>rZ run_doctestZ run_unittestr#)verboser>rrr test_mains  rAcCsPtd}|jtjtjgddd}|d|}td|j dd|ddS) Ntracerr)Z ignoredirsrBcountz4import importlib; importlib.reload(cmd); test_main()zWriting coverage results...T)Z show_missingZsummarycoverdir) r import_moduleZTracesys base_prefixbase_exec_prefixrunresultsrZ write_results)rDrBZtracerrrrr test_coverages  rL__main__z-cz/tmp/cmd.coverz-i)N)r:rFZunittestr1r?rr=rZTestCaser#rArLr argvr4rrrr s 3