python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_optparse.cpython-311.opt-1.pyc

eddlZddlZddlZddlZddlZddlmZddlmZddl	m
Z
ddlZddlmZm
Z
mZmZmZmZmZmZmZmZmZddlmZddlmZGdd	eZGd
deZGdd
ejZGddeZGddeZGddeZ GddeZ!dddddZ"dZ#Gdde
Z$GddeZ%Gd d!eZ&Gd"d#eZ'Gd$d%eZ(Gd&d'eZ)Gd(d)eZ*Gd*d+eZ+Gd,d-eZ,Gd.d/eZ-Gd0d1eZ.Gd2d3eZ/Gd4d5eZ0Gd6d7eZ1Gd8d9eZ2Gd:d;eZ3Gd<d=eZ4Gd>d?eZ5Gd@dAeZ6GdBdCeZ7GdDdEeZ8GdFdGeZ9GdHdIe9Z:GdJdKe9Z;GdLdMeZ<dNZ=dOZ>dPZ?dQZ@dRZAGdSdTeZBGdUdVeZCGdWdXeZDGdYdZejZEeFd[krejGdSdS)\N)StringIO)support)	os_helper)make_optionOptionTitledHelpFormatterOptionParserOptionGroupSUPPRESS_USAGEOptionErrorOptionConflictErrorBadOptionErrorOptionValueErrorValues)
_match_abbrev)
_parse_numc"eZdZ			ddZdZdS)InterceptedErrorNc0||_||_||_dSN)
error_messageexit_statusexit_message)selfrrrs    F/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_optparse.py__init__zInterceptedError.__init__s"+&(c"|jp|jpdS)Nzintercepted error)rrrs r__str__zInterceptedError.__str__%s!MT%6M:MMr)NNN)__name__
__module____qualname__rr rrrrsE#!"))))NNNNNrrceZdZddZdZdS)InterceptingOptionParserrNc$t||)N)rrr)rstatusmsgs   rexitzInterceptingOptionParser.exit)s6DDDDrc"t|)N)rr()rr*s  rerrorzInterceptingOptionParser.error,sS1111rrN)r!r"r#r+r-r$rrr&r&(s;EEEE22222rr&c8eZdZdZdZdZ		d	dZdZdZdS)
BaseTestc|j|\}}t|}|||dt	z|||dt	z||fS)aAssert the options are what we expected when parsing arguments.

        Otherwise, fail with a nicely formatted message.

        Keyword arguments:
        args -- A list of arguments to parse with OptionParser.
        expected_opts -- The options expected.
        expected_positional_args -- The positional arguments expected.

        Returns the options and positional args for further testing.
        zJ
Options are %(optdict)s.
Should be %(expected_opts)s.
Args were %(args)s.zj
Positional arguments are %(positional_args)s.
Should be %(expected_positional_args)s.
Args were %(args)s.)parser
parse_argsvarsassertEquallocals)rargs
expected_optsexpected_positional_argsoptionspositional_argsoptdicts       r
assertParseOKzBaseTest.assertParseOK1s&*[%;%;D%A%A"/w--- "	#	#	#	
*B #	$	$	$))rc
|d}|i}	||i||dtzdS#|$r}t|}t|tjr6|||d|jd|dn|	||d|d|d|cYd}~Sd}~wwxYw)	a-
        Assert that the expected exception is raised when calling a
        function, and that the right error message is included with
        that exception.

        Arguments:
          func -- the function to call
          args -- positional arguments to `func`
          kwargs -- keyword arguments to `func`
          expected_exception -- exception that should be raised
          expected_message -- expected exception message (or pattern
            if a compiled regex object)

        Returns the exception raised for further testing.
        Nr$znexpected exception %(expected_exception)s not raised
called %(func)r
with args %(args)r
and kwargs %(kwargs)r
z%expected exception message pattern:
/z/
actual exception message:
'''z'''
zexpected exception message:
'''z!'''
actual exception message:
''')
failr6str
isinstancerePattern
assertTruesearchpatternr5)rfuncr7kwargsexpected_exceptionexpected_messageerractual_messages        rassertRaiseszBaseTest.assertRaisesOs9*<D>F	D$!&!!!.
II
ii	




-"			 XXN*BJ77
* 0 7 7 G G G12222  !1!1")***JJJJJJ)	s8CA>C;CCc	|j||ddS#t$r&}||j|Yd}~dSd}~wwxYw)z
        Assert the parser fails with the expected message.  Caller
        must ensure that self.parser is an InterceptingOptionParser.
        zexpected parse failureN)r2r3assertFalserr5r)rcmdline_argsexpected_outputrKs    rassertParseFailzBaseTest.assertParseFails
	7K""<000
566666 	A	A	AS.@@@@@@@@@	As3
A#AA#rNctj}		tt_|j|tj}|t_n/#tj}|t_wxYw	|ddS#t$r}|t|tdt|z||kr!|d|zdz|zdz|
|j||
|j|Yd}~dSd}~wwxYw)z7Assert the parser prints the expected output on stdout.zexpected parser.exit()z0expected output to be an ordinary string, not %rzexpected: 
'''
z'''
but got 
'''
z'''N)sysstdoutrr2r3getvaluerOrrDrAr@typer?r5rr)rrPrQexpected_statusexpected_errorsave_stdoutoutputrKs        rassertOutputzBaseTest.assertOutputsyj	7
)%ZZ
&&|444,,..(

,,..(
((((

566666 
	?
	?
	?OO63''Bv,,
 
 
 
((		-?0139:<ABCCCS_o>>>S-~>>>>>>>>>
	?s*2A,+B3,,BB33
E=BEEcB|||dt|dS)z4Assert that TypeError is raised when executing func.N)rM	TypeError)rrGrJr7s    rassertTypeErrorzBaseTest.assertTypeErrors%$dI7GHHHHHrc||}||kr!|d|zdz|zdzdS)Nzhelp text failure; expected:
"z	"; got:
"z"
)format_helpfailureException)rr2
expected_helpactual_helps    r
assertHelpzBaseTest.assertHelpsa((**-''''1 ,-#$%%
%('rr.)	r!r"r#r=rMrRr\r_rer$rrr0r00s***<666v
7
7
7&'$(	7777:III%%%%%rr0ceZdZdZgifdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdS)TestOptionChecksc:tt|_dSNusager	rr2rs rsetUpzTestOptionChecks.setUp"888rcL|t||t|dSr)rMrr)rrJr7rHs    rassertOptionErrorz"TestOptionChecks.assertOptionErrors0+tV%'7	9	9	9	9	9rc<|tddS)Nz+at least one option string must be supplied)r_rrs rtest_opt_string_emptyz&TestOptionChecks.test_opt_string_emptys.[J	L	L	L	L	Lrc4|ddgdS)Nz?invalid option string 'b': must be at least two characters longbrprs rtest_opt_string_too_shortz*TestOptionChecks.test_opt_string_too_shorts,M
E					rc4|ddgdS)NzOinvalid short option string '--': must be of the form -x, (x any non-dash char)--rurs rtest_opt_string_short_invalidz.TestOptionChecks.test_opt_string_short_invalids.
4
F					rc4|ddgdS)NzJinvalid long option string '---': must start with --, followed by non-dashz---rurs rtest_opt_string_long_invalidz-TestOptionChecks.test_opt_string_long_invalids.
7
G					rc<|ddgddddS)Nz.option -b: invalid keyword arguments: bar, foo-bfoobarrurs rtest_attr_invalidz"TestOptionChecks.test_attr_invalids6<
FD..	0	0	0	0	0rc:|ddgddidS)Nz option -b: invalid action: 'foo'r}actionrrurs rtest_action_invalidz$TestOptionChecks.test_action_invalids3.
FXu%	'	'	'	'	'rcx|ddgddi|ddgdtidS)Nz%option -b: invalid option type: 'foo'r}rWrz'option -b: invalid option type: 'tuple')rptuplers rtest_type_invalidz"TestOptionChecks.test_type_invalidsZ3
FVUO	%	%	%	
5
FVUO	%	%	%	%	%rc<|ddgddddS)Nz4option -b: must not supply a type for action 'count'r}countint)rrWrurs rtest_no_type_for_actionz(TestOptionChecks.test_no_type_for_actions6B
Fw66	8	8	8	8	8rc<|dddgddidS)Nz@option -b/--bad: must supply a list of choices for type 'choice'r}--badrWchoicerurs rtest_no_choices_listz%TestOptionChecks.test_no_choices_lists7
(
7Ofh/	1	1	1	1	1rcltdj}|d|zddgddddS)NzBoption -b/--bad: choices must be a list of strings ('%s' supplied)r}rrzbad choicesrWchoices)rWr!rp)rtypenames  rtest_bad_choices_listz&TestOptionChecks.test_bad_choices_listsQ88$
&(0
1
7O77		9	9	9	9	9rc<|ddgddddS)Nz1option -b: must not supply choices for type 'int'r}rbadrrurs rtest_no_choices_for_typez)TestOptionChecks.test_no_choices_for_types6?
FUe44	6	6	6	6	6rc<|ddgddddS)Nz:option -b: 'const' must not be supplied for action 'store'r}store)rconstrurs rtest_no_const_for_actionz)TestOptionChecks.test_no_const_for_action6H
Fw33	5	5	5	5	5rc<|ddgddddS)Nz:option -b: 'nargs' must not be supplied for action 'count'r}r)rnargsrurs rtest_no_nargs_for_actionz)TestOptionChecks.test_no_nargs_for_actionrrc<|ddgddddS)Nz'option -b: callback not callable: 'foo'r}callbackrrrrurs rtest_callback_not_callablez+TestOptionChecks.test_callback_not_callables;5
Fz!&((	)	)	)	)	)rcdSrr$rs rdummyzTestOptionChecks.dummyrcH|ddgd|jdddS)NzAoption -b: callback_args, if supplied, must be a tuple: not 'foo'r}rr)rr
callback_argsrprrs rtest_callback_args_no_tuplez,TestOptionChecks.test_callback_args_no_tuplesB
)
Fz!%&+--	.	.	.	.	.rcH|ddgd|jdddS)NzBoption -b: callback_kwargs, if supplied, must be a dict: not 'foo'r}rr)rrcallback_kwargsrrs rtest_callback_kwargs_no_dictz-TestOptionChecks.test_callback_kwargs_no_dict'sB
(
Fz!%(-//	0	0	0	0	0rc<|ddgddddS)Nz<option -b: callback supplied ('foo') for non-callback optionr}rrrrurs rtest_no_callback_for_actionz,TestOptionChecks.test_no_callback_for_action/s;J
Fw!&((	)	)	)	)	)rc<|ddgddddS)Nz9option -b: callback_args supplied for non-callback optionr}rr)rrrurs r test_no_callback_args_for_actionz1TestOptionChecks.test_no_callback_args_for_action5s;G
Fw&+--	.	.	.	.	.rc<|ddgddddS)Nz;option -b: callback_kwargs supplied for non-callback optionr}rr)rrrurs r"test_no_callback_kwargs_for_actionz3TestOptionChecks.test_no_callback_kwargs_for_action;s;I
Fw(-//	0	0	0	0	0rc|ddg|dddg|dddgdS)NzMinvalid long option string '-debug': must start with --, followed by non-dashz-debugzXoption -d: invalid long option string '-debug': must start with --, followed by non-dash-dz--debugrurs rtest_no_single_dashz$TestOptionChecks.test_no_single_dashAs|
7
J			
	

(
8			
	

7
y!	#	#	#	#	#rN)r!r"r#rmrprrrvryr{rrrrrrrrrrrrrrrrrr$rrrgrgs|9998:"9999LLL
000
'''
%%%888
111999666
555
555
)))


...000)))...000#####rrgceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
Ze
jdd
dZdS)TestOptionParserct|_|jdddddd|jdd	d
dddS)N-v	--verbose-n--noisy
store_trueverboserdest-q--quiet--silentstore_false)r	r2
add_optionrs rrmzTestOptionParser.setUpRsr"nnt[$	!-I		?	?	?tY
!.Y		@	@	@	@	@rcH||jjdddS)Nznot an Option instance: Noner_r2rrs rtest_add_option_no_Optionz*TestOptionParser.test_add_option_no_OptionYs5T[3;T	C	C	C	C	CrcJ||jjddddSNzinvalid argumentsrrs r!test_add_option_invalid_argumentsz2TestOptionParser.test_add_option_invalid_arguments]s2T[30$	>	>	>	>	>rcP|jd}||t||jddg||jddg||jd||jddS)Nrrrrrr)	r2
get_optionassertIsInstancerr5_short_opts
_long_optsrr)ropt1s  rtest_get_optionz TestOptionParser.test_get_optionas{%%d++dF+++)D$<888;	*BCCCl333I.....rc|jd}|jd}|jd}|jd}|||cxuo|cxuo|uncdS)Nrrrr)r2rrD)rropt2opt3opt4s     rtest_get_option_equalsz'TestOptionParser.test_get_option_equalsis{%%d++{%%k22{%%d++{%%i0044444444444455555rc||jd||jddS)Nrr)rDr2
has_optionrs rtest_has_optionz TestOptionParser.test_has_optionpsL..t44555..{;;<<<<<rc||jddu||jddu||jddu||jddu||jd||jd||jd||jd||jd||jddS)Nrrrrrr)rDr2rrOrrs rassertTrueremovedz"TestOptionParser.assertTrueremovedtsx..t44<===..{;;tCDDD..t44<===..y99TABBB//55666//<<===//55666//	::;;;..t44555..z::;;;;;rcb|jd|dS)Nrr2
remove_optionrrs rtest_remove_short_optz&TestOptionParser.test_remove_short_opts0!!$'''     rcb|jd|dS)Nrrrs rtest_remove_long_optz%TestOptionParser.test_remove_long_opts0!!+...     rcV||jjddtddS)Nrzno such option 'foo')rMr2r
ValueErrorrs rtest_remove_nonexistentz(TestOptionParser.test_remove_nonexistents5$+3Xt$&<	>	>	>	>	>rzRelies on sys.getrefcountT)cpythoncdg}tj|}t}|dd||_|~||tj|dS)N*-az	--aaarggh)rTgetrefcountr	r	big_thingdestroyr5)rrrefcountr2s    rtest_refleakzTestOptionParser.test_refleakszD	?9--$,,,$3?9#=#=>>>>>rN)r!r"r#rmrrrrrrrrrrimpl_detailrr$rrrrQs@@@CCC>>>///666===<<<!!!!!!>>>W4dCCC??DC???rrceZdZdZdZdS)TestOptionValuescdSrr$rs rrmzTestOptionValues.setUprrc@t}|t|i||i||ddi||dddd}t|}|t|||||||ddi||i||d||gdS)Nrrrr)rbaz)defaults)rr5r4assertNotEqual)rvaluesdicts   rtest_basicszTestOptionValues.test_basicssfr***$$$FUEN333FB'''R((&&&ft,,,&&&FUEN333FB'''FB'''FB'''''rN)r!r"r#rmrr$rrrrs2


(((((rrc eZdZdZdZdZdS)TestTypeAliasesc,t|_dSr)r	r2rs rrmzTestTypeAliases.setUps"nnrc|jdd||jdjddS)N-sr@rWstring)r2rr5rrWrs rtest_str_aliases_stringz'TestTypeAliases.test_str_aliases_stringsLt%000//55:HEEEEErcV|jdt||jdjd|jdt||jdjddS)Nrrr-xr)r2rr@r5rrWrrs rtest_type_objectz TestTypeAliases.test_type_objectst#...//55:HEEEt#...//55:EBBBBBrN)r!r"r#rmrr	r$rrrrsI%%%FFFCCCCCrrr<iiQ)smhdc	|drt|St|ddt|dzS#ttf$rtd|d|wxYw)Nzoption z: invalid duration: )isdigitr_time_unitsr
IndexErrorroptionoptvalues   r_check_durationrs>9	<u::uSbSz??[r%;;;
#>>>14ee<>>	>>s(A*A'A=cVeZdZejdzZejejZeed<dS)DurationOption)durationrN)r!r"r#rTYPEScopyTYPE_CHECKERrr$rrrrs:L=(E49V011L.Lrrc,eZdZdZdZdZdZdZdS)TestDefaultValuesct|_|jddd|jddd|jd	d
d|jd
d
|jdd|jd|jddddddddd|_dS)NrrTdefaultrrr)rrr%rWr#z-mrrr-tz-u)rnrrtu)r	r2rexpectedrs rrmzTestDefaultValues.setUps"nnt[$???tYY???t%<<<t%000tU333t$$$tT222%)!#$##&&


rcj||j|jdSr)r5r2get_default_valuesr*rs rtest_basic_defaultsz%TestDefaultValues.test_basic_defaultss.77994=IIIIIrc|jdd|jddd||j|jdS)Nri)r'r)r2set_defaultsr*updater5r,rs rtest_mixed_defaults_postz*TestDefaultValues.test_mixed_defaults_postsg  2 ...
2D1122277994=IIIIIrcP|jdd|jdd|jd|jddd||j|j|jd|jdd|jddi||j|jdS)	Nbarfblah)xyrfrobr"z-yr6)r2r/rr*r0r5r,rrs rtest_mixed_defaults_prez)TestDefaultValues.test_mixed_defaults_pres	  6V 444tV444t$$$
67788877994=III!!$'''tT222
c4[)))77994=IIIIIrcFt|j_|jddd|jddd|jd|jdd	d
d||j|j|j	d|jdddd||j|jdS)
Nrri,r%z-e6m42)r'ihr)rer'F)
rr2option_classrr/r*r0r5r,set_process_default_valuesrs rtest_process_defaultz&TestDefaultValues.test_process_defaults#1 t*cBBBt*dCCC  4 (((
3Sr::;;;77994=III..u555
3T==>>>77994=IIIIIrN)r!r"r#rmr-r1r8r?r$rrr r sm&&& JJJJJJ
JJJ
J
J
J
J
Jrr c*eZdZdZdZdZdZdZdS)TestProgNamez]
    Test that %prog expands to the right thing in usage, version,
    and help strings.
    cV|||dSr)r5	get_usagerr2expected_usages   rassertUsagezTestProgName.assertUsages*))++^<<<<<rcV|||dSr)r5get_version)rr2expected_versions   r
assertVersionzTestProgName.assertVersions+++--/?@@@@@rctjdd}	tjdddtjd<tdd}d}|||||d	|||d
zdz|tjdd<dS#|tjdd<wxYw)Nrrzbaz.pyrz	%prog ...z	%prog 1.2)versionzUsage: baz.py ...
z
baz.py 1.2
zlOptions:
  --version   show program's version number and exit
  -h, --help  show this help message and exit
)	rTargvospathjoinr	rFrJre)r	save_argvr2rEs    rtest_default_prognamez"TestProgName.test_default_prognamesHQQQK		$',,ueX>>CHQK!+{CCCF2NV^444v|444OOF*T1NN
O
O
O$CHQQQKKK)CHQQQK####sB	B22Cctddd}|d|dd}|||||d|||d	zdS)
Nthingy	%prog 0.1z
%prog arg arg)progrLrk-h	--versionzUsage: thingy arg arg
z
thingy 0.1rM)r	rrFrJrerDs   rtest_custom_prognamez!TestProgName.test_custom_progname's8&1$3555	T"""[)))20006<000 566666rN)r!r"r#__doc__rFrJrSrZr$rrrArA	s]
===AAA$$$"	7	7	7	7	7rrAcJeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdS)TestExpandDefaultsctd|_d|_d|_|jdz|_|jdz|_dS)Ntest)rWzXUsage: test [options]

Options:
  -h, --help            show this help message and exit
z"read from FILE [default: %default]z:  -f FILE, --file=FILE  read from FILE [default: foo.txt]
z7  -f FILE, --file=FILE  read from FILE [default: none]
)r	r2help_prefix	file_helpexpected_help_fileexpected_help_noners rrmzTestExpandDefaults.setUp4sU"///>"&"2I#J"&"2F#Grc|jddd|j||j|jdS)N-f--filefoo.txtr#help)r2rrarerbrs rtest_option_defaultz&TestExpandDefaults.test_option_defaultBsNtX'0$(N		4	4	4	
T%<=====rc|jdd|j|jdd||j|jdS)Nrerfrifilerg)r2rraset_defaultrerbrs rtest_parser_default_1z(TestExpandDefaults.test_parser_default_1HsatX$(N		4	4	4	222T%<=====rc|jdd|j|jd||j|jdS)Nrerfrlrgrm)r2rrar/rerbrs rtest_parser_default_2z(TestExpandDefaults.test_parser_default_2NsbtX$(N		4	4	4  i 000T%<=====rc|jdd|j||j|jdS)Nrerfrlr2rrarercrs rtest_no_defaultz"TestExpandDefaults.test_no_defaultTsItX$(N		4	4	4T%<=====rc|jddd|j||j|jdS)Nrerfrhrtrs rtest_default_none_1z&TestExpandDefaults.test_default_none_1YsNtX'+$(N		4	4	4	
T%<=====rc|jdd|j|jd||j|jdS)Nrerfrlrq)r2rrar/rercrs rtest_default_none_2z&TestExpandDefaults.test_default_none_2_sbtX$(N		4	4	4  d +++T%<=====rc|jddd|jd|jdz}||j|dS)N-pz--probz1blow up with probability PROB [default: %default]rlgQ?)probzF  -p PROB, --prob=PROB  blow up with probability PROB [default: 0.43]
)r2rr/r`rerrcs  rtest_float_defaultz%TestExpandDefaults.test_float_defaultest(D		F	F	F	
  d +++(UV
]33333rc|jddddd|jj_||j|jdS)Nrerfrgz#read from FILE [default: *DEFAULT*]rhz	*DEFAULT*)r2r	formatterdefault_tagrerbrs rtest_alt_expandz"TestExpandDefaults.test_alt_expandns\tX'0$I		K	K	K-8)T%<=====rc|jddddd|jj_|jdz}||j|dS)Nrerfrgzread from %default filerhz0  -f FILE, --file=FILE  read from %default file
)r2rrrr`rer}s  rtest_no_expandz!TestExpandDefaults.test_no_expandusgtX'0$=		?	?	?-1)(?@
]33333rN)
r!r"r#rmrjrorrrurwryr~rrr$rrr]r]3sGGG>>>>>>>>>>>>
>>>>>>444>>>44444rr]ceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdS)TestStandardctddtddddtd	d
g}tt||_dS)
Nrrrr}--boorboorWr--fooappendrrkoption_listrr&rr2rr:s  rrmzTestStandard.setUpsat(333tW5uEEEwx888:/^;BDDDrc4|dgddS)Nrz-a option requires 1 argumentrRrs rtest_required_valuez TestStandard.test_required_values!dV%DEEEEErc6|ddgddS)Nr}5xz&option -b: invalid integer value: '5x'rrs rtest_invalid_integerz!TestStandard.test_invalid_integers2dD\E	G	G	G	G	Grc4|dgddS)Nz--boo13zno such option: --boo13rrs rtest_no_such_optionz TestStandard.test_no_such_options!i[*CDDDDDrc4|dgddS)Nz--boo=x5z)option --boo: invalid integer value: 'x5'rrs rtest_long_invalid_integerz&TestStandard.test_long_invalid_integers0j\H	J	J	J	J	Jrc<|gddddgdS)Narrr=rs r
test_emptyzTestStandard.test_emptys*2T$tDDbIIIIIrcD|gdddddgdgdS)N)rrz
--foo=blahz--foo=rr4rrrs r"test_shortopt_empty_longopt_appendz/TestStandard.test_shortopt_empty_longopt_appendsA===!#D&"FF					rcD|gdddgddgdS)N)rrrrz--foo=x)rrr5rrrs rtest_long_option_appendz$TestStandard.test_long_option_appendsKCCC!%#'#3#3#355						rc>|dgddddgdS)Nz-abcbcrrrs rtest_option_argument_joinedz(TestStandard.test_option_argument_joineds8F8!%d4@@					rc@|ddgddddgdS)Nr34rrrs rtest_option_argument_splitz'TestStandard.test_option_argument_splits:D$<!%d4@@					rc>|dgddddgdS)Nz-b34"rrrs r#test_option_argument_joined_integerz0TestStandard.test_option_argument_joined_integers8F8!%b>>					rc@|ddgddddgdS)Nr}-5rrrs r+test_option_argument_split_negative_integerz8TestStandard.test_option_argument_split_negative_integers:D$<!%b>>					rc>|dgddddgdS)Nz--boo=13
rrrs r test_long_option_argument_joinedz-TestStandard.test_long_option_argument_joineds8J<!%b>>					rc@|ddgddddgdS)Nr111orrrs rtest_long_option_argument_splitz,TestStandard.test_long_option_argument_splits;GU+!%c$??					rcB|ddgdddgdgdS)N	--foo=bar-axyzxyzrrrrs rtest_long_option_short_optionz*TestStandard.test_long_option_short_options=K1!&tUGDD					rcB|ddgdddgdgdS)N--f=barrrrrrrs rtest_abbrev_long_optionz$TestStandard.test_abbrev_long_options=Iw/!&tUGDD					rc|jg\}}|j}|t	|t	|dSr)r2r3r,r5r4)rr:r7rs    r
test_defaultszTestStandard.test_defaultssV+0044$;1133hg77777rcp|jdddd|dgddS)N--fozrrrrrWrrz%ambiguous option: --f (--foo, --foz?)r2rrRrs rtest_ambiguous_optionz"TestStandard.test_ambiguous_optionsXww$,5		:	:	:i[D	F	F	F	F	FrcB|gddddgdgdS)N)rrrrrrrrrs r test_short_and_long_option_splitz-TestStandard.test_short_and_long_option_splits?888!&tUGDD					rcD|gdddddgdgdS)N)rr}123rr{rrrrrs r*test_short_option_split_long_option_appendz7TestStandard.test_short_option_split_long_option_appendsAEEE!%c5%.II					rcB|gddddddgdS)N)rrrrrrrrs r*test_short_option_split_one_positional_argz7TestStandard.test_short_option_split_one_positional_args?///!&tDAA!7	$	$	$	$	$rc|gdddddddg|gddddgdgdS)N)rrxrrrxrrr)rrxrrrrs r$test_short_option_consumes_separatorz1TestStandard.test_short_option_consumes_separatorsv555!%d4@@!5>	+	+	+	
777!%dE7CC					rcF|gdddddddgfdS)N)-abrxrrrtrrrrrs r&test_short_option_joined_and_separatorz3TestStandard.test_short_option_joined_and_separatorsG888!$T$??#U+	-	-	.	.	.	.rcD|gddddgddgdS)N)r-rrrtrrrrrs r"test_hyphen_becomes_positional_argz/TestStandard.test_hyphen_becomes_positional_argsA777!$T5'BB5	"	"	"	"	"rcD|gdddddgdgdS)N)-b3r}5rrrrrrrrs rtest_no_append_versus_appendz)TestStandard.test_no_append_versus_appendsAJJJ!%aGG					rc@|ddgddddgdS)Nrrrrrs r&test_option_consumes_optionlike_stringz3TestStandard.test_option_consumes_optionlike_strings:D%=!&tDAA					rcl|jdd|dgddS)Nr&rrz-testzno such option: -errs r#test_combined_single_invalid_optionz0TestStandard.test_combined_single_invalid_optionsFtL999gY1	3	3	3	3	3rN)r!r"r#rmrrrrrrrrrrrrrrrrrrrrrrrrrrr$rrrrsDDDFFFGGGEEEJJJJJJ








888
FFF

$$$
...
"""


33333rrc,eZdZdZdZdZdZdZdS)TestBoolc~tdddddtddd	d
g}t||_dS)Nrrrrrrrr#rrrrr)rr	r2rs  rrmzTestBool.setUps`t*&2$-')	+++
t(&3$-///0#999rc8|gddigdS)Nrrrrs rtest_bool_defaultzTestBool.test_bool_defaults02%r?					rcx|dgddig\}}||jdudS)NrrrFr=rDrrr:r7s   rtest_bool_falsezTestBool.test_bool_falsesJ,,dV.7^-/11$	
5011111rcx|dgddig\}}||jdudS)NrrrTrrs   rtest_bool_truezTestBool.test_bool_true#sJ,,dV.7^-/11$	
4/00000rc<|gdddigdS)N)z-qvqrrrrrrs rtest_bool_flicker_on_and_offz%TestBool.test_bool_flicker_on_and_off)s7///%q>					rN)r!r"r#rmrrrrr$rrrrs_
:
:
:
222111rrc&eZdZdZdZdZdZdS)
TestChoicec|tt|_|jddddgddS)Nrj-crr)onetwothree)rrWrrr&rr2rrs rrmzTestChoice.setUp/sT.^DDDtG($,6M6M6M		O	O	O	O	Orc>|gdddidgdS)N)rrrrrrrrs rtest_valid_choicezTestChoice.test_valid_choice4s:///$e,!7	$	$	$	$	$rc6|gdddS)N)rfourabczEoption -c: invalid choice: 'four' (choose from 'one', 'two', 'three')rrs rtest_invalid_choicezTestChoice.test_invalid_choice9s8222C	D	D	D	D	Drc|jddgd|jd}||jd||jddS)Nrz	--default)rfivesix)rrr)r2rrr5rWrrrs  rtest_add_choice_optionz!TestChoice.test_add_choice_option>s|t['>'>'>		@	@	@k$$T**8,,,W-----rN)r!r"r#rmrrrr$rrrr.sVOOO
$$$
DDD
.....rrcbeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdS)	TestCountctt|_tddd|_|j|j|jddd|jd	d
ddd
dS)Nrjrrrrrrrrrstore_constrrrr)r&rr2rv_optrrs rrmzTestCount.setUpFs.^DDD gIFFF
tz***{YGGGtY&3)1		N	N	N	N	Nrc8|gddigdS)Nrrrs rrzTestCount.test_emptyNs%2	40"55555rc:|dgddigdS)Nrrrrrs rtest_count_onezTestCount.test_count_oneQs&D6Iq>266666rc:|dgddigdS)N-vvvrrrs rtest_count_threezTestCount.test_count_threeTs&F8i^R88888rc<|gdddigdS)N)rrrrrrrs rtest_count_three_apartz TestCount.test_count_three_apartWs+---	1~rBBBBBrc<|ddgddigdS)Nr
--verbose=2rrrrs rtest_count_override_amountz$TestCount.test_count_override_amountZs)FM2YNBGGGGGrc<|gdddigdS)N)r
rrrrrrs rtest_count_override_quietz#TestCount.test_count_override_quiet]s+8889a."MMMMMrc<|gdddigdS)Nr
rrrrrrrs rtest_count_overridingzTestCount.test_count_overriding`s6>>>%q>2	/	/	/	/	/rc>|gdddidgdS)Nr3rrrrrrs rtest_count_interspersed_argsz&TestCount.test_count_interspersed_argsds9111%q>5	"	"	"	"	"rcr|j|gdddiddgdS)Nrrrrr)r2disable_interspersed_argsr=rs rtest_count_no_interspersed_argsz)TestCount.test_count_no_interspersed_argsisO--///111%q>;	(	(	(	(	(rc6|ddgddS)Nz-q3rzno such option: -3rrs rtest_count_no_such_optionz#TestCount.test_count_no_such_optionos#eT],@AAAAArc6|ddgddS)Nz	--quiet=3rz$--quiet option does not take a valuerrs rtest_count_option_no_valuez$TestCount.test_count_option_no_valuers3k40C	E	E	E	E	Ercn|jdd|gddigdS)Nrrr2rnr=rs rtest_count_with_defaultz!TestCount.test_count_with_defaultvs<	1---2	!}b11111rcr|jdd|gdddigdS)Nrrrrr&rs rtest_count_overriding_defaultz'TestCount.test_count_overriding_defaultzsN	1--->>>%q>2	/	/	/	/	/rN)r!r"r#rmrrrrrrrrr r"r$r'r)r$rrrrEsNNN666777999CCCHHHNNN///"""
(((BBBEEE222/////rrc,eZdZdZdZdZdZdZdS)TestMultipleArgscztt|_|jdddddddS)	Nrjr{--pointrrfloatpointrrrWrrrs rrmzTestMultipleArgs.setUpsO.^DDDtY&-QW7		T	T	T	T	Trc@|gdddiddgdS)N)rr{12.5z-4.3rr/)g?@g333333rrrrs rtest_nargs_with_positional_argsz0TestMultipleArgs.test_nargs_with_positional_argss=CCC#%56!5>	+	+	+	+	+rc>|gdddidgdS)N)r--1r3z-0rr/)gr4grrrs rtest_nargs_long_optz$TestMultipleArgs.test_nargs_long_opts;@@@#%67!7	$	$	$	$	$rc6|gdddS)N)r{1.02x3.5z-option -p: invalid floating-point value: '2x'rrs rtest_nargs_invalid_float_valuez/TestMultipleArgs.test_nargs_invalid_float_values8777B	C	C	C	C	Crc6|gdddS)N)r-r:r<z#--point option requires 3 argumentsrrs rtest_nargs_required_valuesz+TestMultipleArgs.test_nargs_required_valuess5666B	D	D	D	D	DrN)r!r"r#rmr5r8r=r?r$rrr+r+sjTTT
+++
$$$
CCC
DDDDDrr+c,eZdZdZdZdZdZdZdS)TestMultipleArgsAppendctt|_|jdddddd|jd	d
ddd
d|jddddddS)Nrjr{r-rrr.r/r0rerrrrr-z--zeroappend_constrrrrrs rrmzTestMultipleArgsAppend.setUps.^DDDtYwa$+'		;	;	;tWXQ$)		7	7	7tXn$)		9	9	9	9	9rcD|gddddgddgdS)N)re4-3r4rr2666))rir/rr4rrs rtest_nargs_appendz(TestMultipleArgsAppend.test_nargs_appendsBIII%)7H2EFF"8	%	%	%	%	%rc4|dgddS)Nz-f4,3z-f option requires 2 argumentsrrs r!test_nargs_append_required_valuesz8TestMultipleArgsAppend.test_nargs_append_required_valuess+gY=	?	?	?	?	?rc@|ddgddgdgdS)Nz--foo=3rHrrKrMrrs rtest_nargs_append_simplez/TestMultipleArgsAppend.test_nargs_append_simples;Is+%)&::					rcB|gddgddgdS)N)rDrrrHrC)rFrRrFrMrrs rtest_nargs_append_constz.TestMultipleArgsAppend.test_nargs_append_constsB>>>%)1I1I1IJJ					rN)r!r"r#rmrNrPrSrUr$rrrArAs_999%%%
???
rrAceZdZdZdZdS)TestVersioncRttd|_tjdd}	t
jt
jddtjd<|	dgd|tjdd<dS#|tjdd<wxYw)NrV)rkrLrrrrYzbar 0.1
)
r&rr2rTrNrOrPrQcurdirr\)rrRs  rtest_versionzTestVersion.test_versions.^7BDDDHQQQK		$',,ry%??CHQK{m[999#CHQQQKKK)CHQQQK####sABB&chtt|_|dgddS)NrjrYzno such option: --version)r&rr2rRrs rtest_no_versionzTestVersion.test_no_versions=.^DDDk]8	:	:	:	:	:rN)r!r"r#rZr\r$rrrWrWs2$$$:::::rrWc$eZdZdZdZdZdZdS)TestConflictingDefaultsz4Conflicting default values: the last one should win.cTttddddg|_dS)Nrrrrrr)r	rr2rs rrmzTestConflictingDefaults.setUps9"\	1MMM0OPPPrct|jdddd|gddigdS)Nrrrrrr2rr=rs rtest_conflict_defaultz-TestConflictingDefaults.test_conflict_defaultsLtM	'(		*	*	*2	1~r22222rct|jdddd|gddigdS)Nrrrrrars rtest_conflict_default_nonez2TestConflictingDefaults.test_conflict_default_nonesMtM	'+		-	-	-2	40"55555rN)r!r"r#r[rmrbrdr$rrr^r^sJ>>PPP333
66666rr^c2eZdZdZdZdZdZdZdZdS)TestOptionGroupc:tt|_dSrirlrs rrmzTestOptionGroup.setUprnrct|jd}|j||ddd|dgddigdS)NSpamz--spamrzspam spam spam spamrrispamr)r
r2add_option_grouprr=rgroups  r!test_option_group_create_instancez1TestOptionGroup.test_option_group_create_instancesqDK00$$U+++
,3		5	5	5H:{B77777rcH||jjdddS)Nz!not an OptionGroup instance: Noner_r2rlrs rtest_add_group_no_groupz'TestOptionGroup.test_add_group_no_groups5T[9@$	H	H	H	H	HrcJ||jjddddSrrqrs r test_add_group_invalid_argumentsz0TestOptionGroup.test_add_group_invalid_argumentss2T[90$	>	>	>	>	>rct|jd}t|_||jj|fdt
ddS)Nriz"invalid OptionGroup (wrong parser))r
r2r	rMrlrrms  rtest_add_group_wrong_parserz+TestOptionGroup.test_add_group_wrong_parsersXDK00#~~$+6$$&J	L	L	L	L	Lrc|jdd}|d|dd||jd|dS)NzGroup 2zSome more options)descriptionBaconz--baconrr)r2rl	set_titlerrDget_option_grouprms  rtest_group_manipulatez%TestOptionGroup.test_group_manipulatesz,,Y9L-NN
   
///44Y??GGGGGrN)	r!r"r#rmrorrrtrvr|r$rrrfrfsy999888HHH>>>LLLHHHHHrrfcHeZdZdZdZGddeZdZdZdZ	dS)	TestExtendAddTypesctt|j|_|jdddd|jdddddS)	N)rkr=rrrrrerfrm)r&rMyOptionr2rrs rrmzTestExtendAddTypes.setUpsf.^<@MKKKtTsCCCtXFHHHHHrc*tjtjr tjtjdStjtjr tjtjdSdSr)rOrPisdirrTESTFNrmdirisfileunlinkrs rtearDownzTestExtendAddTypes.tearDownsp
7==)**	(HY%&&&&&
W^^I,
-
-	(Ii&'''''	(	(rc\eZdZdZejdzZejejZeed<dS)TestExtendAddTypes.MyOptionctj|std|ztj|std|z|S)N%s: file does not exist%s: not a regular file)rOrPexistsrrrs   r
check_filez&TestExtendAddTypes.MyOption.check_files]7>>%((
I&'@5'HIIIW^^E**
I&'?%'GHHHLrrqrmN)r!r"r#rrrrrr$rrrrsK			y( ty!455)Vrrctjtj|dtjdgtjddgdS)Nrf-afoor)rmr)rcreate_empty_filerr=rs rtest_filetype_okz#TestExtendAddTypes.test_filetype_oksU#I$4555Hi&6@$-$45AA					rcf|dtjdgdtjzdS)Nrfrr)rRrrrs rtest_filetype_noexistz(TestExtendAddTypes.test_filetype_noexists>h	(8'B6&-.	/	/	/	/	/rctjtj|dtjdgdtjzdS)Nrfrr)rOmkdirrrrRrs rtest_filetype_notfilez(TestExtendAddTypes.test_filetype_notfilesQ
!"""h	(8'B5&-.	/	/	/	/	/rN)
r!r"r#rmrrrrrrr$rrr~r~sIII(((
*
*
*
*
*F
*
*
*///
/////rr~c<eZdZdZGddeZdZdZdS)TestExtendAddActionscf|dddddg}t||_dS)Nr--appleextendrapplerr)rr	r2rs  rrmzTestExtendAddActions.setUp%s@==y&.W!>>?"w777rcPeZdZejdzZejdzZejdzZdZdS)TestExtendAddActions.MyOption)rc	|dkr@|d}||g|dStj|||||||dS)Nr,)splitensure_valuerrtake_action)rrrrrrr2lvalues        rrz)TestExtendAddActions.MyOption.take_action/sv!!S))##D"--44V<<<<<"4sFE#)+++++rN)r!r"r#rACTIONS
STORE_ACTIONS
TYPED_ACTIONSrr$rrrr*sI.;.,{:
,{:
	+	+	+	+	+rrc@|ddgdgdigdS)Nz	-afoo,barz--apple=blahr)rrr4rrs rtest_extend_add_actionz+TestExtendAddActions.test_extend_add_action7s=K8#%;%;%;<					rc@|gddgdigdS)N)rrz-abarz--apple=x,yr)rrr5r6rrs rtest_extend_add_action_normalz2TestExtendAddActions.test_extend_add_action_normal<s?@@@#%=%=%=>					rN)r!r"r#rmrrrrr$rrrr$sk888
+++++F+++
rrc&eZdZdZdZdZdZdS)TestCallbackc	tddd|jtddd|jddg}t|	|_dS)
Nrrrrerfrfilename)rrrWrr)rprocess_optr	r2rs  rrmzTestCallback.setUpDsit#&0(,(8:::t'&0(,(8$,$.000		1#w777rc|dkr||jdg||jg|||ju||du|t|jddid|j_dS|dkr||jdg||jdg|||ju||d|t|jdddt|j|j	|dS|
d|zdS)	Nrrrrfrerrr5z!Unknown option %r in process_opt.)r5rrrDr2r4rr5setattrrr?rrrrparser_s     rrzTestCallback.process_optQss$;;V/$888V.333OOGt{2333OOETM***T'.11J3EFFF!GN
H__V/$888V.
;;;OOGt{2333UE***T'.1123N3NOOOGNFK77777II9C?@@@@@rc>|ddgdddgdS)Nrz
--file=foorrrrrs r
test_callbackzTestCallback.test_callbackes9D,/(-B77					rctt}|d|dddddd	d
}|||dS)NrjrXr&z--testrcdSrr$r$rr<lambda>z1TestCallback.test_callback_help.<locals>.<lambda>qs4rrr)rrrWriz%Options:
  -t TEST, --test=TEST  foo
)r	rrrre)rr2rcs   rtest_callback_helpzTestCallback.test_callback_helpjsvN333T"""$#/<h$		&	&	&9

.....rN)r!r"r#rmrrrr$rrrrCsS888AAA(
/////rrc eZdZdZdZdZdS)TestCallbackExtraArgsc
xtddd|jdtfddgg}t||_dS)	Nr{r-rrrpoints)rrrrWrr#r)r
process_tuplerr	r2rs  rrmzTestCallbackExtraArgs.setUpzsMtYz(,(:./XH$,b:::;#w777rc||d||tu|dkr||dn|dkr||dtt	||d}t
|j|j	|dS)Nrr{z1,2,3r-4,5,6r)
r5rDrrmaprgetattrrrr)rrrrrlenrWs       rrz#TestCallbackExtraArgs.process_tuplesa   $$$$;;UG,,,,
I

UG,,,c$C 0 01122,,33E:::::rc@|gddddgigdS)N)z-p1,2,3r-rrrrr)rKrrrs rtest_callback_extra_argsz.TestCallbackExtraArgs.test_callback_extra_argss=:::$w&89					rN)r!r"r#rmrrr$rrrrysA888
;
;
;rrc&eZdZdZdZdZdZdS)TestCallbackMeddleArgsclfdtdddD}t|_dS)NcZg|]'}tt|djd(S)rthingsrrr)rr@	process_n).0r5rs  r
<listcomp>z0TestCallbackMeddleArgs.setUp.<locals>.<listcomp>sL///s1vvj(,XGGG///rrir)ranger	r2rs` rrmzTestCallbackMeddleArgs.setUpsO////!"b"--///#w777rcnt|dd}|j}t||kr|d||fz|j|jg}|t|d||j	||d|=dS)Nrz$Expected %d arguments for %s option.r)
rrargsrr?rrrrrlargs)rrrrrrrrs        rrz TestCallbackMeddleArgs.process_nsCG
u::II<s|KLLL~**6;;;E%%.))***
U###!E'NNNrcD|gddddgiddgdS)N)r7rrIrrquxrr)rrrrrrrs rtest_callback_meddle_argsz0TestCallbackMeddleArgs.test_callback_meddle_argssBCCC$x1F&GHq6	#	#	#	#	#rc@|gdddgidgdS)N)z-2rrxr)rrxrrrs r#test_callback_meddle_args_separatorz:TestCallbackMeddleArgs.test_callback_meddle_args_separators<...$}o63	 	 	 	 	 rN)r!r"r#rmrrrr$rrrrsP888			###
     rrc eZdZdZdZdZdS)TestCallbackManyArgsc	tdddd|jdtdddd	|jd
g}t||_dS)Nrrrrr)rrrrWr}--bobrrr)rprocess_manyr	r2rs  rrmzTestCallbackManyArgs.setUpsltYz(,(9JJJtWZq(,(9GGGH#w777rc|dkr||ddS|dkr||ddS|dkr||ddS|dkr||ddSdS)	Nrr~r)dingdongr}rr)ifrrr5rs     rrz!TestCallbackManyArgs.process_manys$;;UN33333
I

U$455555
D[[UI.....
G^^UM22222^rc>|gddddgdS)N)rrrrrrr}r22rrz-666r;0)rbobrrs rtest_many_argsz#TestCallbackManyArgs.test_many_argssC!!!&*$77						rN)r!r"r#rmrrr$rrrrsA888333rrc eZdZdZdZdZdS)TestCallbackCheckAbbrevcpt|_|jdd|jdS)N	--foo-barrr)r	r2rcheck_abbrevrs rrmzTestCallbackCheckAbbrev.setUps@"nn{:(,(9		;	;	;	;	;rc2||ddS)Nrrrrrrr2s     rrz$TestCallbackCheckAbbrev.check_abbrevsk*****rc6|dgigdS)Nrrrs rtest_abbrev_callback_expansionz6TestCallbackCheckAbbrev.test_abbrev_callback_expansions"G9b"-----rN)r!r"r#rmrrr$rrrrsA;;;
+++.....rrc8eZdZdZdZdZdZdZdZdZ	dS)	TestCallbackVarArgsc	tddddtddd	td
dd|jd
g}tt||_dS)Nrrrr)rWrrr}rrtrr
--callbackrcrr)r
variable_argsr&rr2rs  rrmzTestCallbackVarArgs.setUpswt%qsCCCtLsCCCt\*(,(:FFFG/^;BDDDrcb||dug}|j}|rq|d}|dddkrt|dks-|dddkr t|dkr
|ddkrn|||d=|qt	|j|j|dS)Nrrrxrr)rDrrrrrr)rrrrr2rargs       rrz!TestCallbackVarArgs.variable_argss
&&&	(CRaRDSXX\\RaRCCHHqLLSVs]]S!!!!H		
v{E22222rcD|gdddddgdgdS)N)z-a3rrrr)rrrrrrtrrrs rtest_variable_argsz&TestCallbackVarArgs.test_variable_argssADDD!(t5%.II					rcF|gdddgdddgdS)N)r37rxxxxr}helloT)rrxrrrrrs r%test_consume_separator_stop_at_optionz9TestCallbackVarArgs.test_consume_separator_stop_at_optionsMCCC!%!%!4!4!466$9		&	&	&	&	&rcF|gdddgdddgdS)N)rrrrr)rrrrrrrs r%test_positional_arg_and_variable_argsz9TestCallbackVarArgs.test_positional_arg_and_variable_argssM===!%!% 3 3 355$9		&	&	&	&	&rcB|gddddgdgdS)N)rrr}Trrrrs rtest_stop_at_optionz'TestCallbackVarArgs.test_stop_at_options?...!%Dw??					rc6|gdddS)N)rrrrzno such option: -5rrs rtest_stop_at_invalid_optionz/TestCallbackVarArgs.test_stop_at_invalid_options&4446JKKKKKrN)
r!r"r#rmrrrrrr	r$rrrrsDDD333
&&&&&&
LLLLLrrceZdZdZdZdS)ConflictBasecftdddddg}tt||_dS)Nrrrrzincrement verbosityrrrirrrs  rrmzConflictBase.setUp
sMt[$-4IKKKL.^;BDDDrcd|j_dS)Nr)rshow_versionrs     rrzConflictBase.show_versions%&
"""rN)r!r"r#rmrr$rrrr	s5DDD'''''rrc*eZdZdZdZdZdZdZdS)TestConflictz9Use the default conflict resolution for Optik 1.2: error.c||dd|jddtd}||jd||jddS)N)rrYrshow versionrrriz5option -v/--version: conflicting option string(s): -vz conflicting option string(s): -vz-v/--version)rMrr
r5r*	option_id)rrGrKs   rassertTrueconflict_errorz%TestConflict.assertTrueconflict_errorsw%:595F1?(A(A
 CEE	
"DEEE77777rcD||jjdSr)rr2rrs rtest_conflict_errorz TestConflict.test_conflict_error s!%%dk&<=====rcdt|jd}||jdS)NzGroup 1)r
r2rrrms  rtest_conflict_error_groupz&TestConflict.test_conflict_error_group#s0DK33%%e&677777rcV||jjddtddS)Nrz'invalid conflict_resolution value 'foo')rMr2set_conflict_handlerrrs rtest_no_such_conflict_handlerz*TestConflict.test_no_such_conflict_handler's;K,hA	C	C	C	C	CrN)r!r"r#r[rrrrr$rrrrs[CC	8	8	8>>>888CCCCCrrc2eZdZdZdZdZdZdZdZdS)TestConflictResolvect||jd|jddd|jddS)NresolverrYrrr)rrmr2rrrrs rrmzTestConflictResolve.setUp.sh4   ((333t[(,(9		P	P	P	P	Prc|jd}|jd}|jd}|||u|||u||jdg||jdg||jdg||jg||jdgdS)NrrrY)r2rrDr5rr)rrverbose_optversion_opts    rtest_conflict_resolvez)TestConflictResolve.test_conflict_resolve4s&&t,,k,,[99k,,[99,---[0111)K=99904&999/+???0"555/+?????rc4|dgddS)NrXz}Options:
  --verbose      increment verbosity
  -h, --help     show this help message and exit
  -v, --version  show version
r\rs rtest_conflict_resolve_helpz.TestConflictResolve.test_conflict_resolve_helpAs-4&#					rc<|dgdddgdS)Nrrrrrrs rtest_conflict_resolve_short_optz3TestConflictResolve.test_conflict_resolve_short_optIs6D6'+Q??					rc:|dgddigdS)Nrrrrrs rtest_conflict_resolve_long_optz2TestConflictResolve.test_conflict_resolve_long_optNs2K=%q>					rc>|ddgdddgdS)NrrYrr*rrs rtest_conflict_resolve_long_optsz3TestConflictResolve.test_conflict_resolve_long_optsSs9K5'(!<<					rN)	r!r"r#rmr%r(r+r-r/r$rrrr-stPPP@@@

rrc&eZdZdZdZdZdZdS)TestConflictOverridectt|_|jd|jddddd|jddd	d
dddS)
Nrjr!r	--dry-runrdry_runzdon't do anythingr
rrzdry run mode)rrrri)r&rr2rrrs rrmzTestConflictOverride.setUpYs.^DDD((333t[&2$7		9	9	9	
{D&32I$2		4	4	4	4	4rc|jd}||jdg||jdgdS)Nr3r)r2rr5rrrs  rtest_conflict_override_optsz0TestConflictOverride.test_conflict_override_optscsQk$$[114&111+77777rc4|dgddS)NrXzXOptions:
  -h, --help     show this help message and exit
  -n, --dry-run  dry run mode
r'rs rtest_conflict_override_helpz0TestConflictOverride.test_conflict_override_helphs-4&#					rc:|dgddigdS)Nrr4rrrs rtest_conflict_override_argsz0TestConflictOverride.test_conflict_override_argsos2D6%r?					rN)r!r"r#rmr6r8r:r$rrr1r1XsP444888
rr1aSUsage: bar.py [options]

Options:
  -a APPLE           throw APPLEs at basket
  -b NUM, --boo=NUM  shout "boo!" NUM times (in order to frighten away all the
                     evil spirits that cause trouble and mayhem)
  --foo=FOO          store FOO in the foo list for later fooing
  -h, --help         show this help message and exit
aSUsage: bar.py [options]

Options:
  -a APPLE           throw APPLEs at basket
  --boo=NUM, -b NUM  shout "boo!" NUM times (in order to frighten away all the
                     evil spirits that cause trouble and mayhem)
  --foo=FOO          store FOO in the foo list for later fooing
  --help, -h         show this help message and exit
aWUsage
=====
  bar.py [options]

Options
=======
-a APPLE           throw APPLEs at basket
--boo=NUM, -b NUM  shout "boo!" NUM times (in order to frighten away all the
                   evil spirits that cause trouble and mayhem)
--foo=FOO          store FOO in the foo list for later fooing
--help, -h         show this help message and exit
a}Usage: bar.py [options]

Options:
  -a APPLE           throw APPLEs at basket
  -b NUM, --boo=NUM  shout "boo!" NUM times (in order to
                     frighten away all the evil spirits
                     that cause trouble and mayhem)
  --foo=FOO          store FOO in the foo list for later
                     fooing
  -h, --help         show this help message and exit
a~Usage: bar.py [options]

Options:
  -a APPLE
    throw
    APPLEs at
    basket
  -b NUM, --boo=NUM
    shout
    "boo!" NUM
    times (in
    order to
    frighten
    away all
    the evil
    spirits
    that cause
    trouble and
    mayhem)
  --foo=FOO
    store FOO
    in the foo
    list for
    later
    fooing
  -h, --help
    show this
    help
    message and
    exit
cPeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dS)
TestHelpc:|d|_dS)NP)make_parserr2rs rrmzTestHelp.setUps&&r**rc	tdddddtddd	d
ddtd
ddddg}tj5}t||d<t	|cdddS#1swxYwYdS)NrrrAPPLEzthrow APPLEs at basket)rWrmetavarrir}rrrNUMzeshout "boo!" NUM times (in order to frighten away all the evil spirits that cause trouble and mayhem)rrrz*store FOO in the foo list for later fooing)rrWrriCOLUMNSr)rrEnvironmentVarGuardr@r&)rcolumnsr:envs    rr?zTestHelp.make_parsers8# '.F
H
H
HgE %N
O
O
O

xeI
K
K
K
 
*
,
,	A \\C	N+@@@	A	A	A	A	A	A	A	A	A	A	A	A	A	A	A	A	A	As"A??BBctjdd}	tjddtjd<|dg||tjdd<dS#|tjdd<wxYw)Nrzbar.pyrrX)rTrNrOrPrQr\)rrQrRs   rassertHelpEqualszTestHelp.assertHelpEqualsswHQQQK		$',,uh77CHQKtfo666#CHQQQKKK)CHQQQK####sAA--Bc:|tdSr)rI_expected_help_basicrs r	test_helpzTestHelp.test_helps233333rcn|jd|tdS)NzUsage: %prog [options])r2	set_usagerIrKrs rtest_help_old_usagezTestHelp.test_help_old_usages46777233333rc\d|jj_|tdS)Nr)r2rshort_firstrI_expected_help_long_opts_firstrs rtest_help_long_opts_firstz"TestHelp.test_help_long_opts_firsts*,-)<=====rctj5}d|d<t|j_|tddddS#1swxYwYdS)N80rD)rrErr2rrI_expected_help_title_formatter)rrGs  rtest_help_title_formatterz"TestHelp.test_help_title_formatters

*
,
,	B!C	N$7$9$9DK!!!"@AAA	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	Bs8AA Ac|d|_|t|d|_|tdS)Nr
r)r?r2rI_expected_help_short_lines_expected_very_help_short_linesrs rtest_wrap_columnszTestHelp.test_wrap_columnss^&&r**8999&&q))=>>>>>rctt|_|jdddd}||dS)Nrjrrolé!rjuKOptions:
  -h, --help  show this help message and exit
  -a          olé!
)r&rr2rrIrexpects  rtest_help_unicodezTestHelp.test_help_unicodesT.^DDDtL{KKK
	
f%%%%%rcjttd|_d}||dS)Nr])rkrxu>olé!

Options:
  -h, --help  show this help message and exit
)r&rr2rIr^s  rtest_help_unicode_descriptionz&TestHelp.test_help_unicode_descriptionsC.^;FHHH	
f%%%%%rc@|jdt|jdd}|ddd|j|d}||d	|j_||d
zdS)Nz`This is the program description for %prog.  %prog has an option group as well as single options.zDangerous OptionszZCaution: use of these options is at your own risk.  It is believed that some of them bite.z-grz
Group option.rjaTUsage: bar.py [options]

This is the program description for bar.py.  bar.py has an option group as
well as single options.

Options:
  -a APPLE           throw APPLEs at basket
  -b NUM, --boo=NUM  shout "boo!" NUM times (in order to frighten away all the
                     evil spirits that cause trouble and mayhem)
  --foo=FOO          store FOO in the foo list for later fooing
  -h, --help         show this help message and exit

  Dangerous Options:
    Caution: use of these options is at your own risk.  It is believed
    that some of them bite.

    -g               Group option.
z Please report bugs to /dev/null.z"
Please report bugs to /dev/null.
)r2set_descriptionr
rrlrIepilog)rrnr_s   rtest_help_description_groupsz%TestHelp.test_help_description_groupss##
9	:	:	:K,
566	lIII$$U+++(	
f%%%?f'MMNNNNNrN)r!r"r#rmr?rIrLrOrSrWr[r`rbrfr$rrr<r<s+++AAA*$$$444444>>>BBB???&&&	&	&	&#O#O#O#O#Orr<ceZdZdZdZdS)TestMatchAbbrevc
X|tddddddddS)N--f)rr--fierj)r5rrs rtest_match_abbrevz!TestMatchAbbrev.test_match_abbrev@sMu151515/3(5(566
	 	 	 	 	 rc`d}dddd}|t||fdtddS)Nrj)rrrkz,ambiguous option: --f (--fie, --foo, --foz?))rMrr)rrwordmaps   rtest_match_abbrev_errorz'TestMatchAbbrev.test_match_abbrev_errorHsN 4$??Aw<J	L	L	L	L	LrN)r!r"r#rlror$rrrhrh?s7   LLLLLrrhc&eZdZdZdZdZdZdS)TestParseNumberct|_|jdt|jdtdS)Nrr-l)r&r2rrrs rrmzTestParseNumber.setUpQsK.00t#...t#.....rc	|tdtfitt	jd|tdtfitt	jddS)Nrz!invalid literal for int().*: '?'?0xOoopsz*invalid literal for int().*: s?'?0xOoops'?)rMrrrrBcompilers rtest_parse_num_failz#TestParseNumber.test_parse_num_failVs|S	2J;<<	>	>	>	
C("JDEE	G	G	G	G	Grc|tdtd|tdtd|tdtd|tdtd|td	td
|tdtddS)Nrr0x100XA
0100b11r0b)r5rrrs rtest_parse_num_okz!TestParseNumber.test_parse_num_ok`sC--q111FC00"555E3//444E3//333FC00!444D#..22222rc|gddddg|gddddg|dgd	|d
gd|dd
gddS)N)rr;rs0x20r )r'l)r0b0101z-l010rr~z-n008z'option -n: invalid integer value: '008'z-l0b0123z*option -l: invalid integer value: '0b0123'rs0x12xz)option -l: invalid integer value: '0x12x')r=rRrs rtest_numeric_optionsz$TestParseNumber.test_numeric_optionshs555"$4112	7	7	7444"#!--r	3	3	3gYF	H	H	Hj\I	K	K	KdG_H	J	J	J	J	JrN)r!r"r#rmrwrrr$rrrqrqPsX///
GGG333
J
J
J
J
JrrqceZdZdZdS)MiscTestCasecFhd}tj|t|dS)N>
NO_DEFAULT
check_builtinAmbiguousOptionError)not_exported)rcheck__all__optparse)rrs  rtest__all__zMiscTestCase.test__all__vs+NNNT8,GGGGGGrN)r!r"r#rr$rrrrus(HHHHHrr__main__)HrTrOrBrunittestiorr_rtest.supportrrrrrr	r
rrr
rrrrr	Exceptionrr&TestCaser0rgrrrrrrr rAr]rrrrr+rArWr^rfr~rrrrrrrrrrr1rKrRrVrYrZr<rhrqrr!mainr$rr<module>rs


								""""""..........................#"""""
N
N
N
N
Ny
N
N
N22222|222M%M%M%M%M%x M%M%M%jJ#J#J#J#J#xJ#J#J#XL?L?L?L?L?xL?L?L?^(((((x(((*CCCCChCCC rh@@>>>/////V///
0J0J0J0J0J0J0J0Jf'7'7'7'7'78'7'7'7TI4I4I4I4I4I4I4I4\H3H3H3H3H38H3H3H3T!!!!!x!!!F.........8/8/8/8/8/8/8/8/tDDDDDxDDD2X::::::(:::$66666h666 HHHHHhHHHD(/(/(/(/(/(/(/(/V8>3/3/3/3/3/83/3/3/lH2     X   :82
.
.
.
.
.h
.
.
.0L0L0L0L0L(0L0L0Lj'''''8'''CCCCC<CCC4))))),)))V8<		""#BtOtOtOtOtOxtOtOtOnLLLLLhLLL""J"J"J"J"Jh"J"J"JJHHHHH8$HHHzHMOOOOOr