o
    Õj±X  ã                   @   sŒ   d Z ddlZddlZddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 G dd	„ d	ej
ƒZG d
d„ dej
ƒZedkrDe ¡  dS dS )zTests for the helptext module.é    N)Ú
formatting)Úhelptext)Útest_components)Ú	testutils©Útracec                       s  e Zd Z‡ fdd„Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9d:„ Zd;d<„ Z ‡  Z!S )=ÚHelpTestc                    s   t ƒ  ¡  dtjd< d S )NÚ1ZANSI_COLORS_DISABLED)ÚsuperÚsetUpÚosÚenviron)Úself©Ú	__class__© úS/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/fire/helptext_test.pyr      s   
zHelpTest.setUpc                 C   sR   t j}tj|tj|ddd}|  d|¡ |  d|¡ |  d|¡ |  d|¡ d S )NÚ
NoDefaults©Úname©Ú	componentr   úNAME
    NoDefaultszSYNOPSIS
    NoDefaultsÚDESCRIPTIONÚNOTES©Útcr   r   ÚHelpTextr   Ú	FireTraceÚassertInÚassertNotIn©r   r   Úhelp_screenr   r   r   ÚtestHelpTextNoDefaults!   s   þzHelpTest.testHelpTextNoDefaultsc                 C   sx   t  ¡ }tj|tj|ddd}|  d|¡ |  d|¡ |  d|¡ |  d|¡ |  d|¡ |  d	|¡ |  d
|¡ d S )Nr   r   r   r   zSYNOPSIS
    NoDefaults COMMANDr   z-COMMANDS
    COMMAND is one of the following:ÚdoubleÚtripler   r   r!   r   r   r   ÚtestHelpTextNoDefaultsObject+   s   þÿz%HelpTest.testHelpTextNoDefaultsObjectc                 C   sb   t  ¡ j}tj|tj|ddd}|  d|¡ |  d|¡ |  d|¡ |  d|¡ |  d|¡ d S )	Nr$   r   r   úNAME
    doubleúSYNOPSIS
    double COUNTr   zPOSITIONAL ARGUMENTS
    COUNTú@NOTES
    You can also use flags syntax for POSITIONAL ARGUMENTS)	r   r   r$   r   r   r   r   r   r    r!   r   r   r   ÚtestHelpTextFunction9   s   
þþzHelpTest.testHelpTextFunctionc                 C   ób   t  ¡ j}tj|tj|ddd}|  d|¡ |  d|¡ |  d|¡ |  d|¡ |  d|¡ d S )	Nr%   r   r   zNAME
    triplezSYNOPSIS
    triple <flags>r   z.FLAGS
    -c, --count=COUNT
        Default: 0r   )	r   ÚWithDefaultsr%   r   r   r   r   r   r    r!   r   r   r   Ú testHelpTextFunctionWithDefaultsF   s   
þþz)HelpTest.testHelpTextFunctionWithDefaultsc                 C   r+   )	NÚtextr   r   úNAME
    textzSYNOPSIS
    text <flags>r   znFLAGS
    -s, --string=STRING
        Default: '00010203040506070809101112131415161718192021222324252627282...r   )	r   r,   r.   r   r   r   r   r   r    r!   r   r   r   Ú$testHelpTextFunctionWithLongDefaultsS   s   
þüz-HelpTest.testHelpTextFunctionWithLongDefaultsc                 C   óR   t j}tj|tj|ddd}|  d|¡ |  d|¡ |  d|¡ |  d|¡ d S )Nr.   r   r   r/   ú#SYNOPSIS
    text ARG1 ARG2 <flags>ú#DESCRIPTION
    Function with kwargzeFLAGS
    --arg3
        Description of arg3.
    Additional undocumented flags may also be accepted.)r   Zfn_with_kwargr   r   r   r   r   r!   r   r   r   ÚtestHelpTextFunctionWithKwargsb   s   þýz'HelpTest.testHelpTextFunctionWithKwargsc                 C   r1   )Nr.   r   r   r/   r2   r3   z¸FLAGS
    -o, --opt=OPT
        Default: True
    The following flags are also accepted.
    --arg3
        Description of arg3.
    Additional undocumented flags may also be accepted.)r   Zfn_with_kwarg_and_defaultsr   r   r   r   r   r!   r   r   r   Ú)testHelpTextFunctionWithKwargsAndDefaultso   s   þûz2HelpTest.testHelpTextFunctionWithKwargsAndDefaultsc                 C   sd   t j ¡ j}tj|tj|ddd}|  d|¡ |  d|¡ |  d|¡ |  d|¡ |  	d|¡ d S )	Nr$   r   r   r'   zSYNOPSIS
    double <flags>r   zBFLAGS
    -c, --count=COUNT
        Type: float
        Default: 0r   )
r   Úpy3ÚWithDefaultsAndTypesr$   r   r   r   r   r   r    r!   r   r   r   Ú(testHelpTextFunctionWithDefaultsAndTypes~   s   
ÿþþz1HelpTest.testHelpTextFunctionWithDefaultsAndTypesc                 C   sd   t j ¡ j}tj|tj|ddd}|  d|¡ |  d|¡ |  	d|¡ |  d|¡ |  	d|¡ d S )	NÚget_intr   r   zNAME
    get_intzSYNOPSIS
    get_int <flags>r   zMFLAGS
    -v, --value=VALUE
        Type: Optional[int]
        Default: Noner   )
r   r6   r7   r9   r   r   r   r   r   r    r!   r   r   r   Ú+testHelpTextFunctionWithTypesAndDefaultNoneŒ   s   
ÿþýz4HelpTest.testHelpTextFunctionWithTypesAndDefaultNonec                 C   sd   t j ¡ j}tj|tj|ddd}|  d|¡ |  d|¡ |  d|¡ |  d|¡ |  d|¡ d S )	Nr$   r   r   r'   r(   r   z2POSITIONAL ARGUMENTS
    COUNT
        Type: floatr)   )	r   r6   Ú	WithTypesr$   r   r   r   r   r   r!   r   r   r   ÚtestHelpTextFunctionWithTypes›   s    þþþz&HelpTest.testHelpTextFunctionWithTypesc                 C   sX   t j ¡ j}tj|tj|ddd}|  d|¡ |  d|¡ |  	d|¡ |  d|¡ d S )NÚ	long_typer   r   zNAME
    long_typezSYNOPSIS
    long_type LONG_OBJr   r)   )
r   r6   r;   r=   r   r   r   r   r   r    r!   r   r   r   Ú!testHelpTextFunctionWithLongTypesª   s   þþz*HelpTest.testHelpTextFunctionWithLongTypesc                 C   sP   dj }tj|t |d¡d}|  d|¡ |  d|¡ |  d|¡ |  d|¡ d S )NÚtestÚupperr   zNAME
    upperzSYNOPSIS
    upperúDESCRIPTION
r   )r@   r   r   r   r   r   r    r!   r   r   r   ÚtestHelpTextFunctionWithBuiltin½   s   
þz(HelpTest.testHelpTextFunctionWithBuiltinc                 C   sB   t }tj|t |d¡d}|  d|¡ |  d|¡ |  d|¡ d S )NÚintr   zNAME
    intzSYNOPSIS
    intrA   )rC   r   r   r   r   r   r!   r   r   r   ÚtestHelpTextFunctionIntTypeÉ   s   ÿz$HelpTest.testHelpTextFunctionIntTypec                 C   sN   g }t j|t |d¡d}|  d|¡ |  d|¡ |  d|¡ |  d|¡ d S )NÚlistr   úNAME
    listúSYNOPSIS
    list COMMANDr   ú.COMMANDS
    COMMAND is one of the following:
©r   r   r   r   r   r    r!   r   r   r   ÚtestHelpTextEmptyListÓ   s   
þÿzHelpTest.testHelpTextEmptyListc                 C   s\   dg}t j|t |d¡d}|  d|¡ |  d|¡ |  d|¡ |  d|¡ |  d|¡ d S )	Né
   rE   r   rF   rG   r   rH   z     append
rI   r!   r   r   r   ÚtestHelpTextShortListâ   s   
þÿzHelpTest.testHelpTextShortListc                 C   sZ   d}t j|t |d¡d}|  d|¡ |  d|¡ |  d|¡ |  d|¡ |  d|¡ d S )	Né   Ú7r   z
NAME
    7zSYNOPSIS
    7 COMMAND | VALUEr   rH   z*VALUES
    VALUE is one of the following:
rI   r!   r   r   r   ÚtestHelpTextIntô   s   ÿÿzHelpTest.testHelpTextIntc                 C   s8   t j}tj|t |d¡d}|  d|¡ |  d|¡ d S )NÚOldStyleEmptyr   zNAME
    OldStyleEmptyzSYNOPSIS
    OldStyleEmpty)r   rP   r   r   r   r   r   r!   r   r   r   ÚtestHelpTextNoInit  s   
þzHelpTest.testHelpTextNoInitc                 C   ó<   t jjj}tj|t |d¡d}|  d|¡ |  d|¡ d S )NÚwith_defaultr   zNAME
    with_defaultzFLAGS
    -x, --x=X)	r   r6   ÚKeywordOnlyrS   r   r   r   r   r   ©r   r   Úoutputr   r   r   Ú+testHelpTextKeywordOnlyArgumentsWithDefault	  ó   
ÿz4HelpTest.testHelpTextKeywordOnlyArgumentsWithDefaultc                 C   rR   )Nr$   r   r'   z&FLAGS
    -c, --count=COUNT (required))	r   r6   rT   r$   r   r   r   r   r   rU   r   r   r   Ú.testHelpTextKeywordOnlyArgumentsWithoutDefault  rX   z7HelpTest.testHelpTextKeywordOnlyArgumentsWithoutDefaultc                 C   s\   t j ¡ j}tj|dd}tj||d}|  d|¡ |  d|¡ |  d|¡ |  d|¡ d S )NÚFunctionMixedDefaultsr   r   zNAME
    FunctionMixedDefaultszFunctionMixedDefaults <flags>z--alpha=ALPHA (required)z --beta=BETA
        Default: '0')	r   r6   ÚHelpTextComponentÚidentityr   r   r   r   r   )r   r   ÚtrV   r   r   r   Ú!testHelpTextFunctionMixedDefaults  s   z*HelpTest.testHelpTextFunctionMixedDefaultsc                 C   sD   t  ¡ }tj|dd}t ||¡}d}|  t |¡ 	¡ | 	¡ ¡ d S )NÚClassWithDocstringr   as  
NAME
    ClassWithDocstring - Test class for testing help text output.

SYNOPSIS
    ClassWithDocstring COMMAND | VALUE

DESCRIPTION
    This is some detail description of this test class.

COMMANDS
    COMMAND is one of the following:

     print_msg
       Prints a message.

VALUES
    VALUE is one of the following:

     message
       The default message to print.)
r   r_   r   r   r   r   ÚassertEqualÚtextwrapÚdedentÚstrip©r   r   r]   Zhelp_outputÚexpected_outputr   r   r   ÚtestHelpScreen   s   ÿzHelpTest.testHelpScreenc                 C   sD   t jj}tj|dd}t ||¡}d}|  t 	|¡ 
¡ | 
¡ ¡ d S )NÚexample_generatorr   a­  
    NAME
        example_generator - Generators have a ``Yields`` section instead of a ``Returns`` section.

    SYNOPSIS
        example_generator N

    DESCRIPTION
        Generators have a ``Yields`` section instead of a ``Returns`` section.

    POSITIONAL ARGUMENTS
        N
            The upper limit of the range to generate, from 0 to `n` - 1.

    NOTES
        You can also use flags syntax for POSITIONAL ARGUMENTS)r   ZClassWithMultilineDocstringrg   r   r   r   r   r`   ra   rb   rc   rd   r   r   r   Ú/testHelpScreenForFunctionDocstringWithLineBreak<  s   ÿz8HelpTest.testHelpScreenForFunctionDocstringWithLineBreakc                 C   sF   t  ¡ j}tj|dd}t ||¡}d}|  t 	|¡ 
¡ | 
¡ ¡ d S )Nr$   r   a  
    NAME
        double - Returns the input multiplied by 2.

    SYNOPSIS
        double <flags>

    DESCRIPTION
        Returns the input multiplied by 2.

    FLAGS
        -c, --count=COUNT
            Default: 0
            Input number that you want to double.)r   r,   r$   r   r   r   r   r`   ra   rb   rc   rd   r   r   r   Ú0testHelpScreenForFunctionFunctionWithDefaultArgsS  s   
ÿz9HelpTest.testHelpScreenForFunctionFunctionWithDefaultArgsc                 C   st   t  ¡ j}tj|dd}t ||¡}|  t 	d¡d |¡ |  t 	d¡d |¡ |  t 	d¡d t 
d	¡ |¡ d S )
Nr%   r   ÚNAMEz
    tripleÚSYNOPSISz
    triple <flags>ÚFLAGSz
    -c, --Úcount)r   r,   r%   r   r   r   r   r   r   ÚBoldZ	Underline©r   r   r]   r"   r   r   r   ÚtestHelpTextUnderlineFlagh  s   
þÿýz"HelpTest.testHelpTextUnderlineFlagc                 C   s~   t  ¡ }tj|dd}t ||¡}|  t d¡d |¡ |  t d¡d |¡ |  t 	d¡d |¡ |  t d	¡d |¡ d S )
Nr_   r   rj   z
    ClassWithDocstringZCOMMANDSÚ
ZCOMMANDz is one of the following:
Z	print_msg)
r   r_   r   r   r   r   r   r   rn   ZBoldUnderlinero   r   r   r   ÚtestHelpTextBoldCommandNameu  s   ÿþz$HelpTest.testHelpTextBoldCommandNamec                 C   sz   t  ¡ }tj|dd}tj||dd}t|ƒ |  d|¡ |  d|¡ |  d|¡ |  d|¡ |  d	|¡ |  d
|¡ d S )NÚTypedPropertiesr   T©r   r   ÚverboseZGROUPSzGROUP is one of the following:z@charlie
       Class with functions that have default arguments.ZVALUESzVALUE is one of the following:Úalpha)r   rs   r   r   r   r   Úprintr   ro   r   r   r   Ú$testHelpTextObjectWithGroupAndValues  s   ÿþz-HelpTest.testHelpTextObjectWithGroupAndValuesc                 C   sH   d}t j|ddd}| ¡  tj||dd}|  d|¡ |  d|¡ d S )	Né	   rC   ú-©r   Ú	separatorFrt   zint -zint - -)r   r   ÚAddSeparatorr   r   r   r    ro   r   r   r   Ú+testHelpTextNameSectionCommandWithSeparator  s   z4HelpTest.testHelpTextNameSectionCommandWithSeparatorc                 C   sN   t  ¡ j}tj|ddd}| ¡  tj||dd}|  d|¡ |  d|¡ d S )Nr$   rz   r{   Trt   zdouble -z
double - -)	r   r,   r$   r   r   r}   r   r   r   ro   r   r   r   Ú2testHelpTextNameSectionCommandWithSeparatorVerbose˜  s   
z;HelpTest.testHelpTextNameSectionCommandWithSeparatorVerbosec                 C   s~   t j}tj|dd}t ||¡}|  t d¡d |¡ |  t d¡d |¡ |  t d¡d |¡ |  d	|¡ |  d
|¡ d S )NÚ	shortargsr   rj   z
    shortargsrk   z
    shortargs <flags>rl   z
    -f, --firstz
    --lastz
    --late)	r   Zfn_with_multiple_defaultsr   r   r   r   r   r   rn   ro   r   r   r   Ú2testHelpTextMultipleKeywoardArgumentsWithShortArgs   s   þþz;HelpTest.testHelpTextMultipleKeywoardArgumentsWithShortArgs)"Ú__name__Ú
__module__Ú__qualname__r   r#   r&   r*   r-   r0   r4   r5   r8   r:   r<   r>   rB   rD   rJ   rL   rO   rQ   rW   rY   r^   rf   rh   ri   rp   rr   rx   r~   r   r   Ú__classcell__r   r   r   r   r      s>    

	r   c                   @   sl   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ ZdS )Ú	UsageTestc                 C   óF   t  ¡ }tj|dd}tj||dd}d}|  |t |¡ 	d¡¡ d S )Nr   r   F©r   ru   ú™
    Usage: NoDefaults <command>
      available commands:    double | triple

    For detailed information on this command, run:
      NoDefaults --helprq   ©
r   r   r   r   r   Ú	UsageTextr`   ra   rb   Úlstrip©r   r   r]   Zusage_outputre   r   r   r   ÚtestUsageOutput±  s   þzUsageTest.testUsageOutputc                 C   r‡   )Nr   r   Trˆ   r‰   rq   rŠ   r   r   r   r   ÚtestUsageOutputVerboseÀ  s   þz UsageTest.testUsageOutputVerbosec                 C   s\   t  ¡ j}tj|dd}| |ddgd d ¡ tj||dd}d}|  |t	 
|¡ d¡¡ d S )Nr   r   r$   Frˆ   zv
    Usage: NoDefaults double COUNT

    For detailed information on this command, run:
      NoDefaults double --helprq   )r   r   r$   r   r   ZAddAccessedPropertyr   r‹   r`   ra   rb   rŒ   r   r   r   r   ÚtestUsageOutputMethodÎ  s   
þzUsageTest.testUsageOutputMethodc                 C   sD   t j}tj|dd}tj||dd}d}|  |t |¡ 	d¡¡ d S )NÚfunction_with_helpr   Frˆ   z¡
    Usage: function_with_help <flags>
      optional flags:        --help

    For detailed information on this command, run:
      function_with_help -- --helprq   )
r   r‘   r   r   r   r‹   r`   ra   rb   rŒ   r   r   r   r   ÚtestUsageOutputFunctionWithHelpÜ  s   þz)UsageTest.testUsageOutputFunctionWithHelpc                 C   óD   t j}tj|dd}tj||dd}d}|  t |¡ 	d¡|¡ d S )NÚmultiplier_with_docstringr   Frˆ   z°
    Usage: multiplier_with_docstring NUM <flags>
      optional flags:        --rate

    For detailed information on this command, run:
      multiplier_with_docstring --helprq   )
r   r”   r   r   r   r‹   r`   ra   rb   rŒ   r   r   r   r   Ú$testUsageOutputFunctionWithDocstringê  ó   þz.UsageTest.testUsageOutputFunctionWithDocstringc                 C   sN   t j ¡ j}tj|dd}tj||dd}d}t 	|¡ 
d¡}|  ||¡ d S )NrZ   r   Frˆ   zÉ
    Usage: FunctionMixedDefaults <flags>
      optional flags:        --beta
      required flags:        --alpha

    For detailed information on this command, run:
      FunctionMixedDefaults --helprq   )r   r6   r[   r\   r   r   r   r‹   ra   rb   rŒ   r`   r   r   r   r   Ú$testUsageOutputFunctionMixedDefaultsø  s   z.UsageTest.testUsageOutputFunctionMixedDefaultsc                 C   sH   t  ¡ }tj|ddd}tj||dd}d}|  t |¡ 	d¡|¡ d S )NÚCallableWithKeywordArgumentú@r{   Frˆ   zÛ
    Usage: CallableWithKeywordArgument <command> | <flags>
      available commands:    print_msg
      flags are accepted

    For detailed information on this command, run:
      CallableWithKeywordArgument -- --helprq   )
r   r˜   r   r   r   r‹   r`   ra   rb   rŒ   r   r   r   r   ÚtestUsageOutputCallable  s   ÿþz!UsageTest.testUsageOutputCallablec                 C   r“   )NÚInstanceVarsr   Frˆ   z~
    Usage: InstanceVars --arg1=ARG1 --arg2=ARG2

    For detailed information on this command, run:
      InstanceVars --helprq   ©
r   r›   r   r   r   r‹   r`   ra   rb   rŒ   r   r   r   r   Ú'testUsageOutputConstructorWithParameter  s   þz1UsageTest.testUsageOutputConstructorWithParameterc                 C   r“   )Nr›   r   Trˆ   z«
    Usage: InstanceVars <command> | --arg1=ARG1 --arg2=ARG2
      available commands:    run

    For detailed information on this command, run:
      InstanceVars --helprq   rœ   r   r   r   r   Ú.testUsageOutputConstructorWithParameterVerbose$  r–   z8UsageTest.testUsageOutputConstructorWithParameterVerbosec                 C   sB   i }t j|dd}tj||dd}d}|  t |¡ d¡|¡ d S )NZ	EmptyDictr   Trˆ   z`
    Usage: EmptyDict

    For detailed information on this command, run:
      EmptyDict --helprq   ©r   r   r   r‹   r`   ra   rb   rŒ   r   r   r   r   ÚtestUsageOutputEmptyDict2  ó   þz"UsageTest.testUsageOutputEmptyDictc                 C   sB   d }t j|dd}tj||dd}d}|  t |¡ d¡|¡ d S )NÚNoner   Trˆ   zV
    Usage: None

    For detailed information on this command, run:
      None --helprq   rŸ   r   r   r   r   ÚtestUsageOutputNone?  r¡   zUsageTest.testUsageOutputNonec                 C   s8   t j}tj|dd}tj||dd}d}|  ||¡ d S )NÚSubPointr   Frˆ   zUsage: SubPoint --x=X --y=Y)r   r¤   r   r   r   r‹   r   r   r   r   r   Ú,testInitRequiresFlagSyntaxSubclassNamedTupleL  s
   z6UsageTest.testInitRequiresFlagSyntaxSubclassNamedTupleN)r‚   rƒ   r„   rŽ   r   r   r’   r•   r—   rš   r   rž   r    r£   r¥   r   r   r   r   r†   ¯  s    r†   Ú__main__)Ú__doc__r   ra   Úfirer   r   r   r   r   r   ZBaseTestCaser   r†   r‚   Úmainr   r   r   r   Ú<module>   s"       %ÿ