§
    Ètºf[  ã                   óÎ  — d Z ddlmZ ddlmZ  G d„ dej        ¦  «        Z G d„ dej        ¦  «        Z G d„ d	ej        ¦  «        Z	 G d
„ dej        ¦  «        Z
 G d„ dej        ¦  «        Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Z G d „ d!ej        ¦  «        Z G d"„ d#ej        ¦  «        Z G d$„ d%ej        ¦  «        Z G d&„ d'ej        ¦  «        Zd(S ))zK
Tests for L{twisted.python.usage}, a command line option parsing library.
é    )Úusage)Úunittestc                   óF   — e Zd Zg d¢g d¢g d¢g d¢gZg d¢ddggZd„ Zd	„ Zd
S )ÚWellBehaved)ÚlongÚwÚdefaultzand a docstring)ÚanotherÚnzno docstring)ÚlongonlyNÚnoshort)Ú	shortlessNÚexceptzthis one got docstring)ÚaflagÚfzO

                 flagallicious docstringness for this here

                 ÚfloutÚoc                 ó   — d| j         d<   d S )NúPONY!Úmyflag©Úopts©Úselfs    úV/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/test/test_usage.pyÚ
opt_myflagzWellBehaved.opt_myflag!   s   € Ø%ˆŒ	�(ÑÐÐó    c                 ó    — |› d�| j         d<   d S )Nz WITH A PONY!Úmyparamr   ©r   Úvalues     r   Úopt_myparamzWellBehaved.opt_myparam$   s   € Ø"'Ð6Ð6Ð6ˆŒ	�)ÑÐÐr   N)Ú__name__Ú
__module__Ú__qualname__ÚoptParametersÚoptFlagsr   r"   © r   r   r   r      s|   € € € € € à3Ð3Ð3Ø(Ð(Ð(Ø%Ð%Ð%Ø?Ð?Ð?ð	€Mð	
ð 	
ð 	
ð 
�#ˆð€Hð&ð &ð &ð7ð 7ð 7ð 7ð 7r   r   c                   ó*   — e Zd ZdZd„ Zd„ Zd„ Zd„ ZdS )ÚParseCorrectnessTestszZ
    Test L{usage.Options.parseOptions} for correct values under
    good conditions.
    c                 óœ   — d                      ¦   «         | _        t          ¦   «         | _        | j                             | j        ¦  «         dS )zL
        Instantiate and parseOptions a well-behaved Options class.
        úA--long Alpha -n Beta --shortless Gamma -f --myflag --myparam TofuN)ÚsplitÚniceArgVr   ÚniceÚparseOptionsr   s    r   ÚsetUpzParseCorrectnessTests.setUp.   sC   € ð Vß
Š%‰'Œ'ð 	Œõ  ‘M”MˆŒ	àŒ	×Ò˜tœ}Ñ-Ô-Ð-Ð-Ð-r   c                 ó6  — |                       | j        j        d         d¦  «         |                       | j        j        d         d¦  «         |                       | j        j        d         d¦  «         |                       | j        j        d         d¦  «         d	S )
z1
        Parameters have correct values.
        r   ÚAlphar
   ÚBetar   r   r   ÚGammaN©ÚassertEqualr/   r   r   s    r   Útest_checkParametersz*ParseCorrectnessTests.test_checkParameters;   s†   € ð 	×Ò˜œœ¨Ô/°Ñ9Ô9Ð9Ø×Ò˜œœ¨	Ô2°FÑ;Ô;Ð;Ø×Ò˜œœ¨
Ô3°YÑ?Ô?Ð?Ø×Ò˜œœ¨Ô4°gÑ>Ô>Ð>Ð>Ð>r   c                 óž   — |                       | j        j        d         d¦  «         |                       | j        j        d         d¦  «         dS )z,
        Flags have correct values.
        r   é   r   r   Nr6   r   s    r   Útest_checkFlagsz%ParseCorrectnessTests.test_checkFlagsD   sH   € ð 	×Ò˜œœ¨Ô0°!Ñ4Ô4Ð4Ø×Ò˜œœ¨Ô0°!Ñ4Ô4Ð4Ð4Ð4r   c                 óž   — |                       | j        j        d         d¦  «         |                       | j        j        d         d¦  «         dS )zB
        Custom flags and parameters have correct values.
        r   r   r   zTofu WITH A PONY!Nr6   r   s    r   Útest_checkCustomsz'ParseCorrectnessTests.test_checkCustomsK   sI   € ð 	×Ò˜œœ¨Ô1°7Ñ;Ô;Ð;Ø×Ò˜œœ¨	Ô2Ð4GÑHÔHÐHÐHÐHr   N)r#   r$   r%   Ú__doc__r1   r8   r;   r=   r(   r   r   r*   r*   (   s_   € € € € € ðð ð
.ð .ð .ð?ð ?ð ?ð5ð 5ð 5ðIð Ið Ið Ið Ir   r*   c                   óL   — e Zd Zddddegddddegdddd	egd
dddeggZd„ ZeZdS )ÚTypedOptionsÚfoointNéˆ  zFoo intÚfoofloatçìQ¸…ë@z	Foo floatÚeggintzEgg int without defaultÚeggfloatzEgg float without defaultc                 ó   — || _         dS )zg
        This option has an underscore in its name to exercise the _ to -
        translation.
        N)ÚunderscoreValuer    s     r   Úopt_under_scorezTypedOptions.opt_under_score[   s   € ð
  %ˆÔÐÐr   )r#   r$   r%   ÚintÚfloatr&   rI   Úopt_ur(   r   r   r@   r@   S   se   € € € € € à	�4˜˜i¨Ð-Ø	�T˜4 ¨eÐ4Ø	�4˜Ð8¸#Ð>Ø	�T˜4Ð!<¸eÐDð	€Mð%ð %ð %ð €E€E€Er   r@   c                   ó6   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	Ú
TypedTestszK
    Test L{usage.Options.parseOptions} for options with forced types.
    c                 ó,   — t          ¦   «         | _        d S ©N)r@   r   r   s    r   r1   zTypedTests.setUpj   s   € Ý!‘^”^ˆŒ
ˆ
ˆ
r   c                 ó  — g }| j                              |¦  «         |                      | j         j        d         d¦  «         |                      | j         j        d         t
          ¦  «         |                      | j         j        d         d¦  «         |                      | j         j        d         t          ¦  «         |                      | j         j        d         ¦  «         |                      | j         j        d         ¦  «         dS )z,
        Default values are parsed.
        rA   rB   rC   rD   rE   rF   N)r   r0   r7   r   ÚassertIsInstancerJ   rK   ÚassertIsNone©r   ÚargVs     r   Útest_defaultValueszTypedTests.test_defaultValuesm   sÛ   € ð ˆØŒ
×Ò Ñ%Ô%Ð%Ø×Ò˜œœ¨Ô2°CÑ8Ô8Ð8Ø×Ò˜dœjœo¨hÔ7½Ñ=Ô=Ð=Ø×Ò˜œœ¨Ô4°dÑ;Ô;Ð;Ø×Ò˜dœjœo¨jÔ9½5ÑAÔAÐAØ×Ò˜$œ*œ/¨(Ô3Ñ4Ô4Ð4Ø×Ò˜$œ*œ/¨*Ô5Ñ6Ô6Ð6Ð6Ð6r   c                 óê  — d                      ¦   «         }| j                             |¦  «         |                      | j        j        d         d¦  «         |                      | j        j        d         t          ¦  «         |                      | j        j        d         d¦  «         |                      | j        j        d         t          ¦  «         |                      | j        j        d         d¦  «         |                      | j        j        d         t          ¦  «         |                      | j        j        d         d	¦  «         |                      | j        j        d         t          ¦  «         d
S )z2
        int and float values are parsed.
        z8--fooint 912 --foofloat -823.1 --eggint 32 --eggfloat 21rA   i�  rC   gÍÌÌÌÌ¸‰ÀrE   é    rF   g      5@N)r-   r   r0   r7   r   rR   rJ   rK   rT   s     r   Útest_parsingValueszTypedTests.test_parsingValuesz   s*  € ð N×TÒTÑVÔVˆØŒ
×Ò Ñ%Ô%Ð%Ø×Ò˜œœ¨Ô2°CÑ8Ô8Ð8Ø×Ò˜dœjœo¨hÔ7½Ñ=Ô=Ð=Ø×Ò˜œœ¨Ô4°fÑ=Ô=Ð=Ø×Ò˜dœjœo¨jÔ9½5ÑAÔAÐAØ×Ò˜œœ¨Ô2°BÑ7Ô7Ð7Ø×Ò˜dœjœo¨hÔ7½Ñ=Ô=Ð=Ø×Ò˜œœ¨Ô4°dÑ;Ô;Ð;Ø×Ò˜dœjœo¨jÔ9½5ÑAÔAÐAÐAÐAr   c                 ó~   — | j                              ddg¦  «         |                      | j         j        d¦  «         dS )zw
        A dash in an option name is translated to an underscore before being
        dispatched to a handler.
        z--under-scoreÚfooN©r   r0   r7   rH   r   s    r   Útest_underscoreOptionz TypedTests.test_underscoreOption‰   s@   € ð
 	Œ
×Ò °%Ð 8Ñ9Ô9Ð9Ø×Ò˜œÔ3°UÑ;Ô;Ð;Ð;Ð;r   c                 ó~   — | j                              ddg¦  «         |                      | j         j        d¦  «         dS )zE
        An option name with a dash in it can have an alias.
        z-uÚbarNr\   r   s    r   Útest_underscoreOptionAliasz%TypedTests.test_underscoreOptionAlias‘   s?   € ð 	Œ
×Ò  u Ñ.Ô.Ð.Ø×Ò˜œÔ3°UÑ;Ô;Ð;Ð;Ð;r   c                 ó„   — d                      ¦   «         }|                      t          j        | j        j        |¦  «         dS )z7
        Passing wrong values raises an error.
        z--fooint eggN)r-   ÚassertRaisesr   Ú
UsageErrorr0   rT   s     r   Útest_invalidValueszTypedTests.test_invalidValues˜   s;   € ð ×#Ò#Ñ%Ô%ˆØ×Ò�%Ô*¨D¬JÔ,CÀTÑJÔJÐJÐJÐJr   N)
r#   r$   r%   r>   r1   rV   rY   r]   r`   rd   r(   r   r   rN   rN   e   s€   € € € € € ðð ð$ð $ð $ð7ð 7ð 7ðBð Bð Bð<ð <ð <ð<ð <ð <ðKð Kð Kð Kð Kr   rN   c                   ó   — e Zd Zg d¢gZdS )ÚWrongTypedOptions)ÚbarwrongNNzBar with wrong coerceÚheN)r#   r$   r%   r&   r(   r   r   rf   rf       s   € € € € € ØLÐLÐLÐM€M€M€Mr   rf   c                   ó6   — e Zd Zd„ Zd„ ZddddegddddeggZdS )ÚWeirdCallableOptionsc                 ó    — t          d¦  «        ‚)NÚOuch)ÚRuntimeError©r!   s    r   Ú_barzWeirdCallableOptions._bar¥   s   € Ý˜6Ñ"Ô"Ð"r   c                 ó    — t          d¦  «        ‚)NÚYay)Ú
ValueErrorrn   s    r   Ú_foozWeirdCallableOptions._foo¨   s   € Ý˜ÑÔÐr   rg   NzBar with strange callableÚfoowrongzFoo with strange callable)r#   r$   r%   ro   rs   r&   r(   r   r   rj   rj   ¤   sS   € € € € € ð#ð #ð #ð ð  ð  ð 
�T˜4Ð!<¸dÐCØ	�T˜4Ð!<¸dÐCð€M€M€Mr   rj   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )ÚWrongTypedTestszF
    Test L{usage.Options.parseOptions} for wrong coerce options.
    c                 óŒ   — t          ¦   «         }d                     ¦   «         }|                      t          |j        |¦  «         dS )z2
        Using a non-callable type fails.
        z--barwrong eggN)rf   r-   rb   Ú	TypeErrorr0   ©r   ÚusrU   s      r   Útest_nonCallablez WrongTypedTests.test_nonCallable¶   s@   € õ Ñ Ô ˆØ×%Ò%Ñ'Ô'ˆØ×Ò�) R¤_°dÑ;Ô;Ð;Ð;Ð;r   c                 óP   — t          ¦   «         }g }|                     |¦  «         dS )zP
        The coerce functions are not called if no values are provided.
        N)rj   r0   ry   s      r   Útest_notCalledInDefaultz'WrongTypedTests.test_notCalledInDefault¾   s,   € õ "Ñ#Ô#ˆØˆØ
�Š˜ÑÔÐÐÐr   c                 ób  — t          ¦   «         }d                     ¦   «         }|                      t          j        |j        |¦  «        }|                      t          |¦  «        d¦  «         t          ¦   «         }d                     ¦   «         }|                      t          |j        |¦  «         dS )zI
        Errors raised by coerce functions are handled properly.
        z--foowrong blahz&Parameter type enforcement failed: Yayz--barwrong blahN)	rj   r-   rb   r   rc   r0   r7   Ústrrm   )r   rz   rU   Úes       r   Útest_weirdCallablez"WrongTypedTests.test_weirdCallableÆ   s•   € õ "Ñ#Ô#ˆØ ×&Ò&Ñ(Ô(ˆà×Ò�eÔ.°´ÀÑFÔFˆØ×Ò�˜Q™œÐ!IÑJÔJÐJå!Ñ#Ô#ˆØ ×&Ò&Ñ(Ô(ˆà×Ò�,¨¬¸Ñ>Ô>Ð>Ð>Ð>r   N)r#   r$   r%   r>   r{   r}   r�   r(   r   r   rv   rv   ±   sK   € € € € € ðð ð<ð <ð <ðð ð ð?ð ?ð ?ð ?ð ?r   rv   c                   ó   — e Zd Zd„ ZdS )ÚOutputTestsc                 ó¶   — t          ¦   «         }|                      t          j        |j        dg¦  «        }|                      t          |¦  «        d¦  «         dS )zF
        Error output case adjustment does not mangle options
        z-Zzoption -Z not recognizedN)r   rb   r   rc   r0   r7   r   )r   Úoptr€   s      r   Útest_uppercasingzOutputTests.test_uppercasing×   sO   € õ ‰mŒmˆØ×Ò�eÔ.°Ô0@À4À&ÑIÔIˆØ×Ò�˜Q™œÐ!;Ñ<Ô<Ð<Ð<Ð<r   N)r#   r$   r%   r†   r(   r   r   rƒ   rƒ   Ö   s#   € € € € € ð=ð =ð =ð =ð =r   rƒ   c                   ó   — e Zd ZdgZdgZdS )ÚInquisitionOptions)Úexpectr€   )útorture-deviceÚtúcomfy-chairzset preferred torture deviceN)r#   r$   r%   r'   r&   r(   r   r   rˆ   rˆ   à   s%   € € € € € àð€Hð 	Oð€M€M€Mr   rˆ   c                   ó   — e Zd ZddgZdS )ÚHolyQuestOptions)Ú	horsebackÚhzuse a horse)ú	for-grailÚgN)r#   r$   r%   r'   r(   r   r   rŽ   rŽ   é   s   € € € € € à)Øð€H€H€Hr   rŽ   c                   ó,   — e Zd ZdgZddedfddedfgZdS )	ÚSubCommandOptions)úeuropian-swallowNz$set default swallow type to EuropianÚinquisitionÚinquestzPerform an inquisitionÚ	holyquestÚquestzEmbark upon a holy questN)r#   r$   r%   r'   rˆ   rŽ   ÚsubCommandsr(   r   r   r”   r”   ð   s=   € € € € € àJð€Hð 
˜	Ð#5Ð7OÐPØ	�gÐ/Ð1KÐLð€K€K€Kr   r”   c                   óB   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
S )ÚSubCommandTestszJ
    Test L{usage.Options.parseOptions} for options with subcommands.
    c                 ó~  — t          ¦   «         }|                     ddg¦  «         |                      |d         ¦  «         |                      |j        d¦  «         |                      |j        t          ¦  «         |                      |j        d         ¦  «         |                      |j        d         d¦  «         dS )z-
        A subcommand is recognized.
        ú--europian-swallowr–   r•   r‰   rŠ   rŒ   N)	r”   r0   Ú
assertTruer7   Ú
subCommandrR   Ú
subOptionsrˆ   ÚassertFalse©r   r   s     r   Útest_simpleSubcommandz%SubCommandTests.test_simpleSubcommandÿ   s¯   € õ ÑÔˆØ	�ŠÐ,¨mÐ<Ñ=Ô=Ð=Ø�Š˜Ð,Ô-Ñ.Ô.Ð.Ø×Ò˜œ }Ñ5Ô5Ð5Ø×Ò˜aœlÕ,>Ñ?Ô?Ð?Ø×Ò˜œ hÔ/Ñ0Ô0Ð0Ø×Ò˜œÐ&6Ô7¸ÑGÔGÐGÐGÐGr   c                 ó~  — t          ¦   «         }|                     g d¢¦  «         |                      |d         ¦  «         |                      |j        d¦  «         |                      |j        t          ¦  «         |                      |j        d         ¦  «         |                      |j        d         d¦  «         dS )zA
        Flags and options of a subcommand are assigned.
        )r–   ú--expectú--torture-device=featherr•   r–   r‰   rŠ   ÚfeatherN©	r”   r0   r¢   r7   r    rR   r¡   rˆ   rŸ   r£   s     r   Ú"test_subcommandWithFlagsAndOptionsz2SubCommandTests.test_subcommandWithFlagsAndOptions  s°   € õ ÑÔˆØ	�ŠÐNÐNÐNÑOÔOÐOØ×Ò˜Ð-Ô.Ñ/Ô/Ð/Ø×Ò˜œ }Ñ5Ô5Ð5Ø×Ò˜aœlÕ,>Ñ?Ô?Ð?Ø�Š˜œ XÔ.Ñ/Ô/Ð/Ø×Ò˜œÐ&6Ô7¸ÑCÔCÐCÐCÐCr   c                 ó~  — t          ¦   «         }|                     g d¢¦  «         |                      |d         ¦  «         |                      |j        d¦  «         |                      |j        t          ¦  «         |                      |j        d         ¦  «         |                      |j        d         d¦  «         dS )zG
        Flags and options of a subcommand alias are assigned.
        )r—   r¦   r§   r•   r–   r‰   rŠ   r¨   Nr©   r£   s     r   Ú'test_subcommandAliasWithFlagsAndOptionsz7SubCommandTests.test_subcommandAliasWithFlagsAndOptions  s°   € õ ÑÔˆØ	�ŠÐJÐJÐJÑKÔKÐKØ×Ò˜Ð-Ô.Ñ/Ô/Ð/Ø×Ò˜œ }Ñ5Ô5Ð5Ø×Ò˜aœlÕ,>Ñ?Ô?Ð?Ø�Š˜œ XÔ.Ñ/Ô/Ð/Ø×Ò˜œÐ&6Ô7¸ÑCÔCÐCÐCÐCr   c                 ó|  — t          ¦   «         }|                     ddg¦  «         |                      |d         ¦  «         |                      |j        d¦  «         |                      |j        t          ¦  «         |                      |j        d         ¦  «         |                      |j        d         ¦  «         dS )zG
        Flags and options of another subcommand are assigned.
        r˜   z--for-grailr•   r�   r‘   N)	r”   r0   r¢   r7   r    rR   r¡   rŽ   rŸ   r£   s     r   Ú)test_anotherSubcommandWithFlagsAndOptionsz9SubCommandTests.test_anotherSubcommandWithFlagsAndOptions#  s«   € õ ÑÔˆØ	�Š˜ ]Ð3Ñ4Ô4Ð4Ø×Ò˜Ð-Ô.Ñ/Ô/Ð/Ø×Ò˜œ {Ñ3Ô3Ð3Ø×Ò˜aœlÕ,<Ñ=Ô=Ð=Ø×Ò˜œ kÔ2Ñ3Ô3Ð3Ø�Š˜œ [Ô1Ñ2Ô2Ð2Ð2Ð2r   c                 óþ   — t          ¦   «         }|                     dg¦  «         |                      |d         ¦  «         |                      |j        ¦  «         |                      t          |d¦  «        ¦  «         dS )z€
        If no subcommand is specified and no default subcommand is assigned,
        a subcommand will not be implied.
        rž   r•   r¡   N)r”   r0   rŸ   rS   r    r¢   Úhasattrr£   s     r   Útest_noSubcommandz!SubCommandTests.test_noSubcommand/  sw   € õ
 ÑÔˆØ	�ŠÐ,Ð-Ñ.Ô.Ð.Ø�Š˜Ð,Ô-Ñ.Ô.Ð.Ø×Ò˜!œ,Ñ'Ô'Ð'Ø×Ò�  LÑ1Ô1Ñ2Ô2Ð2Ð2Ð2r   c                 óŠ  — t          ¦   «         }d|_        |                     dg¦  «         |                      |d         ¦  «         |                      |j        d¦  «         |                      |j        t          ¦  «         |  	                    |j        d         ¦  «         |                      |j        d         d¦  «         dS )	zK
        Flags and options in the default subcommand are assigned.
        r—   rž   r•   r–   r‰   rŠ   rŒ   N)
r”   ÚdefaultSubCommandr0   rŸ   r7   r    rR   r¡   rˆ   r¢   r£   s     r   Útest_defaultSubcommandz&SubCommandTests.test_defaultSubcommand:  sµ   € õ ÑÔˆØ'ˆÔØ	�ŠÐ,Ð-Ñ.Ô.Ð.Ø�Š˜Ð,Ô-Ñ.Ô.Ð.Ø×Ò˜œ }Ñ5Ô5Ð5Ø×Ò˜aœlÕ,>Ñ?Ô?Ð?Ø×Ò˜œ hÔ/Ñ0Ô0Ð0Ø×Ò˜œÐ&6Ô7¸ÑGÔGÐGÐGÐGr   c                 ó<  ‡—  G d„ dt           j        ¦  «        Š G ˆfd„dt           j        ¦  «        } |¦   «         }|                     dg¦  «         |                      t	          |j        d¦  «        ¦  «         |                      |j        j        |¦  «         dS )zw
        The parseOptions method from the Options object specified for the
        given subcommand is called.
        c                   ó   — e Zd Zd„ ZdS )úDSubCommandTests.test_subCommandParseOptionsHasParent.<locals>.SubOptc                 óR   — | j         | _        t          j        j        | g|¢R i |¤Ž d S rP   )ÚparentÚ	sawParentr   ÚOptionsr0   )r   ÚaÚkws      r   r0   zQSubCommandTests.test_subCommandParseOptionsHasParent.<locals>.SubOpt.parseOptionsN  s4   € Ø!%¤�”Ý”Ô*¨4Ð:°!Ð:Ð:Ð:°rÐ:Ð:Ð:Ð:Ð:r   N)r#   r$   r%   r0   r(   r   r   ÚSubOptr·   M  s#   € € € € € ð;ð ;ð ;ð ;ð ;r   r¾   c                   ó   •— e Zd Zdd” dfgZdS )úASubCommandTests.test_subCommandParseOptionsHasParent.<locals>.Optr[   r   r_   N©r#   r$   r%   rš   ©r¾   s   €r   ÚOptrÀ   R  s"   ø€ € € € € à˜˜V UÐ+ðˆKˆKˆKr   rÃ   r[   rº   N)r   r»   r0   rŸ   r°   r¡   r7   rº   )r   rÃ   r   r¾   s      @r   Ú$test_subCommandParseOptionsHasParentz4SubCommandTests.test_subCommandParseOptionsHasParentG  sÅ   ø€ ð	;ð 	;ð 	;ð 	;ð 	;•U”]ñ 	;ô 	;ð 	;ð
	ð 	ð 	ð 	ð 	ð 	ð 	•%”-ñ 	ô 	ð 	ð
 ˆC‰EŒEˆØ	�Š˜�wÑÔÐØ�Š� ¤¨kÑ:Ô:Ñ;Ô;Ð;Ø×Ò˜œÔ/°Ñ3Ô3Ð3Ð3Ð3r   c                 ó@  ‡—  G d„ dt           j        ¦  «        Š G ˆfd„dt           j        ¦  «        } G ˆfd„dt           j        ¦  «        } |¦   «         }|                     dg¦  «          |¦   «         }|                     dg¦  «         |                      t	          |j        d	¦  «        ¦  «         |                      t	          |j        d	¦  «        ¦  «         |                      |j        j        |¦  «         |                      |j        j        |¦  «         d
S )zh
        The .parent pointer is correct even when the same Options class is
        used twice.
        c                   ó   — e Zd ZdS )ú:SubCommandTests.test_subCommandInTwoPlaces.<locals>.SubOptN)r#   r$   r%   r(   r   r   r¾   rÇ   b  s   € € € € € ØˆDr   r¾   c                   ó   •— e Zd Zdd” dfgZdS )ú:SubCommandTests.test_subCommandInTwoPlaces.<locals>.OptFoor[   r   ÚquuxNrÁ   rÂ   s   €r   ÚOptFoorÉ   e  ó"   ø€ € € € € à˜˜V VÐ,ðˆKˆKˆKr   rË   c                   ó   •— e Zd Zdd” dfgZdS )ú:SubCommandTests.test_subCommandInTwoPlaces.<locals>.OptBarr_   ÚbrÊ   NrÁ   rÂ   s   €r   ÚOptBarrÎ   j  rÌ   r   rÐ   r[   r_   r¹   N)r   r»   r0   rŸ   r°   r¡   ÚfailUnlessIdenticalr¹   )r   rË   rÐ   ÚoFooÚoBarr¾   s        @r   Útest_subCommandInTwoPlacesz*SubCommandTests.test_subCommandInTwoPlaces\  sW  ø€ ð	ð 	ð 	ð 	ð 	•U”]ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	ð 	ð 	•U”]ñ 	ô 	ð 	ð
	ð 	ð 	ð 	ð 	ð 	ð 	•U”]ñ 	ô 	ð 	ð
 ˆv‰xŒxˆØ×Ò˜5˜'Ñ"Ô"Ð"Øˆv‰xŒxˆØ×Ò˜5˜'Ñ"Ô"Ð"Ø�Š� ¤°Ñ:Ô:Ñ;Ô;Ð;Ø�Š� ¤°Ñ:Ô:Ñ;Ô;Ð;Ø× Ò  ¤Ô!7¸Ñ>Ô>Ð>Ø× Ò  ¤Ô!7¸Ñ>Ô>Ð>Ð>Ð>r   N)r#   r$   r%   r>   r¤   rª   r¬   r®   r±   r´   rÄ   rÔ   r(   r   r   rœ   rœ   ú   s¢   € € € € € ðð ð
Hð 
Hð 
Hð
Dð 
Dð 
Dð
Dð 
Dð 
Dð
3ð 
3ð 
3ð	3ð 	3ð 	3ðHð Hð Hð4ð 4ð 4ð*?ð ?ð ?ð ?ð ?r   rœ   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )ÚHelpStringTestsz&
    Test generated help strings.
    c                 ó^   — d                      ¦   «         | _        t          ¦   «         | _        dS )z;
        Instantiate a well-behaved Options class.
        r,   N)r-   r.   r   r/   r   s    r   r1   zHelpStringTests.setUp~  s)   € ð Vß
Š%‰'Œ'ð 	Œõ  ‘M”MˆŒ	ˆ	ˆ	r   c                 ó”   — 	 | j                              ¦   «          dS # t          $ r }|                      |¦  «         Y d}~dS d}~ww xY w)z,
        __str__ shouldn't go boom.
        N)r/   Ú__str__Ú	ExceptionÚfail)r   r€   s     r   Útest_noGoBoomzHelpStringTests.test_noGoBoom‰  s[   € ð	ØŒI×ÒÑÔÐÐÐøÝð 	ð 	ð 	Ø�IŠI�a‰LŒLˆLˆLˆLˆLˆLˆLˆLøøøøð	øøøs   ‚ �
A§AÁAc                 ó  — d„ t          | j        ¦  «                             ¦   «         D ¦   «         }|                      t	          |¦  «        dk    ¦  «         |                      |d                              d¦  «        dk    ¦  «         dS )zK
        Extra whitespace in flag and parameters docs is stripped.
        c                 óD   — g | ]}|                      d ¦  «        dk    ¯|‘ŒS )r   r   )Úfind)Ú.0Úss     r   ú
<listcomp>zJHelpStringTests.test_whitespaceStripFlagsAndParameters.<locals>.<listcomp>˜  s,   € ÐPÐPÐP�q¸1¿6º6À'¹?¼?ÈaÒ;OÐ;O�Ð;OÐ;OÐ;Or   r   ÚflagalliciousN)r   r/   Ú
splitlinesrŸ   Úlenrß   )r   Úliness     r   Ú&test_whitespaceStripFlagsAndParametersz6HelpStringTests.test_whitespaceStripFlagsAndParameters’  su   € ð QÐP�C ¤	™NœN×5Ò5Ñ7Ô7ÐPÑPÔPˆØ�Š�˜E™
œ
 QšÑ'Ô'Ð'Ø�Š˜˜aœŸš oÑ6Ô6¸!Ò;Ñ<Ô<Ð<Ð<Ð<r   N)r#   r$   r%   r>   r1   rÜ   rç   r(   r   r   rÖ   rÖ   y  sK   € € € € € ðð ð	"ð 	"ð 	"ðð ð ð=ð =ð =ð =ð =r   rÖ   c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚPortCoerceTestsz3
    Test the behavior of L{usage.portCoerce}.
    c                 óö   — |                       dt          j        d¦  «        ¦  «         |                       dt          j        d¦  «        ¦  «         |                       dt          j        d¦  «        ¦  «         dS )z4
        Test the answers with valid input.
        r   Ú0iŠ  Ú3210iÿÿ  Ú65535N)r7   r   Ú
portCoercer   s    r   Útest_validCoercez PortCoerceTests.test_validCoerce¢  sm   € ð 	×Ò˜�EÔ,¨SÑ1Ô1Ñ2Ô2Ð2Ø×Ò˜�uÔ/°Ñ7Ô7Ñ8Ô8Ð8Ø×Ò˜¥Ô 0°Ñ 9Ô 9Ñ:Ô:Ð:Ð:Ð:r   c                 ó6  — |                       t          t          j        d¦  «         |                       t          t          j        d¦  «         |                       t          t          j        d¦  «         |                       t          t          j        d¦  «         dS )z"
        Test error path.
        Ú z-21Ú212189r[   N)rb   rr   r   rî   r   s    r   Útest_errorCoercez PortCoerceTests.test_errorCoerceª  sv   € ð 	×Ò�*¥eÔ&6¸Ñ;Ô;Ð;Ø×Ò�*¥eÔ&6¸Ñ>Ô>Ð>Ø×Ò�*¥eÔ&6¸ÑAÔAÐAØ×Ò�*¥eÔ&6¸Ñ>Ô>Ð>Ð>Ð>r   N)r#   r$   r%   r>   rï   ró   r(   r   r   ré   ré   �  s<   € € € € € ðð ð;ð ;ð ;ð?ð ?ð ?ð ?ð ?r   ré   c                   óN   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ ZdS )ÚZshCompleterTestsz‹
    Test the behavior of the various L{twisted.usage.Completer} classes
    for producing output usable by zsh tab-completion system.
    c                 ó0  — t          j        ¦   «         }|                     dt           j        ¦  «        }|                      |d¦  «         t          j        dd¬¦  «        }|                     dt           j        ¦  «        }|                      |d¦  «         dS )zX
        Completer produces zsh shell-code that produces no completion matches.
        úsome-optionz:some-option:úsome actionT©ÚdescrÚrepeatú*:some action:N)r   Ú	CompleterÚ
_shellCodeÚ_ZSHr7   ©r   ÚcÚgots      r   Útest_completerz ZshCompleterTests.test_completerº  s‚   € õ ŒOÑÔˆØ�lŠl˜=­%¬*Ñ5Ô5ˆØ×Ò˜˜oÑ.Ô.Ð.åŒO -¸Ð=Ñ=Ô=ˆØ�lŠl˜=­%¬*Ñ5Ô5ˆØ×Ò˜Ð.Ñ/Ô/Ð/Ð/Ð/r   c                 óÆ  — t          j        ¦   «         }|                     dt           j        ¦  «        }|                      |d¦  «         t          j        d¦  «        }|                     dt           j        ¦  «        }|                      |d¦  «         t          j        ddd¬¦  «        }|                     dt           j        ¦  «        }|                      |d¦  «         d	S )
zn
        CompleteFiles produces zsh shell-code that completes file names
        according to a glob.
        r÷   z:some-option (*):_files -g "*"z*.pyz$:some-option (*.py):_files -g "*.py"rø   Trù   z%*:some action (*.py):_files -g "*.py"N)r   ÚCompleteFilesrþ   rÿ   r7   r   s      r   Ú
test_fileszZshCompleterTests.test_filesÆ  sÃ   € õ
 ÔÑ!Ô!ˆØ�lŠl˜=­%¬*Ñ5Ô5ˆØ×Ò˜Ð>Ñ?Ô?Ð?åÔ Ñ'Ô'ˆØ�lŠl˜=­%¬*Ñ5Ô5ˆØ×Ò˜ÐDÑEÔEÐEåÔ ¨mÀDÐIÑIÔIˆØ�lŠl˜=­%¬*Ñ5Ô5ˆØ×Ò˜ÐEÑFÔFÐFÐFÐFr   c                 ó0  — t          j        ¦   «         }|                     dt           j        ¦  «        }|                      |d¦  «         t          j        dd¬¦  «        }|                     dt           j        ¦  «        }|                      |d¦  «         dS )zV
        CompleteDirs produces zsh shell-code that completes directory names.
        r÷   z:some-option:_directoriesrø   Trù   z*:some action:_directoriesN)r   ÚCompleteDirsrþ   rÿ   r7   r   s      r   Ú	test_dirszZshCompleterTests.test_dirs×  s…   € õ ÔÑ Ô ˆØ�lŠl˜=­%¬*Ñ5Ô5ˆØ×Ò˜Ð9Ñ:Ô:Ð:åÔ ]¸4Ð@Ñ@Ô@ˆØ�lŠl˜=­%¬*Ñ5Ô5ˆØ×Ò˜Ð:Ñ;Ô;Ð;Ð;Ð;r   c                 óÐ  — t          j        d¦  «        }|                     dt           j        ¦  «        }|                      |d¦  «         t          j        g d¢¦  «        }|                     dt           j        ¦  «        }|                      |d¦  «         t          j        g d¢dd¬¦  «        }|                     dt           j        ¦  «        }|                      |d	¦  «         d
S )zw
        CompleteList produces zsh shell-code that completes words from a fixed
        list of possibilities.
        ÚABCr÷   z:some-option:(A B C)©Ú1Ú2Ú3z:some-option:(1 2 3)rø   Trù   z*:some action:(1 2 3)N)r   ÚCompleteListrþ   rÿ   r7   r   s      r   Ú	test_listzZshCompleterTests.test_listã  sÍ   € õ
 Ô˜uÑ%Ô%ˆØ�lŠl˜=­%¬*Ñ5Ô5ˆØ×Ò˜Ð4Ñ5Ô5Ð5åÔ˜˜˜Ñ/Ô/ˆØ�lŠl˜=­%¬*Ñ5Ô5ˆØ×Ò˜Ð4Ñ5Ô5Ð5åÔ˜˜˜°mÈDÐQÑQÔQˆØ�lŠl˜=­%¬*Ñ5Ô5ˆØ×Ò˜Ð5Ñ6Ô6Ð6Ð6Ð6r   c                 óÔ  — t          j        d¦  «        }|                     dt           j        ¦  «        }|                      |d¦  «         t          j        g d¢¦  «        }|                     dt           j        ¦  «        }|                      |d¦  «         t          j        g d¢dd¬¦  «        }|                     dt           j        ¦  «        }d	}|                      ||¦  «         d
S )z•
        CompleteMultiList produces zsh shell-code that completes multiple
        comma-separated words from a fixed list of possibilities.
        r  r÷   z-:some-option:_values -s , 'some-option' A B Cr  z-:some-option:_values -s , 'some-option' 1 2 3rø   Trù   z.*:some action:_values -s , 'some action' 1 2 3N)r   ÚCompleteMultiListrþ   rÿ   r7   )r   r  r  Úexpecteds       r   Útest_multiListz ZshCompleterTests.test_multiListô  sÒ   € õ
 Ô# EÑ*Ô*ˆØ�lŠl˜=­%¬*Ñ5Ô5ˆØ×Ò˜ÐMÑNÔNÐNåÔ# O O OÑ4Ô4ˆØ�lŠl˜=­%¬*Ñ5Ô5ˆØ×Ò˜ÐMÑNÔNÐNåÔ# O O O¸=ÐQUÐVÑVÔVˆØ�lŠl˜=­%¬*Ñ5Ô5ˆØCˆØ×Ò˜˜hÑ'Ô'Ð'Ð'Ð'r   c                 ó0  — t          j        ¦   «         }|                     dt           j        ¦  «        }|                      |d¦  «         t          j        dd¬¦  «        }|                     dt           j        ¦  «        }|                      |d¦  «         dS )zd
        CompleteUsernames produces zsh shell-code that completes system
        usernames.
        r÷   z:some-option:_usersrø   Trù   z*:some action:_usersN)r   ÚCompleteUsernamesrþ   rÿ   r7   ©r   r  Úouts      r   Útest_usernamesz ZshCompleterTests.test_usernames  s…   € õ
 Ô#Ñ%Ô%ˆØ�lŠl˜=­%¬*Ñ5Ô5ˆØ×Ò˜Ð3Ñ4Ô4Ð4åÔ#¨-ÀÐEÑEÔEˆØ�lŠl˜=­%¬*Ñ5Ô5ˆØ×Ò˜Ð4Ñ5Ô5Ð5Ð5Ð5r   c                 ó0  — t          j        ¦   «         }|                     dt           j        ¦  «        }|                      |d¦  «         t          j        dd¬¦  «        }|                     dt           j        ¦  «        }|                      |d¦  «         dS )zc
        CompleteGroups produces zsh shell-code that completes system group
        names.
        r÷   z:group:_groupsrø   Trù   z*:some action:_groupsN)r   ÚCompleteGroupsrþ   rÿ   r7   r  s      r   Útest_groupszZshCompleterTests.test_groups  s…   € õ
 Ô Ñ"Ô"ˆØ�lŠl˜=­%¬*Ñ5Ô5ˆØ×Ò˜Ð.Ñ/Ô/Ð/åÔ  }¸TÐBÑBÔBˆØ�lŠl˜=­%¬*Ñ5Ô5ˆØ×Ò˜Ð5Ñ6Ô6Ð6Ð6Ð6r   c                 ó0  — t          j        ¦   «         }|                     dt           j        ¦  «        }|                      |d¦  «         t          j        dd¬¦  «        }|                     dt           j        ¦  «        }|                      |d¦  «         dS )zU
        CompleteHostnames produces zsh shell-code that completes hostnames.
        r÷   z:some-option:_hostsrø   Trù   z*:some action:_hostsN)r   ÚCompleteHostnamesrþ   rÿ   r7   r  s      r   Útest_hostnamesz ZshCompleterTests.test_hostnames   s…   € õ Ô#Ñ%Ô%ˆØ�lŠl˜=­%¬*Ñ5Ô5ˆØ×Ò˜Ð3Ñ4Ô4Ð4åÔ#¨-ÀÐEÑEÔEˆØ�lŠl˜=­%¬*Ñ5Ô5ˆØ×Ò˜Ð4Ñ5Ô5Ð5Ð5Ð5r   c                 óx  — t          j        ¦   «         }|                     dt           j        ¦  «        }|                      |                     d¦  «        ¦  «         t          j        dd¬¦  «        }|                     dt           j        ¦  «        }|                      |                     d¦  «        ¦  «         dS )zŠ
        CompleteUserAtHost produces zsh shell-code that completes hostnames or
        a word of the form <username>@<hostname>.
        r÷   z:host | user@host:rø   Trù   rü   N)r   ÚCompleteUserAtHostrþ   rÿ   rŸ   Ú
startswithr  s      r   Útest_userAtHostz!ZshCompleterTests.test_userAtHost,  s•   € õ
 Ô$Ñ&Ô&ˆØ�lŠl˜=­%¬*Ñ5Ô5ˆØ�Š˜ŸšÐ';Ñ<Ô<Ñ=Ô=Ð=åÔ$¨=ÀÐFÑFÔFˆØ�lŠl˜=­%¬*Ñ5Ô5ˆØ�Š˜ŸšÐ'7Ñ8Ô8Ñ9Ô9Ð9Ð9Ð9r   c                 ó0  — t          j        ¦   «         }|                     dt           j        ¦  «        }|                      |d¦  «         t          j        dd¬¦  «        }|                     dt           j        ¦  «        }|                      |d¦  «         dS )zv
        CompleteNetInterfaces produces zsh shell-code that completes system
        network interface names.
        r÷   z:some-option:_net_interfacesrø   Trù   z*:some action:_net_interfacesN)r   ÚCompleteNetInterfacesrþ   rÿ   r7   r  s      r   Útest_netInterfacesz$ZshCompleterTests.test_netInterfaces9  s…   € õ
 Ô'Ñ)Ô)ˆØ�lŠl˜=­%¬*Ñ5Ô5ˆØ×Ò˜Ð<Ñ=Ô=Ð=åÔ'¨mÀDÐIÑIÔIˆØ�lŠl˜=­%¬*Ñ5Ô5ˆØ×Ò˜Ð=Ñ>Ô>Ð>Ð>Ð>r   N)r#   r$   r%   r>   r  r  r	  r  r  r  r  r   r$  r'  r(   r   r   rõ   rõ   ´  s·   € € € € € ðð ð

0ð 
0ð 
0ðGð Gð Gð"
<ð 
<ð 
<ð7ð 7ð 7ð"(ð (ð (ð$6ð 6ð 6ð7ð 7ð 7ð
6ð 
6ð 
6ð:ð :ð :ð?ð ?ð ?ð ?ð ?r   rõ   c                   ó   — e Zd ZdZd„ ZdS )ÚCompleterNotImplementedTestszs
    Using an unknown shell constant with the various Completer() classes
    should raise NotImplementedError
    c           
      ó‚  — t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j	        t           j
        g
}|D ]K}	  |¦   «         }n# t          $ r  |d¦  «        }Y nw xY w|                      t          |j        dd¦  «         ŒLdS )zM
        Using an unknown shellType should raise NotImplementedError
        NÚbad_shell_type)r   rý   r  r  r  r  r  r  r  r"  r&  ÚBaseExceptionrb   ÚNotImplementedErrorrþ   )r   ÚclassesÚclsÚactions       r   Útest_unknownShellz.CompleterNotImplementedTests.test_unknownShellM  sÉ   € õ
 ŒOÝÔÝÔÝÔÝÔ#ÝÔ#ÝÔ ÝÔ#ÝÔ$ÝÔ'ð
ˆð ð 	ð 	ˆCð#Ø˜™œ��øÝ ð #ð #ð #Ø˜˜T™œ���ð#øøøà×ÒÝ# VÔ%6¸Ð>Nñô ð ð ð	ð 	s   Á6
BÂBÂBN)r#   r$   r%   r>   r1  r(   r   r   r)  r)  G  s-   € € € € € ðð ð
ð ð ð ð r   r)  c                   óD   — e Zd ZdZ G d„ d¦  «        Zd„ Zd„ Zd„ Zd„ ZdS )	ÚFlagFunctionTestsz*
    Tests for L{usage.flagFunction}.
    c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )úFlagFunctionTests.SomeClassz>
        Dummy class for L{usage.flagFunction} tests.
        c                 ó   — dS )z¥
            A one argument method to be tested by L{usage.flagFunction}.

            @param a: a useless argument to satisfy the function's signature.
            Nr(   )r   r¼   s     r   ÚoneArgz"FlagFunctionTests.SomeClass.oneArgr  ó   € € € r   c                 ó   — dS )zU
            A no argument method to be tested by L{usage.flagFunction}.
            Nr(   r   s    r   ÚnoArgz!FlagFunctionTests.SomeClass.noArgy  r8  r   c                 ó   — dS )aG  
            A multiple arguments method to be tested by L{usage.flagFunction}.

            @param a: a useless argument to satisfy the function's signature.
            @param b: a useless argument to satisfy the function's signature.
            @param c: a useless argument to satisfy the function's signature.
            Nr(   )r   r¼   rÏ   r  s       r   ÚmanyArgsz$FlagFunctionTests.SomeClass.manyArgs~  r8  r   N)r#   r$   r%   r>   r7  r:  r<  r(   r   r   Ú	SomeClassr5  m  sK   € € € € € ð	ð 	ð	ð 	ð 	ð	ð 	ð 	ð
	ð 	ð 	ð 	ð 	r   r=  c                 ó„   — |                       dt          j        |                      ¦   «         j        ¦  «        ¦  «         dS )zs
        L{usage.flagFunction} returns C{False} if the method checked allows
        exactly one argument.
        FN)ÚassertIsr   ÚflagFunctionr=  r7  r   s    r   Útest_hasArgzFlagFunctionTests.test_hasArg‡  s6   € ð
 	�Š�e�UÔ/°·²Ñ0@Ô0@Ô0GÑHÔHÑIÔIÐIÐIÐIr   c                 ó„   — |                       dt          j        |                      ¦   «         j        ¦  «        ¦  «         dS )zq
        L{usage.flagFunction} returns C{True} if the method checked allows
        exactly no argument.
        TN)r?  r   r@  r=  r:  r   s    r   Ú
test_noArgzFlagFunctionTests.test_noArgŽ  s6   € ð
 	�Š�d�EÔ.¨t¯~ª~Ñ/?Ô/?Ô/EÑFÔFÑGÔGÐGÐGÐGr   c                 óÐ   — |                       t          j        t          j        |                      ¦   «         j        ¦  «        }|                      dt          |¦  «        ¦  «         dS )z
        L{usage.flagFunction} raises L{usage.UsageError} if the method checked
        allows more than one argument.
        z$Invalid Option function for manyArgsN©rb   r   rc   r@  r=  r<  r7   r   ©r   Úexcs     r   Útest_tooManyArgumentsz'FlagFunctionTests.test_tooManyArguments•  sX   € ð
 ×ÒÝÔ�eÔ0°$·.².Ñ2BÔ2BÔ2Kñ
ô 
ˆð 	×ÒÐ?ÅÀSÁÄÑJÔJÐJÐJÐJr   c                 óÒ   — |                       t          j        t          j        |                      ¦   «         j        d¦  «        }|                      dt          |¦  «        ¦  «         dS )z‘
        L{usage.flagFunction} uses the given method name in the error message
        raised when the method allows too many arguments.
        Úflubudufz$Invalid Option function for flubudufNrE  rF  s     r   Ú,test_tooManyArgumentsAndSpecificErrorMessagez>FlagFunctionTests.test_tooManyArgumentsAndSpecificErrorMessageŸ  sZ   € ð
 ×ÒÝÔ�eÔ0°$·.².Ñ2BÔ2BÔ2KÈZñ
ô 
ˆð 	×ÒÐ?ÅÀSÁÄÑJÔJÐJÐJÐJr   N)	r#   r$   r%   r>   r=  rA  rC  rH  rK  r(   r   r   r3  r3  h  s�   € € € € € ðð ðð ð ð ð ñ ô ð ð4Jð Jð JðHð Hð HðKð Kð KðKð Kð Kð Kð Kr   r3  c                   ó   — e Zd ZdZd„ ZdS )ÚOptionsInternalTestsz6
    Tests internal behavior of C{usage.Options}.
    c                 óö   —  G d„ dt           j        ¦  «        } |¦   «         }|                      t                               g d¢d¦  «        |j        d         |j        d         |j        d         dœ¦  «         dS )zs
        Options which are synonyms to another option are aliases towards the
        longest option name.
        c                   ó   — e Zd Zd„ ZeZeZdS )ú;OptionsInternalTests.test_optionsAliasesOrder.<locals>.Optsc                 ó   — dS )z~
                This is an option method with a very long name, that is going to
                be aliased.
                Nr(   r   s    r   Úopt_very_very_longzNOptionsInternalTests.test_optionsAliasesOrder.<locals>.Opts.opt_very_very_long¶  r8  r   N)r#   r$   r%   rR  Ú	opt_shortÚopt_sr(   r   r   ÚOptsrP  µ  s)   € € € € € ðð ð ð +ˆIØ&ˆEˆEˆEr   rU  )rá   Úshortúvery-very-longrW  rá   rV  N)r   r»   r7   ÚdictÚfromkeysÚsynonyms)r   rU  r   s      r   Útest_optionsAliasesOrderz-OptionsInternalTests.test_optionsAliasesOrder¯  sŸ   € ð	'ð 	'ð 	'ð 	'ð 	'•5”=ñ 	'ô 	'ð 	'ð ˆt‰vŒvˆà×ÒÝ�MŠMÐ:Ð:Ð:Ð<LÑMÔMà”] 3Ô'Øœ wÔ/Ø"&¤-Ð0@Ô"Aðð ñ	
ô 	
ð 	
ð 	
ð 	
r   N)r#   r$   r%   r>   r[  r(   r   r   rM  rM  ª  s-   € € € € € ðð ð
ð 
ð 
ð 
ð 
r   rM  N)r>   Útwisted.pythonr   Útwisted.trialr   r»   r   ÚTestCaser*   r@   rN   rf   rj   rv   rƒ   rˆ   rŽ   r”   rœ   rÖ   ré   rõ   r)  r3  rM  r(   r   r   ú<module>r_     sš  ððð ð
 !Ð  Ð  Ð  Ð  Ð  Ø "Ð "Ð "Ð "Ð "Ð "ð7ð 7ð 7ð 7ð 7�%”-ñ 7ô 7ð 7ð6(Ið (Ið (Ið (Ið (I˜HÔ-ñ (Iô (Ið (IðVð ð ð ð �5”=ñ ô ð ð$8Kð 8Kð 8Kð 8Kð 8K�Ô"ñ 8Kô 8Kð 8KðvNð Nð Nð Nð N˜œñ Nô Nð Nð
ð 
ð 
ð 
ð 
˜5œ=ñ 
ô 
ð 
ð"?ð "?ð "?ð "?ð "?�hÔ'ñ "?ô "?ð "?ðJ=ð =ð =ð =ð =�(Ô#ñ =ô =ð =ðð ð ð ð ˜œñ ô ð ðð ð ð ð �u”}ñ ô ð ðð ð ð ð ˜œñ ô ð ð|?ð |?ð |?ð |?ð |?�hÔ'ñ |?ô |?ð |?ð~!=ð !=ð !=ð !=ð !=�hÔ'ñ !=ô !=ð !=ðH?ð ?ð ?ð ?ð ?�hÔ'ñ ?ô ?ð ?ð.P?ð P?ð P?ð P?ð P?˜Ô)ñ P?ô P?ð P?ðfð ð ð ð  8Ô#4ñ ô ð ðB?Kð ?Kð ?Kð ?Kð ?K˜Ô)ñ ?Kô ?Kð ?KðD
ð 
ð 
ð 
ð 
˜8Ô,ñ 
ô 
ð 
ð 
ð 
r   