Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/cppython/lib/python3.8/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/cppython/lib/python3.8/test/__pycache__/test_optparse.cpython-38.pyc
U

>��g���@sddlZddlZddlZddlZddlZddlmZddlmZddl	Z	ddl	m
Z
mZmZm
Z
mZmZmZmZmZmZmZddl	mZddl	mZGdd�de�ZGd	d
�d
e
�ZGdd�dej�ZGd
d�de�ZGdd�de�ZGdd�de�ZGdd�de�Zddddd�Z dd�Z!Gdd�de�Z"Gdd�de�Z#Gd d!�d!e�Z$Gd"d#�d#e�Z%Gd$d%�d%e�Z&Gd&d'�d'e�Z'Gd(d)�d)e�Z(Gd*d+�d+e�Z)Gd,d-�d-e�Z*Gd.d/�d/e�Z+Gd0d1�d1e�Z,Gd2d3�d3e�Z-Gd4d5�d5e�Z.Gd6d7�d7e�Z/Gd8d9�d9e�Z0Gd:d;�d;e�Z1Gd<d=�d=e�Z2Gd>d?�d?e�Z3Gd@dA�dAe�Z4GdBdC�dCe�Z5GdDdE�dEe�Z6GdFdG�dGe�Z7GdHdI�dIe7�Z8GdJdK�dKe7�Z9GdLdM�dMe�Z:dNZ;dOZ<dPZ=dQZ>dRZ?GdSdT�dTe�Z@GdUdV�dVe�ZAGdWdX�dXe�ZBGdYdZ�dZej�ZCd[d\�ZDeEd]k�reD�dS)^�N)�StringIO)�support)�make_option�Option�TitledHelpFormatter�OptionParser�OptionGroup�SUPPRESS_USAGE�OptionError�OptionConflictError�BadOptionError�OptionValueError�Values)�
_match_abbrev)�
_parse_numc@seZdZddd�Zdd�ZdS)�InterceptedErrorNcCs||_||_||_dS�N)�
error_message�exit_status�exit_message)�selfrrr�r�1/opt/cppython/lib/python3.8/test/test_optparse.py�__init__szInterceptedError.__init__cCs|jp|jpdS)Nzintercepted error)rr�rrrr�__str__$szInterceptedError.__str__)NNN)�__name__�
__module__�__qualname__rrrrrrrs
�
rc@seZdZddd�Zdd�ZdS)�InterceptingOptionParserrNcCst||d��dS)N)rr�r)r�status�msgrrr�exit(szInterceptingOptionParser.exitcCst|d��dS)N)rr )rr"rrr�error+szInterceptingOptionParser.error)rN)rrrr#r$rrrrr's
rc@s>eZdZdd�Zdd�Zdd�Zdd	d
�Zdd�Zd
d�ZdS)�BaseTestcCsH|j�|�\}}t|�}|�||dt��|�||dt��||fS)a�Assert 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_args�vars�assertEqual�locals)r�argsZ
expected_optsZexpected_positional_args�optionsZpositional_argsZoptdictrrr�
assertParseOK0s
����zBaseTest.assertParseOKc
Cs�|dkrd}|dkri}z|||�Wnr|k
r�}zTt|�}t|tj�rj|�|�|�d|j|f�n|�||d||f�|WY�Sd}~XYnX|�dt	��dS)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.
        NrzLexpected exception message pattern:
/%s/
actual exception message:
'''%s'''
zHexpected exception message:
'''%s'''
actual exception message:
'''%s'''
znexpected exception %(expected_exception)s not raised
called %(func)r
with args %(args)r
and kwargs %(kwargs)r
)
�str�
isinstance�re�Pattern�
assertTrue�search�patternr)�failr*)r�funcr+�kwargsZexpected_exception�expected_message�errZactual_messagerrr�assertRaisesNs0����	�zBaseTest.assertRaisesc
CsPz|j�|�Wn0tk
r@}z|�|j|�W5d}~XYnX|�d�dS)z�
        Assert the parser fails with the expected message.  Caller
        must ensure that self.parser is an InterceptingOptionParser.
        Nzexpected parse failure)r&r'rr)r�assertFalse)r�cmdline_args�expected_outputr9rrr�assertParseFail�s
 zBaseTest.assertParseFailrNc
Cs�tj}z0zt�t_|j�|�W5tj��}|t_XWnztk
r�}z\|�t|t	�dt
|��||kr�|�d|d|d�|�|j
|�|�|j|�W5d}~XYnX|�d�dS)z7Assert the parser prints the expected output on stdout.z0expected output to be an ordinary string, not %rzexpected: 
'''
z'''
but got 
'''
z'''Nzexpected parser.exit())�sys�stdout�getvaluerr&r'rr2r/r.�typer5r)rrr;)rr<r=Zexpected_statusZexpected_errorZsave_stdout�outputr9rrr�assertOutput�s2
��
��� zBaseTest.assertOutputcGs|�||dt|�dS)z4Assert that TypeError is raised when executing func.N)r:�	TypeError)rr6r8r+rrr�assertTypeError�szBaseTest.assertTypeErrorcCs.|��}||kr*|�d|d|d��dS)Nzhelp text failure; expected:
"z	"; got:
"z"
)�format_helpZfailureException)rr&�
expected_helpZactual_helprrr�
assertHelp�s�����zBaseTest.assertHelp)rN)	rrrr-r:r>rDrFrIrrrrr%/s;�
r%c@s�eZdZdd�Zgifdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/S)0�TestOptionCheckscCsttd�|_dS�N��usage�rr	r&rrrr�setUp�szTestOptionChecks.setUpcCs|�t||t|�dSr)r:rr
)rr8r+r7rrr�assertOptionError�s
�z"TestOptionChecks.assertOptionErrorcCs|�td�dS)Nz+at least one option string must be supplied)rFrrrrr�test_opt_string_empty�s�z&TestOptionChecks.test_opt_string_emptycCs|�ddg�dS)Nz?invalid option string 'b': must be at least two characters long�b�rPrrrr�test_opt_string_too_short�s�z*TestOptionChecks.test_opt_string_too_shortcCs|�ddg�dS)NzOinvalid short option string '--': must be of the form -x, (x any non-dash char)�--rSrrrr�test_opt_string_short_invalid�s�z.TestOptionChecks.test_opt_string_short_invalidcCs|�ddg�dS)NzJinvalid long option string '---': must start with --, followed by non-dashz---rSrrrr�test_opt_string_long_invalid�s�z-TestOptionChecks.test_opt_string_long_invalidcCs|�ddgddd��dS)Nz.option -b: invalid keyword arguments: bar, foo�-b��foo�barrSrrrr�test_attr_invalid�s
�z"TestOptionChecks.test_attr_invalidcCs|�ddgddi�dS)Nz option -b: invalid action: 'foo'rX�actionrZrSrrrr�test_action_invalid�s
�z$TestOptionChecks.test_action_invalidcCs,|�ddgddi�|�ddgdti�dS)Nz%option -b: invalid option type: 'foo'rXrBrZz'option -b: invalid option type: 'tuple')rP�tuplerrrr�test_type_invalid�s��z"TestOptionChecks.test_type_invalidcCs|�ddgddd��dS)Nz4option -b: must not supply a type for action 'count'rX�count�int)r]rBrSrrrr�test_no_type_for_action�s
�z(TestOptionChecks.test_no_type_for_actioncCs|�dddgddi�dS)Nz@option -b/--bad: must supply a list of choices for type 'choice'rX�--badrB�choicerSrrrr�test_no_choices_list�s
�z%TestOptionChecks.test_no_choices_listcCs*td�j}|�d|ddgddd��dS)N�zBoption -b/--bad: choices must be a list of strings ('%s' supplied)rXrdrezbad choices�rB�choices)rBrrP)r�typenamerrr�test_bad_choices_list�s
��z&TestOptionChecks.test_bad_choices_listcCs|�ddgddd��dS)Nz1option -b: must not supply choices for type 'int'rXrbZbadrhrSrrrr�test_no_choices_for_types
�z)TestOptionChecks.test_no_choices_for_typecCs|�ddgddd��dS)Nz:option -b: 'const' must not be supplied for action 'store'rX�store�)r]�constrSrrrr�test_no_const_for_actions
�z)TestOptionChecks.test_no_const_for_actioncCs|�ddgddd��dS)Nz:option -b: 'nargs' must not be supplied for action 'count'rXra�)r]�nargsrSrrrr�test_no_nargs_for_actions
�z)TestOptionChecks.test_no_nargs_for_actioncCs|�ddgddd��dS)Nz'option -b: callback not callable: 'foo'rX�callbackrZ�r]rtrSrrrr�test_callback_not_callables��z+TestOptionChecks.test_callback_not_callablecCsdSrrrrrr�dummyszTestOptionChecks.dummycCs|�ddgd|jdd��dS)NzAoption -b: callback_args, if supplied, must be a tuple: not 'foo'rXrtrZ)r]rt�
callback_args�rPrwrrrr�test_callback_args_no_tuples��z,TestOptionChecks.test_callback_args_no_tuplecCs|�ddgd|jdd��dS)NzBoption -b: callback_kwargs, if supplied, must be a dict: not 'foo'rXrtrZ)r]rt�callback_kwargsryrrrr�test_callback_kwargs_no_dict&s��z-TestOptionChecks.test_callback_kwargs_no_dictcCs|�ddgddd��dS)Nz<option -b: callback supplied ('foo') for non-callback optionrXrmrZrurSrrrr�test_no_callback_for_action.s��z,TestOptionChecks.test_no_callback_for_actioncCs|�ddgddd��dS)Nz9option -b: callback_args supplied for non-callback optionrXrmrZ)r]rxrSrrrr� test_no_callback_args_for_action4s��z1TestOptionChecks.test_no_callback_args_for_actioncCs|�ddgddd��dS)Nz;option -b: callback_kwargs supplied for non-callback optionrXrmrZ)r]r{rSrrrr�"test_no_callback_kwargs_for_action:s��z3TestOptionChecks.test_no_callback_kwargs_for_actioncCs2|�ddg�|�dddg�|�dddg�dS)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--debugrSrrrr�test_no_single_dash@s���z$TestOptionChecks.test_no_single_dashN)rrrrOrPrQrTrVrWr\r^r`rcrfrkrlrprsrvrwrzr|r}r~rr�rrrrrJ�s.rJc@sreZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Ze
jddd�dd��ZdS)�TestOptionParsercCs:t�|_|jjddddddd�|jjdd	d
ddd�dS)N�-v�	--verbose�-n�--noisy�
store_true�verbose�r]�dest�-q�--quiet�--silent�store_false)rr&�
add_optionrrrrrOQs��zTestOptionParser.setUpcCs|�|jjdd�dS)Nznot an Option instance: None�rFr&r�rrrr�test_add_option_no_OptionXs
�z*TestOptionParser.test_add_option_no_OptioncCs|�|jjddd�dS�Nzinvalid argumentsr�rrrr�!test_add_option_invalid_arguments\s

�z2TestOptionParser.test_add_option_invalid_argumentscCs\|j�d�}|�|t�|�|jddg�|�|jddg�|�|jd�|�|jd�dS)Nr�r�r�r�r�r�)	r&�
get_optionZassertIsInstancerr)�_short_opts�
_long_optsr]r�)r�opt1rrr�test_get_option`sz TestOptionParser.test_get_optioncCs\|j�d�}|j�d�}|j�d�}|j�d�}|�||koP|koP|kn�dS)Nr�r�r�r�)r&r�r2)rr�Zopt2Zopt3Zopt4rrr�test_get_option_equalshs
z'TestOptionParser.test_get_option_equalscCs(|�|j�d��|�|j�d��dS)Nr�r�)r2r&�
has_optionrrrr�test_has_optionosz TestOptionParser.test_has_optioncCs�|�|j�d�dk�|�|j�d�dk�|�|j�d�dk�|�|j�d�dk�|�|j�d��|�|j�d��|�|j�d��|�|j�d��|�|j�d��|�|j�d��dS)Nr�r�r�r�r�r�)r2r&r�r;r�rrrr�assertTrueremovedssz"TestOptionParser.assertTrueremovedcCs|j�d�|��dS)Nr��r&�
remove_optionr�rrrr�test_remove_short_opt�sz&TestOptionParser.test_remove_short_optcCs|j�d�|��dS)Nr�r�rrrr�test_remove_long_opt�sz%TestOptionParser.test_remove_long_optcCs|�|jjddtd�dS)N�rZzno such option 'foo')r:r&r��
ValueErrorrrrr�test_remove_nonexistent�s�z(TestOptionParser.test_remove_nonexistentzRelies on sys.getrefcountT)ZcpythoncCsHdg}t�|�}t�}|�dd�||_|��~|�|t�|��dS)N�*�-az	--aaarggh)r?�getrefcountrr��	big_thingZdestroyr))rr�Zrefcountr&rrr�test_refleak�s
zTestOptionParser.test_refleakN)rrrrOr�r�r�r�r�r�r�r�r�rZimpl_detailr�rrrrr�Psr�c@seZdZdd�Zdd�ZdS)�TestOptionValuescCsdSrrrrrrrO�szTestOptionValues.setUpcCs�t�}|�t|�i�|�|i�|�|ddi�|�|d�ddd�}t|d�}|�t|�|�|�||�|�|ddi�|�|i�|�|d�|�|g�dS)NrZr[rgr�)rZ�baz)�defaults)rr)r(ZassertNotEqual)r�values�dictrrr�test_basics�s

zTestOptionValues.test_basicsN)rrrrOr�rrrrr��sr�c@s$eZdZdd�Zdd�Zdd�ZdS)�TestTypeAliasescCst�|_dSr)rr&rrrrrO�szTestTypeAliases.setUpcCs*|jjddd�|�|j�d�jd�dS)N�-sr.�rB�string)r&r�r)r�rBrrrr�test_str_aliases_string�sz'TestTypeAliases.test_str_aliases_stringcCsP|jjdtd�|�|j�d�jd�|jjdtd�|�|j�d�jd�dS)Nr�r�r��-xrb)r&r�r.r)r�rBrbrrrr�test_type_object�sz TestTypeAliases.test_type_objectN)rrrrOr�r�rrrrr��sr�rn�<ii�Q)�s�m�h�dc	Csfz8|d��rt|�WSt|dd��t|dWSWn(ttfk
r`td||f��YnXdS)N���zoption %s: invalid duration: %r)�isdigitrb�_time_unitsr��
IndexErrorr
��option�opt�valuerrr�_check_duration�s
"
�r�c@s*eZdZejdZe�ej�Zeed<dS)�DurationOption)�durationr�N)rrrr�TYPES�copy�TYPE_CHECKERr�rrrrr��s
r�c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�TestDefaultValuescCs�t�|_|jjdddd�|jjdddd�|jjd	d
dd�|jjd
d
d�|jjddd�|j�d�|jjddd�ddddddd�|_dS)Nr�r�T��defaultr�r�r�)r�r�rb�%�rBr�z-mr�r�rZ�-tz-u)r��nr�r��t�u)rr&r��expectedrrrrrO�s�zTestDefaultValues.setUpcCs|�|j��|j�dSr)r)r&�get_default_valuesr�rrrr�test_basic_defaults�sz%TestDefaultValues.test_basic_defaultscCs:|jjddd�|j�ddd��|�|j��|j�dS)Nr�i����)r�r�)r&�set_defaultsr��updater)r�rrrr�test_mixed_defaults_post�sz*TestDefaultValues.test_mixed_defaults_postcCs�|jjddd�|jjddd�|j�d�|j�ddd��|�|j��|j�|j�d�|jjddd�|j�ddi�|�|j��|j�dS)	NZbarf�blah)�x�yr�Zfrobr�z-yr�)r&r�r�r�r�r)r�r�rrrr�test_mixed_defaults_pre�sz)TestDefaultValues.test_mixed_defaults_precCs�t|j_|jjdddd�|jjdddd�|jjdd�|j�dd	d
d��|�|j��|j�|j�	d�|j�dddd��|�|j��|j�dS)
Nr�r�i,r�z-eZ6m�42)r�ihr�)r��er�F)
r�r&�option_classr�r�r�r�r)r�Zset_process_default_valuesrrrr�test_process_default�sz&TestDefaultValues.test_process_defaultN)rrrrOr�r�r�r�rrrrr��s

r�c@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�TestProgNamez]
    Test that %prog expands to the right thing in usage, version,
    and help strings.
    cCs|�|��|�dSr)r)Z	get_usage�rr&�expected_usagerrr�assertUsageszTestProgName.assertUsagecCs|�|��|�dSr)r)Zget_version)rr&Zexpected_versionrrr�
assertVersionszTestProgName.assertVersionc
Csztjdd�}zVtj�ddd�tjd<tddd�}d}|�||�|�|d	�|�||d
d�W5|tjdd�<XdS)NrZr[zbaz.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
)	r?�argv�os�path�joinrr�r�rI)r�	save_argvr&r�rrr�test_default_prognames��z"TestProgName.test_default_prognamecCsRtdddd�}|�d�|�d�d}|�||�|�|d�|�||d	�dS)
NZthingy�	%prog 0.1z
%prog arg arg)�progr�rM�-h�	--versionzUsage: thingy arg arg
z
thingy 0.1r�)rr�r�r�rIr�rrr�test_custom_progname&s�

z!TestProgName.test_custom_prognameN)rrr�__doc__r�r�r�r�rrrrr�s
r�c@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�TestExpandDefaultscCs4tdd�|_d|_d|_|jd|_|jd|_dS)N�test)r�zXUsage: 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]
)rr&�help_prefix�	file_help�expected_help_file�expected_help_nonerrrrrO3s��zTestExpandDefaults.setUpcCs*|jjddd|jd�|�|j|j�dS)N�-f�--file�foo.txt�r��help)r&r�r�rIr�rrrr�test_option_defaultAs

�z&TestExpandDefaults.test_option_defaultcCs6|jjdd|jd�|j�dd�|�|j|j�dS)Nr�r��r��filer�)r&r�r��set_defaultrIr�rrrr�test_parser_default_1Gs

�z(TestExpandDefaults.test_parser_default_1cCs6|jjdd|jd�|jjdd�|�|j|j�dS)Nr�r�r�r��r)r&r�r�r�rIr�rrrr�test_parser_default_2Ms

�z(TestExpandDefaults.test_parser_default_2cCs(|jjdd|jd�|�|j|j�dS)Nr�r�r��r&r�r�rIr�rrrr�test_no_defaultSs
�z"TestExpandDefaults.test_no_defaultcCs*|jjddd|jd�|�|j|j�dS)Nr�r�r�rrrrr�test_default_none_1Xs

�z&TestExpandDefaults.test_default_none_1cCs6|jjdd|jd�|jjdd�|�|j|j�dS)Nr�r�r�r)r&r�r�r�rIr�rrrr�test_default_none_2^s

�z&TestExpandDefaults.test_default_none_2cCs<|jjdddd�|jjdd�|jd}|�|j|�dS)N�-pz--probz1blow up with probability PROB [default: %default]r�g��Q���?)ZprobzF  -p PROB, --prob=PROB  blow up with probability PROB [default: 0.43]
)r&r�r�r�rI�rrHrrr�test_float_defaultds��z%TestExpandDefaults.test_float_defaultcCs2|jjddddd�d|jj_|�|j|j�dS)Nr�r�r�z#read from FILE [default: *DEFAULT*]r�z	*DEFAULT*)r&r��	formatter�default_tagrIr�rrrr�test_alt_expandms
�
z"TestExpandDefaults.test_alt_expandcCs:|jjddddd�d|jj_|jd}|�|j|�dS)Nr�r�r�zread from %default filer�z0  -f FILE, --file=FILE  read from %default file
)r&r�rr
r�rIr
rrr�test_no_expandts
�
�z!TestExpandDefaults.test_no_expandN)
rrrrOr�rrrrrrrrrrrrr�2s	r�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7S)8�TestStandardcCs8tddd�tddddd�td	d
d�g}tt|d�|_dS)
Nr�r�r�rX�--boorb�boo�rBr��--foo�append�r]�rM�option_list�rrr	r&�rr,rrrrO�s

��zTestStandard.setUpcCs|�dgd�dS)Nr�z-a option requires 1 argument�r>rrrr�test_required_value�sz TestStandard.test_required_valuecCs|�ddgd�dS)NrXZ5xz&option -b: invalid integer value: '5x'rrrrr�test_invalid_integer�s
�z!TestStandard.test_invalid_integercCs|�dgd�dS)Nz--boo13zno such option: --boo13rrrrr�test_no_such_option�sz TestStandard.test_no_such_optioncCs|�dgd�dS)Nz--boo=x5z)option --boo: invalid integer value: 'x5'rrrrr�test_long_invalid_integer�s�z&TestStandard.test_long_invalid_integercCs|�gdddd�g�dS)N��arrZ�r-rrrr�
test_empty�szTestStandard.test_emptycCs&|�ddddgddddgd�g�dS)Nr�rgz
--foo=blahz--foo=r�r r"rrrr�"test_shortopt_empty_longopt_append�s�z/TestStandard.test_shortopt_empty_longopt_appendcCs*|�dddddgdddddgd�g�dS)Nrr[rgz--foo=xr�r r"rrrr�test_long_option_append�s��z$TestStandard.test_long_option_appendcCs|�dgdddd�g�dS)Nz-abcZbcr r"rrrr�test_option_argument_joined�s
�z(TestStandard.test_option_argument_joinedcCs|�ddgdddd�g�dS)Nr�Z34r r"rrrr�test_option_argument_split�s

�z'TestStandard.test_option_argument_splitcCs|�dgdddd�g�dS)Nz-b34�"r r"rrrr�#test_option_argument_joined_integer�s
�z0TestStandard.test_option_argument_joined_integercCs|�ddgdddd�g�dS)NrX�-5���r r"rrrr�+test_option_argument_split_negative_integer�s

�z8TestStandard.test_option_argument_split_negative_integercCs|�dgdddd�g�dS)Nz--boo=13�
r r"rrrr� test_long_option_argument_joined�s
�z-TestStandard.test_long_option_argument_joinedcCs|�ddgdddd�g�dS)NrZ111�or r"rrrr�test_long_option_argument_split�s

�z,TestStandard.test_long_option_argument_splitcCs |�ddgdddgd�g�dS)N�	--foo=bar�-axyz�xyzr[r r"rrrr�test_long_option_short_option�s
�z*TestStandard.test_long_option_short_optioncCs |�ddgdddgd�g�dS)N�--f=barr2r3r[r r"rrrr�test_abbrev_long_option�s
�z$TestStandard.test_abbrev_long_optioncCs2|j�g�\}}|j��}|�t|�t|��dSr)r&r'r�r)r()rr,r+r�rrr�
test_defaults�s
zTestStandard.test_defaultscCs&|jjddddd�|�dgd�dS)N�--fozrmr�rZ�r]rBr�r5z%ambiguous option: --f (--foo, --foz?)�r&r�r>rrrr�test_ambiguous_option�s
��z"TestStandard.test_ambiguous_optioncCs$|�ddddgdddgd�g�dS)Nr�r3rr[r r"rrrr� test_short_and_long_option_split�s�z-TestStandard.test_short_and_long_option_splitcCs(|�dddddgddddgd�g�dS)	Nr1rXZ123rr��{r[r r"rrrr�*test_short_option_split_long_option_append�s�z7TestStandard.test_short_option_split_long_option_appendcCs"|�dddgdddd�dg�dS)Nr�rZr[r r"rrrr�*test_short_option_split_one_positional_arg�s
�z7TestStandard.test_short_option_split_one_positional_argcCsF|�ddddgdddd�ddg�|�ddddgdddgd�g�dS)Nr�rUrZr[r rr"rrrr�$test_short_option_consumes_separator�s
��z1TestStandard.test_short_option_consumes_separatorcCs(|�ddddgdddd�ddg�fdS)N�-abrUrr[rRr r"rrrr�&test_short_option_joined_and_separator�s
�z3TestStandard.test_short_option_joined_and_separatorcCs&|�ddddgdddgd�dg�dS)NrA�-rr[rRr r"rrrr�"test_hyphen_becomes_positional_arg�s�z/TestStandard.test_hyphen_becomes_positional_argcCs*|�ddddddgddddgd	�g�dS)
N�-b3rX�5r1rr��r[r r"rrrr�test_no_append_versus_append�s�z)TestStandard.test_no_append_versus_appendcCs|�ddgdddd�g�dS)Nr�rEr r"rrrr�&test_option_consumes_optionlike_strings

�z3TestStandard.test_option_consumes_optionlike_stringcCs"|jjddd�|�dgd�dS)Nr�r�rz-testzno such option: -er:rrrr�#test_combined_single_invalid_options�z0TestStandard.test_combined_single_invalid_optionN)rrrrOrrrrr#r$r%r&r'r)r,r.r0r4r6r7r;r<r>r?r@rBrDrHrIrJrrrrr�s6rc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�TestBoolcCs2tdddddd�tddd	dd
�g}t|d�|_dS)Nr�r�r�r�rg�r]r�r�r�r�r�r��r)rrr&rrrrrOs���	zTestBool.setUpcCs|�gddig�dS)Nr�rgr"rrrr�test_bool_defaults�zTestBool.test_bool_defaultcCs,|�dgddig�\}}|�|jdk�dS)Nr�r�rF�r-r2r��rr,r+rrr�test_bool_falses
�zTestBool.test_bool_falsecCs,|�dgddig�\}}|�|jdk�dS)Nr�r�rnTrOrPrrr�test_bool_true"s
�zTestBool.test_bool_truecCs|�dddgddig�dS)Nz-qvqr�r�r�rnr"rrrr�test_bool_flicker_on_and_off(s�z%TestBool.test_bool_flicker_on_and_offN)rrrrOrNrQrRrSrrrrrK
s
rKc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�
TestChoicecCs,ttd�|_|jjdddddddgd�dS)	NrL�-crmre�oneZtwoZthree)r]rBr�ri�rr	r&r�rrrrrO.s
�zTestChoice.setUpcCs|�dddgddidg�dS)NrUrVr3rer"rrrr�test_valid_choice3s�zTestChoice.test_valid_choicecCs|�dddgd�dS)NrU�four�abczEoption -c: invalid choice: 'four' (choose from 'one', 'two', 'three')rrrrr�test_invalid_choice8s�zTestChoice.test_invalid_choicecCsD|jjdddddgd�|j�d�}|�|jd�|�|jd�dS)	Nr�z	--defaultrYZfiveZsix)rirerm)r&r�r�r)rBr]�rr�rrr�test_add_choice_option=s
�z!TestChoice.test_add_choice_optionN)rrrrOrXr[r]rrrrrT-srTc@s|eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZdS)�	TestCountcCsVttd�|_tdddd�|_|j�|j�|jjdddd�|jjd	d
dddd
�dS)NrLr�rar�r�r�rbrr�r��store_constr�r]r�ro)rr	r&r�v_optr�rrrrrOEs
�zTestCount.setUpcCs|�gddig�dS)Nr�r"rrrrr#MszTestCount.test_emptycCs|�dgddig�dS)Nr�r�rnr"rrrr�test_count_onePszTestCount.test_count_onecCs|�dgddig�dS)N�-vvvr��r"rrrr�test_count_threeSszTestCount.test_count_threecCs|�dddgddig�dS)Nr�r�rdr"rrrr�test_count_three_apartVsz TestCount.test_count_three_apartcCs|�ddgddig�dS)Nrc�--verbose=2r�rqr"rrrr�test_count_override_amountYsz$TestCount.test_count_override_amountcCs|�dddgddig�dS)Nrcrgr�r�rr"rrrr�test_count_override_quiet\sz#TestCount.test_count_override_quietcCs|�ddddgddig�dS)Nrcrgr�r�r�rnr"rrrr�test_count_overriding_s�zTestCount.test_count_overridingcCs|�dddgddidg�dS)Nr��3r�r�rnr"rrrr�test_count_interspersed_argscs�z&TestCount.test_count_interspersed_argscCs*|j��|�dddgddiddg�dS)Nr�rkr�r�r)r&Zdisable_interspersed_argsr-rrrr�test_count_no_interspersed_argshs

�z)TestCount.test_count_no_interspersed_argscCs|�ddgd�dS)Nz-q3r�zno such option: -3rrrrr�test_count_no_such_optionnsz#TestCount.test_count_no_such_optioncCs|�ddgd�dS)Nz	--quiet=3r�z$--quiet option does not take a valuerrrrr�test_count_option_no_valueqs
�z$TestCount.test_count_option_no_valuecCs$|j�dd�|�gddig�dS)Nr�r�r&rr-rrrr�test_count_with_defaultusz!TestCount.test_count_with_defaultcCs,|j�dd�|�ddddgddig�dS)Nr�rrcrgr�r�rnrprrrr�test_count_overriding_defaultys
�z'TestCount.test_count_overriding_defaultN)rrrrOr#rbrerfrhrirjrlrmrnrorqrrrrrrr^Dsr^c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�TestMultipleArgscCs(ttd�|_|jjddddddd�dS)	NrLr	�--pointrmrd�float�point�r]rrrBr�rWrrrrrOs
�zTestMultipleArgs.setUpcCs&|�ddddddgddiddg�dS)	NrZr	�1�2.5z-4.3r3rv)g�?�@g333333�r"rrrr�test_nargs_with_positional_args�s�z0TestMultipleArgs.test_nargs_with_positional_argscCs"|�dddddgddidg�dS)Nrt�-1ryz-0r3rv)g�rzg�r"rrrr�test_nargs_long_opt�s�z$TestMultipleArgs.test_nargs_long_optcCs|�ddddgd�dS)Nr	�1.0Z2x�3.5z-option -p: invalid floating-point value: '2x'rrrrr�test_nargs_invalid_float_value�s�z/TestMultipleArgs.test_nargs_invalid_float_valuecCs|�dddgd�dS)Nrtr~rz#--point option requires 3 argumentsrrrrr�test_nargs_required_values�s�z+TestMultipleArgs.test_nargs_required_valuesN)rrrrOr{r}r�r�rrrrrs~s
rsc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�TestMultipleArgsAppendcCsVttd�|_|jjddddddd�|jjd	d
ddd
dd�|jjdddddd�dS)NrLr	rtrmrdrurvrwr�rrrqrbrZ�-z�--zero�append_const�rrr`rWrrrrrO�s���zTestMultipleArgsAppend.setUpc	Cs,|�dddddddgddd	gd
�dg�dS)Nr��4�-3r�rrxZ666)����)rni��rvrZr"rrrr�test_nargs_append�s�z(TestMultipleArgsAppend.test_nargs_appendcCs|�dgd�dS)Nz-f4,3z-f option requires 2 argumentsrrrrr�!test_nargs_append_required_values�s�z8TestMultipleArgsAppend.test_nargs_append_required_valuescCs|�ddgddgd�g�dS)Nz--foo=3r��rdr�r�r"rrrr�test_nargs_append_simple�s

�z/TestMultipleArgsAppend.test_nargs_append_simplecCs(|�dddddgddddgd�g�dS)	Nr�rrkr�r�r�r�r�r"rrrr�test_nargs_append_const�s�z.TestMultipleArgsAppend.test_nargs_append_constN)rrrrOr�r�r�r�rrrrr��s
	r�c@seZdZdd�Zdd�ZdS)�TestVersionc
Cs\ttdd�|_tjdd�}z*tj�tjdd�tjd<|�	dgd�W5|tjdd�<XdS)Nr�)rMr�rZr[rr�zbar 0.1
)
rr	r&r?r�r�r�r��curdirrD)rr�rrr�test_version�s�zTestVersion.test_versioncCsttd�|_|�dgd�dS)NrLr�zno such option: --version)rr	r&r>rrrr�test_no_version�s�zTestVersion.test_no_versionN)rrrr�r�rrrrr��s
r�c@s(eZdZdZdd�Zdd�Zdd�ZdS)	�TestConflictingDefaultsz4Conflicting default values: the last one should win.cCsttddddd�gd�|_dS)Nr�r�r�rnrLrM)rrr&rrrrrO�s�zTestConflictingDefaults.setUpcCs*|jjddddd�|�gddig�dS)Nr�r�r�rrL�r&r�r-rrrr�test_conflict_default�s�z-TestConflictingDefaults.test_conflict_defaultcCs*|jjddddd�|�gddig�dS)Nr�r�r�rLr�rrrr�test_conflict_default_none�s�z2TestConflictingDefaults.test_conflict_default_noneN)rrrr�rOr�r�rrrrr��sr�c@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�TestOptionGroupcCsttd�|_dSrKrNrrrrrO�szTestOptionGroup.setUpcCs@t|jd�}|j�|�|jdddd�|�dgddig�dS)N�Spamz--spamr�zspam spam spam spam�r]r�Zspamrn)rr&�add_option_groupr�r-�r�grouprrr�!test_option_group_create_instance�s�z1TestOptionGroup.test_option_group_create_instancecCs|�|jjdd�dS)Nz!not an OptionGroup instance: None�rFr&r�rrrr�test_add_group_no_group�s
�z'TestOptionGroup.test_add_group_no_groupcCs|�|jjddd�dSr�r�rrrr� test_add_group_invalid_arguments�s

�z0TestOptionGroup.test_add_group_invalid_argumentscCs0t|jd�}t�|_|�|jj|fdtd�dS)Nr�z"invalid OptionGroup (wrong parser))rr&rr:r�r�r�rrr�test_add_group_wrong_parser�s�z+TestOptionGroup.test_add_group_wrong_parsercCs@|jjddd�}|�d�|jddd�|�|j�d�|�dS)NzGroup 2zSome more options)�descriptionZBaconz--baconrbr�)r&r�Z	set_titler�r2Zget_option_groupr�rrr�test_group_manipulate�s�
z%TestOptionGroup.test_group_manipulateN)	rrrrOr�r�r�r�r�rrrrr��sr�c@sDeZdZdd�Zdd�ZGdd�de�Zdd�Zd	d
�Zdd�Z	d
S)�TestExtendAddTypescCs<tt|jd�|_|jjddddd�|jjddddd�dS)	N)rMr�r�r�r!rr�r�r)rr	�MyOptionr&r�rrrrrO�s
�zTestExtendAddTypes.setUpcCs:tj�tj�rt�tj�ntj�tj�r6t�tj�dSr)r�r��isdirr�TESTFN�rmdir�isfile�unlinkrrrr�tearDown�szTestExtendAddTypes.tearDownc@s2eZdZdd�ZejdZe�ej�Zeed<dS)zTestExtendAddTypes.MyOptioncCs6tj�|�std|��ntj�|�s2td|��|S)N�%s: file does not exist�%s: not a regular file)r�r��existsr
r�r�rrr�
check_files
z&TestExtendAddTypes.MyOption.check_filerrN)rrrr�rr�r�r�rrrrr�s
r�cCs.t�tj�|�dtjdgtjdd�g�dS)Nr��-afoorZ)rr!)rZcreate_empty_filer�r-rrrr�test_filetype_oks

�z#TestExtendAddTypes.test_filetype_okcCs|�dtjdgdtj�dS)Nr�r�r�)r>rr�rrrr�test_filetype_noexists
��z(TestExtendAddTypes.test_filetype_noexistcCs*t�tj�|�dtjdgdtj�dS)Nr�r�r�)r��mkdirrr�r>rrrr�test_filetype_notfiles��z(TestExtendAddTypes.test_filetype_notfileN)
rrrrOr�rr�r�r�r�rrrrr��sr�c@s4eZdZdd�ZGdd�de�Zdd�Zdd�Zd	S)
�TestExtendAddActionscCs&|jdddddd�g}t|d�|_dS)Nr��--apple�extendr��appler9rM)r�rr&rrrrrO$s

�zTestExtendAddActions.setUpc@s2eZdZejdZejdZejdZdd�ZdS)zTestExtendAddActions.MyOption)r�c	Cs@|dkr&|�d�}|�|g��|�nt�|||||||�dS)Nr��,)�split�ensure_valuer�r�take_action)rr]r�r�r�r�r&Zlvaluerrrr�.s
�z)TestExtendAddActions.MyOption.take_actionN)rrrrZACTIONSZ
STORE_ACTIONSZ
TYPED_ACTIONSr�rrrrr�)s


r�cCs |�ddgddddgig�dS)Nz	-afoo,barz--apple=blahr�rZr[r�r"rrrr�test_extend_add_action6s
�z+TestExtendAddActions.test_extend_add_actioncCs&|�ddddgdddddgig�dS)	Nr�rZz-abarz--apple=x,yr�r[r�r�r"rrrr�test_extend_add_action_normal;s�z2TestExtendAddActions.test_extend_add_action_normalN)rrrrOrr�r�r�rrrrr�#s
r�c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�TestCallbackc	Cs8tddd|jd�tddd|jddd�g}t|d	�|_dS)
Nr�rtrur�r�r��filename)r]rtrBr�rM)r�process_optrr&rrrrrOCs���
zTestCallback.setUpcCs�|dkrd|�|jdg�|�|jg�|�||jk�|�|dk�|�t|j�ddi�d|j_n||dkr�|�|jdg�|�|jdg�|�||jk�|�|d�|�t|j�ddd��t|j|j	|�n|�
d|�dS)	Nr�r�r�r�r�rZ�r�r�z!Unknown option %r in process_opt.)r)r�r�r2r&r(r�r��setattrr�r5�rr�r�r��parser_rrrr�Ps
zTestCallback.process_optcCs|�ddgddd�g�dS)Nr�z
--file=foorZr�r�r"rrrr�
test_callbackds
�zTestCallback.test_callbackcCsBttd�}|�d�|jddddd�dd	d
�d}|�||�dS)NrLr�r�z--testrtcSsdSrrrrrr�<lambda>p�z1TestCallback.test_callback_help.<locals>.<lambda>r�rZ)r]rtrBr�z%Options:
  -t TEST, --test=TEST  foo
)rr	r�r�rI)rr&rHrrr�test_callback_helpis


�zTestCallback.test_callback_helpN)rrrrOr�r�r�rrrrr�Bs
r�c@s$eZdZdd�Zdd�Zdd�ZdS)�TestCallbackExtraArgsc
Cs0tddd|jdtfddgd�g}t|d�|_dS)	Nr	rtrtrdr��points)r]rtrxrBr�r�rM)r�
process_tuplerbrr&rrrrrOys�zTestCallbackExtraArgs.setUpcCsp|�|d�|�|tk�|dkr0|�|d�n|dkrD|�|d�tt||�d���}t|j|j��	|�dS)Nrdr	z1,2,3rt�4,5,6r�)
r)r2rbr_�mapr��getattrr�r�r)rr�r�r�r��lenrBrrrr��sz#TestCallbackExtraArgs.process_tuplecCs |�dddgdddgig�dS)Nz-p1,2,3rtr�r��rnrqrd)r�rG�r"rrrr�test_callback_extra_args�s
�z.TestCallbackExtraArgs.test_callback_extra_argsN)rrrrOr�r�rrrrr�xsr�c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�TestCallbackMeddleArgscs*�fdd�tddd�D�}t|d��_dS)Ncs"g|]}tt|�d�jdd��qS)rt�things�r]rtr�)rr.�	process_n)�.0r�rrr�
<listcomp>�s
�
�z0TestCallbackMeddleArgs.setUp.<locals>.<listcomp>r�i����rM)�rangerr&rrrrrO�s

�zTestCallbackMeddleArgs.setUpcCstt|dd��}|j}t|�|kr4|�d||f�|j�|jg�}|�t|d|���|j	�|�|d|�=dS)Nrnz$Expected %d arguments for %s option.r)
rb�rargsr�r5r�r�r�rr_Zlargs)rr�r�r�r�rrr�r�rrrr��sz TestCallbackMeddleArgs.process_ncCs*|�ddddddgddd	gid
dg�dS)Nr|rZr�r[r��quxr�r�)r[r�r�rnrdr"rrrr�test_callback_meddle_args�s
�z0TestCallbackMeddleArgs.test_callback_meddle_argscCs |�dddgddgidg�dS)Nz-2rZrUr�)rZrUrqr"rrrr�#test_callback_meddle_args_separator�s�z:TestCallbackMeddleArgs.test_callback_meddle_args_separatorN)rrrrOr�r�r�rrrrr��sr�c@s$eZdZdd�Zdd�Zdd�ZdS)�TestCallbackManyArgsc	Cs<tdddd|jdd�tdddd	|jd
d�g}t|d�|_dS)Nr�r�rtrqr�)r]rrrtrBrX�--bobrdrbrM)r�process_manyrr&rrrrrO�s
�
��zTestCallbackManyArgs.setUpcCsZ|dkr|�|d�n@|dkr,|�|d�n*|dkrB|�|d�n|dkrV|�|d�dS)	Nr�rYr�)�ding�dongrXr�r�)if���r�r�r)r�rrrr��sz!TestCallbackManyArgs.process_manycCs4|�ddddddddd	d
ddd
dgddd�g�dS)Nr�rZr[r�r�r�rXrx�2rkr�z-666r��0)r�Zbobr"rrrr�test_many_args�s��z#TestCallbackManyArgs.test_many_argsN)rrrrOr�r�rrrrr��s
r�c@s$eZdZdd�Zdd�Zdd�ZdS)�TestCallbackCheckAbbrevcCs t�|_|jjdd|jd�dS)N�	--foo-barrtru)rr&r��check_abbrevrrrrrO�s
�zTestCallbackCheckAbbrev.setUpcCs|�|d�dS)Nr�r��rr�r�r�r&rrrr��sz$TestCallbackCheckAbbrev.check_abbrevcCs|�dgig�dS)Nrr"rrrr�test_abbrev_callback_expansion�sz6TestCallbackCheckAbbrev.test_abbrev_callback_expansionN)rrrrOr�r�rrrrr��sr�c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�TestCallbackVarArgsc	CsBtddddd�tdddd	�td
dd|jd
d�g}tt|d�|_dS)Nr�rbrqr!)rBrrr�rXr�rRr�rU�
--callbackrt�cr�r)r�
variable_argsrr	r&rrrrrO�s���zTestCallbackVarArgs.setUpcCs�|�|dk�g}|j}|r~|d}|dd�dkr@t|�dks~|dd�dkrlt|�dkrl|ddkrlq~q|�|�|d=qt|j|j|�dS)NrrqrUrnrC)r2r�r�rr�r�r�)rr�r�r�r&r��argrrrr��s �
�
�
z!TestCallbackVarArgs.variable_argscCs(|�dddddgddddgd�g�dS)Nz-a3r*r�rZr[)rdr+�r!rRr�r"rrrr�test_variable_args�s�z&TestCallbackVarArgs.test_variable_argscCs.|�ddddddgdddddgd�dg�dS)	NrUZ37rUZxxxrX�helloTr�r"rrrr�%test_consume_separator_stop_at_option�s��z9TestCallbackVarArgs.test_consume_separator_stop_at_optioncCs,|�dddddgdddddgd�dg�dS)Nr�rUrZrCr[r�r"rrrr�%test_positional_arg_and_variable_args�s��z9TestCallbackVarArgs.test_positional_arg_and_variable_argscCs"|�dddgdddgd�g�dS)NrUrZrXTr�r"rrrr�test_stop_at_option�s�z'TestCallbackVarArgs.test_stop_at_optioncCs|�ddddgd�dS)NrUrkr*r�zno such option: -5rrrrr�test_stop_at_invalid_optionsz/TestCallbackVarArgs.test_stop_at_invalid_optionN)
rrrrOr�r�r�r�r�r�rrrrr��sr�c@seZdZdd�Zdd�ZdS)�ConflictBasecCs&tdddddd�g}tt|d�|_dS)Nr�r�rar�zincrement verbosity�r]r�r�rrrrrrrO	s��zConflictBase.setUpcCsd|j_dS)Nrn)r��show_versionr�rrrr�szConflictBase.show_versionN)rrrrOr�rrrrr�sr�c@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�TestConflictz9Use the default conflict resolution for Optik 1.2: error.cCs<|�|dd|jdd�td�}|�|jd�|�|jd�dS)N)r�r�rt�show version�r]rtr�z5option -v/--version: conflicting option string(s): -vz conflicting option string(s): -vz-v/--version)r:r�rr)r"Z	option_id)rr6r9rrr�assertTrueconflict_errors��z%TestConflict.assertTrueconflict_errorcCs|�|jj�dSr)rr&r�rrrr�test_conflict_errorsz TestConflict.test_conflict_errorcCst|jd�}|�|j�dS)NzGroup 1)rr&rr�r�rrr�test_conflict_error_group"sz&TestConflict.test_conflict_error_groupcCs|�|jjddtd�dS)Nr�z'invalid conflict_resolution value 'foo')r:r&�set_conflict_handlerr�rrrr�test_no_such_conflict_handler&s�z*TestConflict.test_no_such_conflict_handlerN)rrrr�rrrrrrrrr�s
r�c@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�TestConflictResolvecCs2t�|�|j�d�|jjddd|jdd�dS)N�resolver�r�rtr�r)r�rOr&rr�r�rrrrrO-s
�zTestConflictResolve.setUpcCs�|j�d�}|j�d�}|j�d�}|�||k�|�||k	�|�|jdg�|�|jdg�|�|jdg�|�|jg�|�|jdg�dS)Nr�r�r�)r&r�r2r)r�r�)rraZverbose_optZversion_optrrr�test_conflict_resolve3sz)TestConflictResolve.test_conflict_resolvecCs|�dgd�dS)Nr�z}Options:
  --verbose      increment verbosity
  -h, --help     show this help message and exit
  -v, --version  show version
�rDrrrr�test_conflict_resolve_help@sz.TestConflictResolve.test_conflict_resolve_helpcCs|�dgddd�g�dS)Nr�rn�r�r�r"rrrr�test_conflict_resolve_short_optHs�z3TestConflictResolve.test_conflict_resolve_short_optcCs|�dgddig�dS)Nr�r�rnr"rrrr�test_conflict_resolve_long_optMs�z2TestConflictResolve.test_conflict_resolve_long_optcCs|�ddgddd�g�dS)Nr�r�rnrr"rrrr�test_conflict_resolve_long_optsRs
�z3TestConflictResolve.test_conflict_resolve_long_optsN)	rrrrOrr
rr
rrrrrr,s
rc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�TestConflictOverridecCsJttd�|_|j�d�|jjdddddd�|jjddd	d
ddd�dS)
NrLrr��	--dry-runr��dry_runzdon't do anythingr�r_r�zdry run mode)r]ror�r�)rr	r&rr�rrrrrOXs
�
�zTestConflictOverride.setUpcCs0|j�d�}|�|jdg�|�|jdg�dS)Nrr�)r&r�r)r�r�r\rrr�test_conflict_override_optsbsz0TestConflictOverride.test_conflict_override_optscCs|�dgd�dS)Nr�zXOptions:
  -h, --help     show this help message and exit
  -n, --dry-run  dry run mode
r	rrrr�test_conflict_override_helpgsz0TestConflictOverride.test_conflict_override_helpcCs|�dgddig�dS)Nr�rr�r"rrrr�test_conflict_override_argsns�z0TestConflictOverride.test_conflict_override_argsN)rrrrOrrrrrrrrWs
raSUsage: 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
c@sdeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�TestHelpcCs|�d�|_dS)N�P)�make_parserr&rrrrrO�szTestHelp.setUpc
Csltdddddd�tddd	d
ddd�td
ddddd�g}t���$}t|�|d<t|d�W5QR�SQRXdS)Nr�r�r!ZAPPLEzthrow APPLEs at basket)rBr��metavarr�rXrrbrZNUMzeshout "boo!" NUM times (in order to frighten away all the evil spirits that cause trouble and mayhem)rrrZz*store FOO in the foo list for later fooing)r]rBr�r��COLUMNSrM)rr�EnvironmentVarGuardr.r)r�columnsr,�envrrrr�s�
�
��
zTestHelp.make_parserc
CsJtjdd�}z&tj�dd�tjd<|�dg|�W5|tjdd�<XdS)NrZzbar.pyrr�)r?r�r�r�r�rD)rr=r�rrr�assertHelpEquals�s
zTestHelp.assertHelpEqualscCs|�t�dSr)r�_expected_help_basicrrrr�	test_help�szTestHelp.test_helpcCs|j�d�|�t�dS)NzUsage: %prog [options])r&Z	set_usagerrrrrr�test_help_old_usage�szTestHelp.test_help_old_usagecCsd|jj_|�t�dS)Nr)r&rZshort_firstr�_expected_help_long_opts_firstrrrr�test_help_long_opts_first�s
z"TestHelp.test_help_long_opts_firstc	Cs4t���"}d|d<t�|j_|�t�W5QRXdS)NZ80r)rrrr&rr�_expected_help_title_formatter)rrrrr�test_help_title_formatter�s

z"TestHelp.test_help_title_formattercCs0|�d�|_|�t�|�d�|_|�t�dS)Nr�r)rr&r�_expected_help_short_lines�_expected_very_help_short_linesrrrr�test_wrap_columns�s
zTestHelp.test_wrap_columnscCs0ttd�|_|jjdddd�d}|�|�dS)NrLr�r��olé!r�uKOptions:
  -h, --help  show this help message and exit
  -a          olé!
)rr	r&r�r�r�expectrrr�test_help_unicodeszTestHelp.test_help_unicodecCs ttdd�|_d}|�|�dS)Nr()rMr�u>olé!

Options:
  -h, --help  show this help message and exit
)rr	r&rr)rrr�test_help_unicode_description
s
�z&TestHelp.test_help_unicode_descriptioncCs^|j�d�t|jdd�}|jdddd�|j�|�d}|�|�d	|j_|�|d
�dS)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-gr�z
Group option.r�aTUsage: 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.
)r&Zset_descriptionrr�r�r�epilog)rr�r*rrr�test_help_description_groupss��
z%TestHelp.test_help_description_groupsN)rrrrOrrrr r"r$r'r+r,r.rrrrr�s		
rc@seZdZdd�Zdd�ZdS)�TestMatchAbbrevc	Cs |�tdddddd��d�dS)N�--f)r8r�--fier0)r)rrrrr�test_match_abbrev?s���z!TestMatchAbbrev.test_match_abbrevcCs*d}dddd�}|�t||fdtd�dS)Nr0)r8rr1z,ambiguous option: --f (--fie, --foo, --foz?))r:rr)rr�Zwordmaprrr�test_match_abbrev_errorGs�z'TestMatchAbbrev.test_match_abbrev_errorN)rrrr2r3rrrrr/>sr/c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�TestParseNumbercCs,t�|_|jjdtd�|jjdtd�dS)Nr�r��-l)rr&r�rbrrrrrOPszTestParseNumber.setUpc	Cs<|�tdtfitt�d��|�tdtfitt�d��dS)Nrgz!invalid literal for int().*: '?'?Z0xOoopsz*invalid literal for int().*: s?'?0xOoops'?)r:rrbr�r0�compilerrrr�test_parse_num_failUs��z#TestParseNumber.test_parse_num_failcCsp|�tdt�d�|�tdt�d�|�tdt�d�|�tdt�d�|�td	t�d
�|�tdt�d�dS)Nr�rZ0x10�Z0XA�
Z010�Z0b11rdZ0b)r)rrbrrrr�test_parse_num_ok_sz!TestParseNumber.test_parse_num_okcCsf|�ddddgddd�g�|�ddd	gd
dd�g�|�dgd
�|�dgd�|�ddgd�dS)Nr�r�r5Z0x20r�� )r��lZ0b0101z-l010rGr:z-n008z'option -n: invalid integer value: '008'z-l0b0123z*option -l: invalid integer value: '0b0123'Z0x12xz)option -l: invalid integer value: '0x12x')r-r>rrrr�test_numeric_optionsgs"����
�z$TestParseNumber.test_numeric_optionsN)rrrrOr7r;r>rrrrr4Os
r4c@seZdZdd�ZdS)�MiscTestCasecCsdddh}tj|t|d�dS)NZ
check_builtinZAmbiguousOptionErrorZ
NO_DEFAULT)�	blacklist)rZcheck__all__�optparse)rr@rrr�test__all__us
zMiscTestCase.test__all__N)rrrrBrrrrr?tsr?cCst�t�dSr)rZrun_unittestrrrrr�	test_mainzsrC�__main__)Fr?r�r0r�Zunittest�iorr�rrArrrrrr	r
rrr
rrr�	ExceptionrrZTestCaser%rJr�r�r�r�r�r�r�r�r�rrKrTr^rsr�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr!r#r%r&rr/r4r?rCrrrrr�<module>	sv4
O
3*N#:"+65
+
!w%


F1le Man4ger