§
    Ètºf­R  ã                   ó  — d Z ddlZddlmZ ddlmZmZ ddlmZm	Z	m
Z
 ddlmZmZmZmZ ddlmZ  G d„ d	e¦  «        Z G d
„ de¬¦  «        Zd„ 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¦  «        Zd„ Z G d„ de
j        ¦  «        Z G d„ de
j        ¦  «        Z  G d„ d e
j        ¦  «        Z! G d!„ d"e¦  «        Z"d#Z#d$Z$dS )%z*
Test cases for twisted.python._shellcomp
é    N)ÚBytesIO)ÚListÚOptional)Ú
_shellcompÚreflectÚusage)ÚCompleteFilesÚCompleteListÚ	CompleterÚCompletions)Úunittestc                   ó   — e Zd ZdZd„ ZdS )ÚZshScriptTestMetaz*
    Metaclass of ZshScriptTestMixin.
    c                 óŽ   — d„ }d|v r"|d         D ]\  }} |||¦  «        }||d|z   <   Œt                                | |||¦  «        S )Nc                 ó   ‡ ‡— ˆ ˆfd„}|S )Nc                 ó&   •— t          | ‰‰¦  «        S )N)Útest_genZshFunction)ÚselfÚcmdNameÚoptionsFQPNs    €€úa/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/python/test/test_shellcomp.pyÚrunTestz<ZshScriptTestMeta.__new__.<locals>.makeTest.<locals>.runTest   s   ø€ Ý*¨4°¸+ÑFÔFÐFó    © )r   r   r   s   `` r   ÚmakeTestz+ZshScriptTestMeta.__new__.<locals>.makeTest   s/   øø€ ðGð Gð Gð Gð Gð Gð ˆNr   ÚgenerateForÚtest_genZshFunction_)ÚtypeÚ__new__)ÚclsÚnameÚbasesÚattrsr   r   r   Útests           r   r   zZshScriptTestMeta.__new__   ss   € ð	ð 	ð 	ð ˜EÐ!Ð!Ø(-¨mÔ(<ð ?ð ?Ñ$�˜Ø�x ¨Ñ5Ô5�Ø:>�Ð,¨wÑ6Ñ7Ð7å�|Š|˜C  u¨eÑ4Ô4Ð4r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r      s-   € € € € € ðð ð5ð 5ð 5ð 5ð 5r   r   c                   ó   — e Zd ZdZdS )ÚZshScriptTestMixina§  
    Integration test helper to show that C{usage.Options} classes can have zsh
    completion functions generated for them without raising errors.

    In your subclasses set a class variable like so::

      #            | cmd name | Fully Qualified Python Name of Options class |
      #
      generateFor = [('conch',  'twisted.conch.scripts.conch.ClientOptions'),
                     ('twistd', 'twisted.scripts.twistd.ServerOptions'),
                     ]

    Each package that contains Twisted scripts should contain one TestCase
    subclass which also inherits from this mixin, and contains a C{generateFor}
    list appropriate for the scripts in that package.
    N)r%   r&   r'   r(   r   r   r   r*   r*   (   s   € € € € € ðð ð ð r   r*   )Ú	metaclassc           	      ó°  — t          ¦   «         }|                      t          j        d|¦  «         	  t	          j        |¦  «        ¦   «         }n)# t          $ r}t          j        d|›�¦  «        ‚d}~ww xY w	 | 	                    g d¢¦  «         |  
                    d¦  «         n3# t          $ r}t          j        d|f¦  «        ‚d}~wt          $ r Y nw xY w|                     d¦  «         |                      dt          |                     d¦  «        ¦  «        ¦  «         |                     d¦  «         |                     ¦   «          t%          |d	¦  «        ræ|j        D ]Þ\  }}}}		 | 	                    |d
ddg¦  «         |  
                    d¦  «         n3# t          $ r}t          j        d|f¦  «        ‚d}~wt          $ r Y nw xY w|                     d¦  «         |                      dt          |                     d¦  «        ¦  «        ¦  «         |                     d¦  «         |                     ¦   «          Œß|                      ¦   «          dS )aI  
    Generate completion functions for given twisted command - no errors
    should be raised

    @type cmdName: C{str}
    @param cmdName: The name of the command-line utility e.g. 'twistd'

    @type optionsFQPN: C{str}
    @param optionsFQPN: The Fully Qualified Python Name of the C{Options}
        class to be tested.
    Ú_shellCompFilez.Couldn't import or instantiate Options class: N©Ú ú--_shell-completionúzsh:2zSystemExit not raisedz&ImportError calling parseOptions(): %sr   é   ÚsubCommandsr/   r0   zzsh:3z4ImportError calling parseOptions() on subcommand: %s)r   Úpatchr   ÚOptionsr   ÚnamedAnyÚ	Exceptionr   ÚSkipTestÚparseOptionsÚfailÚImportErrorÚ
SystemExitÚseekÚassertEqualÚlenÚreadÚtruncateÚhasattrr3   ÚflushWarnings)
r   r   r   Ú
outputFileÚoÚeÚcmdÚshortÚparserÚdocs
             r   r   r   ;   s®  € õ ‘”€JØ‡J‚J�uŒ}Ð.°
Ñ;Ô;Ð;ð
Ø)�GÔ˜[Ñ)Ô)Ñ+Ô+ˆˆøÝð 
ð 
ð 
ÝÔÐØEFÀQÐHñ
ô 
ð 	
øøøøð
øøøð

+Ø	�ŠÐ;Ð;Ð;Ñ<Ô<Ð<ð 	�	Š	Ð)Ñ*Ô*Ð*Ð*øõ ð Pð Pð Põ ÔÐ HÈ1È$ÑOÔOÐOøøøøÝð ð ð Øˆðøøøð ‡O‚O�AÑÔÐà×Ò�Q�˜JŸOšO¨AÑ.Ô.Ñ/Ô/Ñ0Ô0Ð0Ø‡O‚O�AÑÔÐØ×ÒÑÔÐõ ˆq�-Ñ Ô ð "Ø'(¤}ð 	"ð 	"Ñ#ˆC�˜ ð3Ø—’  RÐ)>ÀÐHÑIÔIÐIð —	’	Ð1Ñ2Ô2Ð2Ð2øõ ð ð ð õ Ô'ØMÐPQÈtñô ð øøøøõ ð ð ð Ø�ðøøøð
 �OŠO˜AÑÔÐà×Ò˜Q¥ J§O¢O°AÑ$6Ô$6Ñ 7Ô 7Ñ8Ô8Ð8Ø�OŠO˜AÑÔÐØ×ÒÑ!Ô!Ð!Ð!ð 	×ÒÑÔÐÐÐsS   ±A Á
A4ÁA/Á/A4Á8B% Â%
CÂ/CÃCÃCÅ+FÆ
G
Æ$F:Æ:G
Ç	G
c                   ó`   — 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„ Zd„ Zd„ ZdS )ÚZshTestsz'
    Tests for zsh completion code
    c                 ó  — t          ¦   «         }t          j        |dt          ¦   «         ¦  «        }t          j        j                             ¦   «         }|                     t           j        j        ¦  «         |  	                    |j        |¦  «         |  	                    |j
        t          t          j        j
        ¦  «        ¦  «         |  	                    |j        t          j        j        ¦  «         t          j        j                             ¦   «         }|                     t           j        j        ¦  «         |  	                    |j        |¦  «         |  	                    |j        t          j        j        ¦  «         dS )zi
        Are `compData' attributes you can place on Options classes
        picked up correctly?
        ÚaceN)ÚFighterAceExtendedOptionsr   ÚZshArgumentsGeneratorr   ÚFighterAceOptionsÚcompDataÚdescriptionsÚcopyÚupdater>   ÚmultiUseÚsetÚmutuallyExclusiveÚ
optActionsÚextraActions)r   ÚoptsÚagrS   rY   s        r   Útest_accumulateMetadataz ZshTests.test_accumulateMetadata„   s0  € õ
 )Ñ*Ô*ˆÝÔ-¨d°E½7¹9¼9ÑEÔEˆå(Ô1Ô>×CÒCÑEÔEˆØ×ÒÕ5Ô>ÔKÑLÔLÐLà×Ò˜œ¨,Ñ7Ô7Ð7Ø×Ò˜œ¥cÕ*;Ô*DÔ*MÑ&NÔ&NÑOÔOÐOØ×ÒØÔ Õ"3Ô"<Ô"Nñ	
ô 	
ð 	
õ 'Ô/Ô:×?Ò?ÑAÔAˆ
Ø×ÒÕ3Ô<ÔGÑHÔHÐHØ×Ò˜œ¨
Ñ3Ô3Ð3à×Ò˜œÕ*;Ô*DÔ*QÑRÔRÐRÐRÐRr   c                 óÞ   —  G d„ dt           ¦  «        } |¦   «         }t          j        |dt          ¦   «         ¦  «        }h d£h d£h d£h d£h d£d	œ}|                      |j        |¦  «         d
S )z²
        Exercise a corner-case of ZshArgumentsGenerator.makeExcludesDict()
        where the long option name already exists in the `excludes` dict being
        built.
        c                   ó6   — e Zd Zg d¢gZ eg d¢g¬¦  «        ZdS )úGZshTests.test_mutuallyExclusiveCornerCase.<locals>.OddFighterAceOptions)ÚanatraNz0Select the Anatra DS as your dogfighter aircraft)ra   ÚfokkerÚalbatrosÚspadÚbristol©rX   N)r%   r&   r'   ÚoptFlagsr   rR   r   r   r   ÚOddFighterAceOptionsr`   ¢   sE   € € € € € ð
 UÐTÐTðˆHð #�{Ø#VÐ#VÐ#VÐ"Wðñ ô ˆHˆHˆHr   rh   rN   >   ÚbÚfÚsrd   ra   rb   re   >   Úari   rj   rk   rd   rb   re   rc   >   rl   rj   rk   rd   ra   rb   rc   >   rl   ri   rk   rd   ra   re   rc   >   rl   ri   rj   ra   rb   re   rc   )rc   ra   re   rb   rd   N)rO   r   rP   r   r>   Úexcludes)r   rh   r[   r\   Úexpecteds        r   Ú test_mutuallyExclusiveCornerCasez)ZshTests.test_mutuallyExclusiveCornerCase›   s±   € ð		ð 		ð 		ð 		ð 		Õ#<ñ 		ô 		ð 		ð $Ð#Ñ%Ô%ˆÝÔ-¨d°E½7¹9¼9ÑEÔEˆð OÐNÐNØSÐSÐSØNÐNÐNØNÐNÐNØNÐNÐNð
ð 
ˆð 	×Ò˜œ hÑ/Ô/Ð/Ð/Ð/r   c                 ó>  — t          ¦   «         }t          j        |dt          ¦   «         ¦  «        }|                      d|j        ¦  «         |                      d|j        ¦  «         |                      d|j        ¦  «         |                      d|j        ¦  «         dS )z¥
        We pick up options that are only defined by having an
        appropriately named method on your Options class,
        e.g. def opt_foo(self, foo)
        rN   ÚnocrashÚ
difficultyN)rO   r   rP   r   ÚassertInÚflagNameToDefinitionÚallOptionsNameToDefinitionÚparamNameToDefinition)r   r[   r\   s      r   Ú test_accumulateAdditionalOptionsz)ZshTests.test_accumulateAdditionalOptionsº   s‰   € õ )Ñ*Ô*ˆÝÔ-¨d°E½7¹9¼9ÑEÔEˆà�Š�i Ô!8Ñ9Ô9Ð9Ø�Š�i Ô!>Ñ?Ô?Ð?à�Š�l BÔ$<Ñ=Ô=Ð=Ø�Š�l BÔ$AÑBÔBÐBÐBÐBr   c                 óB  —  G d„ dt           ¦  «        }|                      t          t          j         |¦   «         dt          ¦   «         ¦  «          G d„ dt           ¦  «        }|                      t          t          j         |¦   «         dt          ¦   «         ¦  «         dS )z\
        Using a parameter/flag name that doesn't exist
        will raise an error
        c                   ó*   — e Zd Z eddi¬¦  «        ZdS )ú0ZshTests.test_verifyZshNames.<locals>.TmpOptionsÚdetaillN)rY   ©r%   r&   r'   r   rR   r   r   r   Ú
TmpOptionsrz   Ï   s%   € € € € € à"�{¨y¸$Ð.?Ð@Ñ@Ô@ˆHˆHˆHr   r}   rN   c                   ó(   — e Zd Z edg¬¦  «        ZdS )ú1ZshTests.test_verifyZshNames.<locals>.TmpOptions2)ÚfooÚbarrf   Nr|   r   r   r   ÚTmpOptions2r   ×   s%   € € € € € ð #�{°nÐ5EÐFÑFÔFˆHˆHˆHr   r‚   N)rO   ÚassertRaisesÚ
ValueErrorr   rP   r   )r   r}   r‚   s      r   Útest_verifyZshNameszZshTests.test_verifyZshNamesÉ   sÚ   € ð	Að 	Að 	Að 	Að 	AÕ2ñ 	Aô 	Að 	Að 	×ÒÝ�
Ô8¸*¸*¹,¼,ÈÍwÉyÌyñ	
ô 	
ð 	
ð	Gð 	Gð 	Gð 	Gð 	GÕ3ñ 	Gô 	Gð 	Gð
 	×ÒÝÝÔ,ØˆK‰MŒMØÝ‰IŒIñ	
ô 	
ð 	
ð 	
ð 	
r   c                 óV  — t          ¦   «         }|                      t          j        d|¦  «         |                      t          dg d¢¦  «         t          ¦   «         }|                      t          |j        ¦  «         |  	                    t          |                     ¦   «         ¦  «         dS )zt
        Generate a completion function, and test the textual output
        against a known correct output
        r-   Úargv)Úsillyr/   r0   r1   N)r   r4   r   r5   ÚsysÚSimpleProgOptionsrƒ   r<   r9   r>   ÚtestOutput1Úgetvalue©r   rD   r[   s      r   Útest_zshCodezZshTests.test_zshCodeä   s�   € õ
 ‘Y”Yˆ
Ø�
Š
•5”=Ð"2°JÑ?Ô?Ð?Ø�
Š
•3˜Ð MÐ MÐ MÑNÔNÐNÝ Ñ"Ô"ˆØ×Ò�* dÔ&7Ñ8Ô8Ð8Ø×Ò� j×&9Ò&9Ñ&;Ô&;Ñ<Ô<Ð<Ð<Ð<r   c                 óV  — t          ¦   «         }|                      t          j        d|¦  «         |                      t          dg d¢¦  «         t          ¦   «         }|                      t          |j        ¦  «         |  	                    t          |                     ¦   «         ¦  «         dS )z…
        Generate a completion function with subcommands,
        and test the textual output against a known correct output
        r-   r‡   )Úsilly2r/   r0   r1   N)r   r4   r   r5   r‰   ÚSimpleProgWithSubcommandsrƒ   r<   r9   r>   ÚtestOutput2rŒ   r�   s      r   Útest_zshCodeWithSubszZshTests.test_zshCodeWithSubsð   s�   € õ
 ‘Y”Yˆ
Ø�
Š
•5”=Ð"2°JÑ?Ô?Ð?Ø�
Š
•3˜Ð NÐ NÐ NÑOÔOÐOÝ(Ñ*Ô*ˆØ×Ò�* dÔ&7Ñ8Ô8Ð8Ø×Ò� j×&9Ò&9Ñ&;Ô&;Ñ<Ô<Ð<Ð<Ð<r   c                 ó\  — t          ¦   «         }|                      t          j        d|¦  «         t	          ¦   «         }|                      t          |j        g d¢¦  «         |                     d¦  «         |  	                    dt          |                     d¦  «        ¦  «        ¦  «         dS )zx
        Completion still happens even if a command-line is given
        that would normally throw UsageError.
        r-   )ú--fokkerÚserverú--unknown-optionz--unknown-option2r0   úzsh:5r   r2   N©r   r4   r   r5   rQ   rƒ   r<   r9   r=   r>   r?   r@   r�   s      r   Útest_incompleteCommandLinez#ZshTests.test_incompleteCommandLineü   s¥   € õ
 ‘Y”Yˆ
Ø�
Š
•5”=Ð"2°JÑ?Ô?Ð?Ý Ñ"Ô"ˆà×ÒÝØÔðð ð ñ	
ô 	
ð 	
ð 	�Š˜ÑÔÐà×Ò˜�C 
§¢°Ñ 2Ô 2Ñ3Ô3Ñ4Ô4Ð4Ð4Ð4r   c                 ó®  — t          ¦   «         }|                      t          j        d|¦  «         t	          ¦   «         }|                      t          |j        g d¢¦  «         |                     d¦  «         |  	                    dt          |                     d¦  «        ¦  «        ¦  «         |                     d¦  «         |                     ¦   «          dS )zý
        Completion still happens even if a command-line is given
        that would normally throw UsageError.

        The existence of --unknown-option prior to the subcommand
        will break subcommand detection... but we complete anyway
        r-   )r•   r—   r–   ú--list-serverr0   r˜   r   r2   N)r   r4   r   r5   rQ   rƒ   r<   r9   r=   r>   r?   r@   rA   r�   s      r   Ú test_incompleteCommandLine_case2z)ZshTests.test_incompleteCommandLine_case2  sÉ   € õ ‘Y”Yˆ
Ø�
Š
•5”=Ð"2°JÑ?Ô?Ð?Ý Ñ"Ô"ˆà×ÒÝØÔðð ð ñ	
ô 	
ð 	
ð 	�Š˜ÑÔÐà×Ò˜�C 
§¢°Ñ 2Ô 2Ñ3Ô3Ñ4Ô4Ð4à�Š˜ÑÔÐØ×ÒÑÔÐÐÐr   c                 ó\  — t          ¦   «         }|                      t          j        d|¦  «         t	          ¦   «         }|                      t          |j        g d¢¦  «         |                     d¦  «         |  	                    dt          |                     d¦  «        ¦  «        ¦  «         dS )zà
        Completion still happens even if a command-line is given
        that would normally throw UsageError.

        Break subcommand detection in a different way by providing
        an invalid subcommand name.
        r-   )r•   zunknown-subcommandrœ   r0   zzsh:4r   r2   Nr™   r�   s      r   Ú test_incompleteCommandLine_case3z)ZshTests.test_incompleteCommandLine_case34  s¥   € õ ‘Y”Yˆ
Ø�
Š
•5”=Ð"2°JÑ?Ô?Ð?Ý Ñ"Ô"ˆà×ÒÝØÔðð ð ñ
	
ô 
	
ð 
	
ð 	�Š˜ÑÔÐà×Ò˜�C 
§¢°Ñ 2Ô 2Ñ3Ô3Ñ4Ô4Ð4Ð4Ð4r   c                 ó\  — t          ¦   «         }|                      t          j        d|¦  «         t	          ¦   «         }|                      t          |j        g d¢¦  «         |                     d¦  «         |  	                    dt          |                     d¦  «        ¦  «        ¦  «         dS )z�
        Ensure the optimization which skips building the subcommand list
        under certain conditions isn't broken.
        r-   )z--albar0   r1   r   r2   Nr™   r�   s      r   Útest_skipSubcommandListz ZshTests.test_skipSubcommandListO  sž   € õ
 ‘Y”Yˆ
Ø�
Š
•5”=Ð"2°JÑ?Ô?Ð?Ý Ñ"Ô"ˆà×ÒÝ˜Ô)Ð+UÐ+UÐ+Uñ	
ô 	
ð 	
ð 	�Š˜ÑÔÐà×Ò˜�C 
§¢°Ñ 2Ô 2Ñ3Ô3Ñ4Ô4Ð4Ð4Ð4r   c                 ó¤   — t          ¦   «         }t          j        |dd¦  «        }|                     d¦  «        }|                      |d¦  «         dS )zY
        Test corner case fetching an option description from a method docstring
        rN   Nrˆ   )rQ   r   rP   ÚgetDescriptionr>   )r   r[   ÚargGenÚdescrs       r   Útest_poorlyDescribedOptMethodz&ZshTests.test_poorlyDescribedOptMethod_  sT   € õ !Ñ"Ô"ˆÝÔ1°$¸¸tÑDÔDˆà×%Ò% gÑ.Ô.ˆð 	×Ò˜ Ñ(Ô(Ð(Ð(Ð(r   c                 óÚ   —  G d„ dt           j        ¦  «        }t          ¦   «         } |¦   «         }|                      |d|¦  «         |                      t
          |j        g d¢¦  «         dS )zu
        A C{Completer} with repeat=True may only be used as the
        last item in the extraActions list.
        c                   ól   — e Zd Z ej         ej        d¬¦  «         ej        ¦   «         g¬¦  «        ZdS )ú2ZshTests.test_brokenActions.<locals>.BrokenActionsT)Úrepeat)rZ   N)r%   r&   r'   r   r   r   rR   r   r   r   ÚBrokenActionsr©   r  sH   € € € € € Ø(�uÔ(Ø-˜eœo°TÐ:Ñ:Ô:¸O¸E¼OÑ<MÔ<MÐNðñ ô ˆHˆHˆHr   r«   r-   r.   N)r   r5   r   r4   rƒ   r„   r9   )r   r«   rD   r[   s       r   Útest_brokenActionszZshTests.test_brokenActionsl  sŽ   € ð	ð 	ð 	ð 	ð 	�EœMñ 	ô 	ð 	õ
 ‘Y”Yˆ
Øˆ}‰ŒˆØ�
Š
�4Ð)¨:Ñ6Ô6Ð6Ø×ÒÝ˜Ô)Ð+OÐ+OÐ+Oñ	
ô 	
ð 	
ð 	
ð 	
r   c                 ó  —  G d„ dt           j        ¦  «        } |¦   «         }t          j        |dd¦  «        }|                      |                     d¦  «        d¦  «         |                      |                     d¦  «        d¦  «         dS )	z~
        opt_* methods on Options classes should not override the
        data provided in optFlags or optParameters.
        c                   ó.   — e Zd Zg d¢gZg d¢gZd„ Zd„ ZdS )ú5ZshTests.test_optMethodsDontOverride.<locals>.Options)Úflagrj   úA flag)ÚparamÚpNúA paramc                 ó   — dS ©zjunk descriptionNr   ©r   s    r   Úopt_flagz>ZshTests.test_optMethodsDontOverride.<locals>.Options.opt_flagˆ  ó   € € € r   c                 ó   — dS r¶   r   )r   r²   s     r   Ú	opt_paramz?ZshTests.test_optMethodsDontOverride.<locals>.Options.opt_param‹  r¹   r   N)r%   r&   r'   rg   ÚoptParametersr¸   r»   r   r   r   r5   r¯   „  sN   € € € € € Ø/Ð/Ð/Ð0ˆHØ<Ð<Ð<Ð=ˆMð'ð 'ð 'ð'ð 'ð 'ð 'ð 'r   r5   rN   Nr°   r±   r²   r´   )r   r5   r   rP   r>   r£   )r   r5   r[   r¤   s       r   Útest_optMethodsDontOverridez$ZshTests.test_optMethodsDontOverride~  s�   € ð	'ð 	'ð 	'ð 	'ð 	'•e”mñ 	'ô 	'ð 	'ð ˆw‰yŒyˆÝÔ1°$¸¸tÑDÔDˆà×Ò˜×.Ò.¨vÑ6Ô6¸ÑAÔAÐAØ×Ò˜×.Ò.¨wÑ7Ô7¸ÑCÔCÐCÐCÐCr   N)r%   r&   r'   r(   r]   ro   rw   r…   rŽ   r“   rš   r�   rŸ   r¡   r¦   r¬   r½   r   r   r   rL   rL      sì   € € € € € ðð ðSð Sð Sð.0ð 0ð 0ð>Cð Cð Cð
ð 
ð 
ð6
=ð 
=ð 
=ð
=ð 
=ð 
=ð5ð 5ð 5ð2ð ð ð>5ð 5ð 5ð65ð 5ð 5ð )ð )ð )ð
ð 
ð 
ð$Dð Dð Dð Dð Dr   rL   c                   ó   — e Zd Zd„ ZdS )ÚEscapeTestsc                 ó¢   — t           j        }d}|                       ||¦  «        d¦  «         d}|                       ||¦  «        d¦  «         dS )z5
        Verify _shellcomp.escape() function
        ú$z'$'zA--'$"\`--Bz"A--'\$\"\\\`--B"N)r   Úescaper>   )r   Úescr$   s      r   Útest_escapezEscapeTests.test_escape–  sY   € õ ÔˆàˆØ×Ò˜˜˜T™œ EÑ*Ô*Ð*àˆØ×Ò˜˜˜T™œÐ$=Ñ>Ô>Ð>Ð>Ð>r   N)r%   r&   r'   rÄ   r   r   r   r¿   r¿   •  s#   € € € € € ð
?ð 
?ð 
?ð 
?ð 
?r   r¿   c                   ó   — e Zd ZdZd„ ZdS )ÚCompleterNotImplementedTestszª
    Test that using an unknown shell constant with SubcommandAction
    raises NotImplementedError

    The other Completer() subclasses are tested in test_usage.py
    c                 óp   — t          j        ¦   «         }|                      t          |j        dd¦  «         dS )zM
        Using an unknown shellType should raise NotImplementedError
        NÚbad_shell_type)r   ÚSubcommandActionrƒ   ÚNotImplementedErrorÚ
_shellCode)r   Úactions     r   Útest_unknownShellz.CompleterNotImplementedTests.test_unknownShell«  sA   € õ Ô,Ñ.Ô.ˆà×ÒÝ Ô!2°DÐ:Jñ	
ô 	
ð 	
ð 	
ð 	
r   N)r%   r&   r'   r(   rÍ   r   r   r   rÆ   rÆ   £  s-   € € € € € ðð ð
ð 
ð 
ð 
ð 
r   rÆ   c                   ó&   — e Zd ZdZg d¢gZg d¢gZdS )ÚFighterAceServerOptionsz4
    Options for FighterAce 'server' subcommand
    )zlist-serverNz3List this server with the online FighterAce network)zpackets-per-secondNz+Number of update packets to send per secondÚ20N)r%   r&   r'   r(   rg   r¼   r   r   r   rÏ   rÏ   ¶  sA   € € € € € ðð ð
 	UÐTÐTð€Hð	
ð 	
ð 	
ð€M€M€Mr   rÏ   c            	       ó  — e Zd ZU dZg d¢g d¢g d¢g d¢g d¢g d¢g d¢gZeeee                           ed	<   g d
¢g d¢gZ	eeee                           ed<   dde
dggZ edddœdgg d¢gd edg¦  «        i ed¬¦  «        g¬¦  «        Zd„ ZdS )rQ   zB
    Command-line options for an imaginary `Fighter Ace` game
    )rb   rj   z2Select the Fokker Dr.I as your dogfighter aircraft)rc   rl   z5Select the Albatros D-III as your dogfighter aircraft)rd   rk   z1Select the SPAD S.VII as your dogfighter aircraft)re   ri   z4Select the Bristol Scout as your dogfighter aircraft)Úphysicsr³   z$Enable secret Twisted physics engine)ÚjamÚjz6Enable a small chance that your machine guns will jam!©ÚverboseÚvz1Verbose logging (may be specified more than once)rg   )z
pilot-nameNzWhat's your name, Ace?zManfred von Richthofen)ÚdetailÚdz*Select the level of rendering detail (1-5)Ú3r¼   r–   NzStart FighterAce game-server.zTwisted-PhysicszRendering detail level)rÒ   rØ   rÖ   )rb   rc   rd   re   rØ   Ú12345zsaved game file to load©r¥   ©rS   rV   rX   rY   rZ   c                 ó   — dS )ú Nr   r·   s    r   Ú	opt_sillyzFighterAceOptions.opt_sillyè  r¹   r   )r%   r&   r'   r(   rg   r   r   ÚstrÚ__annotations__r¼   rÏ   r3   r   r
   r	   rR   rà   r   r   r   rQ   rQ   È  sH  € € € € € € ðð ð
 	NÐMÐMØRÐRÐRØJÐJÐJØPÐPÐPØ@Ð@Ð@ØNÐNÐNØMÐMÐMð+€Hˆd�4˜ œÔ&Ô'ð ð ñ ð 	QÐPÐPØJÐJÐJð0€M�4˜˜X cœ]Ô+Ô,ð ð ñ ð 
�4Ð0Ð2QÐRð€Kð ˆ{Ø!2Ð>VÐWÐWØ�ØDÐDÐDÐEØ˜l˜lÐ,?Ð+@ÑAÔAÐBØ#�mÐ*CÐDÑDÔDÐEðñ ô €Hðð ð ð ð r   rQ   c                   óh   — e Zd ZdZg d¢gZg d¢gZ eddid ed¬¦  «        i¬	¦  «        Zd
„ Z	d„ Z
dS )rO   zÃ
    Extend the options and zsh metadata provided by FighterAceOptions.
    _shellcomp must accumulate options and metadata from all classes in the
    hiearchy so this is important to test.
    )ú	no-stallsNz+Turn off the ability to stall your aircraft)úreality-levelNz)Select the level of physics reality (1-5)Ú5rä   zCan't stall your planerå   zPhysics reality levelrÜ   )rS   rY   c                 ó   — dS )z8
        Select that you can't crash your plane
        Nr   r·   s    r   Úopt_nocrashz%FighterAceExtendedOptions.opt_nocrashþ  r¹   r   c                 ó   — dS )z+
        How tough are you? (1-10)
        Nr   )r   rr   s     r   Úopt_difficultyz(FighterAceExtendedOptions.opt_difficulty  r¹   r   N)r%   r&   r'   r(   rg   r¼   r   r   rR   rè   rê   r   r   r   rO   rO   í  s”   € € € € € ðð ð SÐRÐRÐS€HàQÐQÐQð€Mð ˆ{Ø!Ð#;Ð<Ø# Y YÐ5LÐ%MÑ%MÔ%MÐNðñ ô €Hð
ð ð ð
ð ð ð ð r   rO   c                  ó(   — t          g d¢d¬¦  «        S )N)Ú1Ú2rÚ   zAccuracy'`?rÜ   )r
   r   r   r   Ú_accuracyActionrî   	  s   € å˜˜˜¨}Ð=Ñ=Ô=Ð=r   c            	       ó¢   — e Zd ZdZg d¢g d¢g d¢gZg d¢g d¢gZ eddd	œd
gddgg eg d¢d¬¦  «        edœ e	d¬¦  «        g¬¦  «        Z
d„ ZdS )rŠ   z>
    Command-line options for a `Silly` imaginary program
    )ÚcolorÚczTurn on color output)ÚgrayÚgzTurn on gray-scale outputrÕ   )ÚoptimizationNræ   z&Select the level of optimization (1-5))Úaccuracyrl   rÚ   z"Select the level of accuracy (1-3)zColor onzOptimization level)rð   rô   rÖ   rð   rò   )rì   rí   rÚ   Ú4ræ   zOptimization?rÜ   )rô   rõ   zoutput filerÝ   c                 ó   — dS )zM
        usage.Options does not recognize single-letter opt_ methods
        Nr   r·   s    r   Úopt_XzSimpleProgOptions.opt_X+  r¹   r   N)r%   r&   r'   r(   rg   r¼   r   r
   rî   r	   rR   rø   r   r   r   rŠ   rŠ     sä   € € € € € ðð ð
 	/Ð.Ð.Ø2Ð2Ð2ØMÐMÐMð€Hð 	NÐMÐMØDÐDÐDð€Mð
 ˆ{Ø)Ð;OÐPÐPØ�Ø# VÐ,Ð-à(˜LØ)Ð)Ð)°ðñ ô ð (ð	
ð 
ð $�m¨-Ð8Ñ8Ô8Ð9ðñ ô €Hðð ð ð ð r   rŠ   c                   ó   — e Zd Zg d¢gZdS )ÚSimpleProgSub1)úsub-optrk   zSub Opt OneN©r%   r&   r'   rg   r   r   r   rú   rú   1  ó   € € € € € Ø/Ð/Ð/Ð0€H€H€Hr   rú   c                   ó   — e Zd Zg d¢gZdS )ÚSimpleProgSub2)rû   rk   zSub Opt TwoNrü   r   r   r   rÿ   rÿ   5  rý   r   rÿ   c                   óH   — e Zd ZdgddggZdgddgg d¢gZdd	ed
gdd	edggZd	S )r‘   zsome-optionzother-optionrE   z
some-paramzother-paramr³   )zanother-paramÚPzYet Another ParamÚsub1NzSub Command 1Úsub2zSub Command 2)r%   r&   r'   rg   r¼   rú   rÿ   r3   r   r   r   r‘   r‘   9  s_   € € € € € Ø� .°#Ð!6Ð7€Hð 
ˆØ	˜ÐØ3Ð3Ð3ð€Mð 
��~ Ð7Ø	��~ Ð7ð€K€K€Kr   r‘   sº  #compdef silly

_arguments -s -A "-*" \
':output file (*):_files -g "*"' \
"(--accuracy)-a[Select the level of accuracy (1-3)]:Accuracy'\`?:(1 2 3)" \
"(-a)--accuracy=[Select the level of accuracy (1-3)]:Accuracy'\`?:(1 2 3)" \
'(--color --gray -g)-c[Color on]' \
'(--gray -c -g)--color[Color on]' \
'(--color --gray -c)-g[Turn on gray-scale output]' \
'(--color -c -g)--gray[Turn on gray-scale output]' \
'--help[Display this help and exit.]' \
'--optimization=[Optimization level]:Optimization?:(1 2 3 4 5)' \
'*-v[Verbose logging (may be specified more than once)]' \
'*--verbose[Verbose logging (may be specified more than once)]' \
'--version[Display Twisted version and exit.]' \
&& return 0
s×  #compdef silly2

_arguments -s -A "-*" \
'*::subcmd:->subcmd' \
':output file (*):_files -g "*"' \
"(--accuracy)-a[Select the level of accuracy (1-3)]:Accuracy'\`?:(1 2 3)" \
"(-a)--accuracy=[Select the level of accuracy (1-3)]:Accuracy'\`?:(1 2 3)" \
'(--another-param)-P[another-param]:another-param:_files' \
'(-P)--another-param=[another-param]:another-param:_files' \
'(--color --gray -g)-c[Color on]' \
'(--gray -c -g)--color[Color on]' \
'(--color --gray -c)-g[Turn on gray-scale output]' \
'(--color -c -g)--gray[Turn on gray-scale output]' \
'--help[Display this help and exit.]' \
'--optimization=[Optimization level]:Optimization?:(1 2 3 4 5)' \
'(--other-option)-o[other-option]' \
'(-o)--other-option[other-option]' \
'(--other-param)-p[other-param]:other-param:_files' \
'(-p)--other-param=[other-param]:other-param:_files' \
'--some-option[some-option]' \
'--some-param=[some-param]:some-param:_files' \
'*-v[Verbose logging (may be specified more than once)]' \
'*--verbose[Verbose logging (may be specified more than once)]' \
'--version[Display Twisted version and exit.]' \
&& return 0
local _zsh_subcmds_array
_zsh_subcmds_array=(
"sub1:Sub Command 1"
"sub2:Sub Command 2"
)

_describe "sub-command" _zsh_subcmds_array
)%r(   r‰   Úior   Útypingr   r   Útwisted.pythonr   r   r   Útwisted.python.usager	   r
   r   r   Útwisted.trialr   r   r   r*   r   ÚTestCaserL   r¿   rÆ   r5   rÏ   rQ   rO   rî   rŠ   rú   rÿ   r‘   r‹   r’   r   r   r   ú<module>r
     sò  ððð ð
 €
€
€
Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ð !Ð !à 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TØ "Ð "Ð "Ð "Ð "Ð "ð5ð 5ð 5ð 5ð 5˜ñ 5ô 5ð 5ð,ð ð ð ð Ð#4ð ñ ô ð ð&Að Að AðHSDð SDð SDð SDð SDˆxÔ ñ SDô SDð SDðl?ð ?ð ?ð ?ð ?�(Ô#ñ ?ô ?ð ?ð
ð 
ð 
ð 
ð 
 8Ô#4ñ 
ô 
ð 
ð&ð ð ð ð ˜eœmñ ô ð ð$"ð "ð "ð "ð "˜œñ "ô "ð "ðJð ð ð ð Ð 1ñ ô ð ð8>ð >ð >ð
 ð  ð  ð  ð  ˜œñ  ô  ð  ðF1ð 1ð 1ð 1ð 1�U”]ñ 1ô 1ð 1ð1ð 1ð 1ð 1ð 1�U”]ñ 1ô 1ð 1ðð ð ð ð Ð 1ñ ô ð ð€ð& €€€r   