
    5\h_                         d dl mZ d dlZd dlZd dlZ e            Z G d dej                  Zd Z	d Z
edk    r ej                     dS dS )    )EnvironmentVarGuardNc                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )GetoptTestsc                 x    |                      t                                | _        d| j        v r
| j        d= d S d S )NPOSIXLY_CORRECT)enterContextr   envselfs    :/opt/python-3.11.14/usr/lib/python3.11/test/test_getopt.pysetUpzGetoptTests.setUp   sD    $$%8%:%:;;((*+++ )(    c                 <     | j         t          j        g|R i | d S N)assertRaisesgetoptGetoptError)r   argskwargss      r   assertErrorzGetoptTests.assertError   s.    &,>t>>>v>>>>>r   c                     |                      t          j        dd                     |                     t          j        dd                     |                     t          j        dd           d S )Naa:b)
assertTruer   short_has_argassertFalser   r
   s    r   test_short_has_argzGetoptTests.test_short_has_arg   sc    ,S$77888-c377888-sC88888r   c                 j   t          j        ddg          \  }}|                     |           |                     |d           t          j        ddg          \  }}|                     |           |                     |d           t          j        ddg          \  }}|                     |           |                     |d           |                     t           j        ddg           |                     t           j        dg            |                     t           j        dddg           d S )Nabcabc=abcddefabcde)r   long_has_argsr   assertEqualr   r   )r   has_argoptions      r   test_long_has_argszGetoptTests.test_long_has_args   s$    .uvh??   ''' .uug>>!!!''' .uvh??!!!(((-uug>>>-ub999-uvg6FGGGGGr   c                    t          j        g ddg           \  }}|                     |dg           |                     |g            t          j        g ddg           \  }}|                     |dg           |                     |g            t          j        g dddg          \  }}|                     |dg           |                     |g            t          j        g ddddg          \  }}|                     |dg           |                     |dg           |                     t           j        g ddg            |                     t           j        g ddg            d S )Nr   -a a1r   r,   1r0   2)r   	do_shortsr&   r   r   optsr   s      r   test_do_shortszGetoptTests.test_do_shorts+   sp   %b#sB77
d
|,,,r"""%b$b99
d}---r""" %b#tcU;;
d}---r"""%b#tc3Z@@
d}---u%%%)2tS"===)2sD"=====r   c                 j   t          j        g ddgg           \  }}|                     |dg           |                     |g            t          j        g ddgg           \  }}|                     |dg           |                     |g            t          j        g ddgg           \  }}|                     |dg           |                     |g            t          j        g dg dg           \  }}|                     |dg           |                     |g            t          j        g d	d
dgg           \  }}|                     |dg           |                     |g            |                     t           j        g ddgg            |                     t           j        g ddgg            d S )Nr    )--abcr-   zabc=1r!   )r7   r0   zabcd=)z--abcdr0   )abr    r"   zfoo=42zfoo-barzfoo=)z--foo42)r   do_longsr&   r   r3   s      r   test_do_longszGetoptTests.test_do_longsC   s   _R<<
d///r"""_R6(B??
d/000r"""_R7)R@@
d0111r"""_R0E0E0ErJJ
d///r"""
 _RIv3GLL
d0111r""""gwCCC"efXrBBBBBr   c                     g d}t          j         |dddg          \  }}|                     |g d           |                     |ddg           |                     t           j         |dddg           d S )	N)r,   r0   -bz	--alpha=2--betar,   3r,   r-   r>   arg1arg2za:bzalpha=beta)r/   )r=   r-   )--alphar1   r>   r-   )r,   r?   r+   rD   r@   rA   alpha)r   r&   r   r   cmdliner4   r   s       r   test_getoptzGetoptTests.test_getopt^   s    1 1 1 ]7EHf3EFF
d  I  I  I 	J 	J 	J
 	/000&8IJJJJJr   c                 r   g d}t          j        |dddg          \  }}|                     |dg           |                     |g d           t          j        g ddg           \  }}|                     |dg           |                     |d	d
g           t          j        |dddg          \  }}|                     |d	g           |                     |g d           d| j        d<   t          j        |dddg          \  }}|                     |d	g           |                     |g d           d S )N)r,   r@   r=   r0   rC   --beta=2zab:rE   zbeta=r@   )r+   )r=   r0   )rC   r-   )r>   r1   )r,   -r=   rK   rK   r+   )r=   rK   z+ab:)r@   r=   r0   rC   rJ   r0   r   )r   
gnu_getoptr&   r	   rF   s       r   test_gnu_getoptzGetoptTests.test_gnu_getopto   s   BBB &w7IJJ
dx(((  B  B  B 	C 	C 	C &'='='=ubII
du%%%
K8999 &w'8JKK
d
|,,,IIIJJJ '*"#&w7IJJ
d
|,,,IIIJJJJJr   c                 ,   t          j         dgddg          \  }}|                     |dg           t          j         dgddg          \  }}|                     |dg           |                     t           j        t           j         dgddg           d S )Nz--help=r-   zhelp=)--helpr-   z--help=x)rO   xhelp)r   r&   r   r   )r   longopts	shortoptss      r   test_issue4629zGetoptTests.test_issue4629   s    $mYKgYGG)N#3444$mZL"wiHH)O#4555&,fmi["vhWWWWWr   N)__name__
__module____qualname__r   r   r   r)   r5   r;   rH   rM   rT    r   r   r   r      s        , , ,
? ? ?9 9 9
H H H"> > >0C C C6K K K"K K K4X X X X Xr   r   c                      dS )a~  
    Examples from the Library Reference:  Doc/lib/libgetopt.tex

    An example using only Unix style options:


    >>> import getopt
    >>> args = '-a -b -cfoo -d bar a1 a2'.split()
    >>> args
    ['-a', '-b', '-cfoo', '-d', 'bar', 'a1', 'a2']
    >>> optlist, args = getopt.getopt(args, 'abc:d:')
    >>> optlist
    [('-a', ''), ('-b', ''), ('-c', 'foo'), ('-d', 'bar')]
    >>> args
    ['a1', 'a2']

    Using long option names is equally easy:


    >>> s = '--condition=foo --testing --output-file abc.def -x a1 a2'
    >>> args = s.split()
    >>> args
    ['--condition=foo', '--testing', '--output-file', 'abc.def', '-x', 'a1', 'a2']
    >>> optlist, args = getopt.getopt(args, 'x', [
    ...     'condition=', 'output-file=', 'testing'])
    >>> optlist
    [('--condition', 'foo'), ('--testing', ''), ('--output-file', 'abc.def'), ('-x', '')]
    >>> args
    ['a1', 'a2']
    NrX   rX   r   r   test_libref_examplesrZ      s      r   c                 R    |                     t          j                               |S r   )addTestdoctestDocTestSuite)loadertestspatterns      r   
load_testsrb      s"    	MM'&(()))Lr   __main__)test.support.os_helperr   r]   unittestr   objectsentinelTestCaser   rZ   rb   rU   mainrX   r   r   <module>rj      s    7 6 6 6 6 6   688BX BX BX BX BX(# BX BX BXH  @  
 zHMOOOOO r   