
    dafg                         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                          yy)    )EnvironmentVarGuardNc                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)GetoptTestsc                 x    | j                  t                     | _        d| j                  v r| j                  d= y y )NPOSIXLY_CORRECT)enterContextr   envselfs    +/root/Python-3.12.4/Lib/test/test_getopt.pysetUpzGetoptTests.setUp   s6    $$%8%:;(*+ )    c                 L     | j                   t        j                  g|i | y N)assertRaisesgetoptGetoptError)r   argskwargss      r   assertErrorzGetoptTests.assertError   s"    &,,>t>v>r   c                     | j                  t        j                  dd             | j                  t        j                  dd             | j	                  t        j                  dd       y )Naa:b)
assertTruer   short_has_argassertFalser   r
   s    r   test_short_has_argzGetoptTests.test_short_has_arg   sN    ,,S$78--c378--sC8r   c                 >   t        j                  ddg      \  }}| j                  |       | j                  |d       t        j                  ddg      \  }}| j	                  |       | j                  |d       t        j                  ddg      \  }}| j	                  |       | j                  |d       | j                  t         j                  ddg       | j                  t         j                  dg        | j                  t         j                  dddg       y )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--uvg6FGr   c                    t        j                  g ddg       \  }}| j                  |dg       | j                  |g        t        j                  g ddg       \  }}| j                  |dg       | j                  |g        t        j                  g dddg      \  }}| j                  |dg       | j                  |g        t        j                  g ddddg      \  }}| j                  |dg       | j                  |dg       | j                  t         j                  g ddg        | j                  t         j                  g ddg        y )Nr   -a a1r   r,   1r0   2)r   	do_shortsr&   r   r   optsr   s      r   test_do_shortszGetoptTests.test_do_shorts+   s4   %%b#sB7
d
|,r"%%b$b9
d}-r" %%b#tcU;
d}-r"%%b#tc3Z@
d}-u%))2tS"=))2sD"=r   c                 "   t        j                  g ddgg       \  }}| j                  |dg       | j                  |g        t        j                  g ddgg       \  }}| j                  |dg       | j                  |g        t        j                  g ddgg       \  }}| j                  |dg       | j                  |g        t        j                  g dg dg       \  }}| j                  |dg       | j                  |g        t        j                  g d	d
dgg       \  }}| j                  |dg       | j                  |g        | j                  t         j                  g ddgg        | j                  t         j                  g ddgg        y )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   sm   __R<
d/r"__R6(B?
d/0r"__R7)R@
d01r"__R0ErJ
d/r"
 __RIv3GL
d01r""gwC"efXrBr   c                     g d}t        j                   |dddg      \  }}| j                  |g d       | j                  |ddg       | j                  t         j                   |dddg       y )	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^   sq    1 ]]7EHf3EF
d  I 	J
 	/0&8IJr   c                 B   g d}t        j                  |dddg      \  }}| j                  |dg       | j                  |g d       t        j                  g ddg       \  }}| j                  |dg       | j                  |d	d
g       t        j                  |dddg      \  }}| j                  |d	g       | j                  |g d       d| j                  d<   t        j                  |dddg      \  }}| j                  |d	g       | j                  |g d       y )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 &&w7IJ
dx(  B 	C &&'=ubI
du%
K89 &&w'8JK
d
|,IJ '*"#&&w7IJ
d
|,IJr   c                 &   t        j                   dgddg      \  }}| j                  |dg       t        j                   dgddg      \  }}| j                  |dg       | j                  t         j                  t         j                   dgddg       y )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    $mmYKgYG)N#34$mmZL"wiH)O#45&,,fmmi["vhWr   N)__name__
__module____qualname__r   r   r   r)   r5   r;   rH   rM   rT    r   r   r   r      s4    ,
?9
H">0C6K"K4Xr   r   c                       y)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                 L    |j                  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      sV    7   8BX(## BXH@
 zHMMO r   