o
    ŠÄŽië  ã                   @   sF   d Z ddlmZ ddlmZ G dd„ dejƒZedkr!e ¡  dS dS )zTests for the parser module.é    )Úparser)Ú	testutilsc                   @   s¬   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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 )*Ú
ParserTestc                 C   s   |   t ¡ ¡ d S )N)ÚassertIsNotNoner   ÚCreateParser©Úself© r	   úL/home/jeff/fluffinator/venv/lib/python3.10/site-packages/fire/parser_test.pyÚtestCreateParser   s   zParserTest.testCreateParserc                 C   s  |   t g ¡g g f¡ |   t ddg¡ddgg f¡ |   t g d¢¡ddgg f¡ |   t g d¢¡ddgdgf¡ |   t dg¡g g f¡ |   t g d¢¡g ddgf¡ |   t g d	¢¡ddgddgf¡ |   t g d
¢¡g d	¢g f¡ |   t g d¢¡g d¢dgf¡ d S )NÚaÚb)r   r   ú--)r   r   r   Úcr   r   )r   r   Údr   )r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )ÚassertEqualr   ÚSeparateFlagArgsr   r	   r	   r
   ÚtestSeparateFlagArgs   s.   
ÿÿÿ
ÿÿ
ÿÿzParserTest.testSeparateFlagArgsc                 C   sL   |   t d¡d¡ |   t d¡d¡ |   t d¡d¡ |   t d¡d¡ d S )NÚhellozpath/file.jpgúhello worldú--flag©r   r   ÚDefaultParseValuer   r	   r	   r
   ÚtestDefaultParseValueStrings,   s   z'ParserTest.testDefaultParseValueStringsc                 C   óp   |   t d¡d¡ |   t d¡d¡ |   t d¡d¡ |   t d¡d¡ |   t d¡d¡ |   t d	¡d¡ d S )
Nz'hello'r   z'hello world'r   z'--flag'r   z"hello"z"hello world"z"--flag"r   r   r	   r	   r
   Ú"testDefaultParseValueQuotedStrings2   ó   z-ParserTest.testDefaultParseValueQuotedStringsc                 C   sp   |   t d¡d¡ |   t d¡d¡ |   t d¡d¡ |   t d¡d¡ |   t d¡d ¡ |   t d¡d¡ d S )Nú-r   z---z----ÚNonez'None'r   r   r	   r	   r
   Ú#testDefaultParseValueSpecialStrings:   r   z.ParserTest.testDefaultParseValueSpecialStringsc                 C   s‚   |   t d¡d¡ |   t d¡d¡ |   t d¡d¡ |  t d¡t¡ |  t d¡t¡ |   t d¡d¡ |   t d	¡d
¡ d S )NÚ23é   z-23iéÿÿÿú23.0g      7@ú23.5g     €7@z-23.5g     €7À)r   r   r   ÚassertIsInstanceÚintÚfloatr   r	   r	   r
   ÚtestDefaultParseValueNumbersB   s   z'ParserTest.testDefaultParseValueNumbersc                 C   r   )
Nz'23'r    z'23.0'r"   z'23.5'r#   z"23"z"23.0"z"23.5"r   r   r	   r	   r
   Ú"testDefaultParseValueStringNumbersK   r   z-ParserTest.testDefaultParseValueStringNumbersc                 C   ó   |   t d¡d¡ d S )Nz"'123'"z'123'r   r   r	   r	   r
   Ú(testDefaultParseValueQuotedStringNumbersS   ó   z3ParserTest.testDefaultParseValueQuotedStringNumbersc                 C   r)   )NÚ1e5g     jø@r   r   r	   r	   r
   Ú!testDefaultParseValueOtherNumbersV   r+   z,ParserTest.testDefaultParseValueOtherNumbersc                 C   s\   |   t d¡g d¢¡ |   t d¡g d¢¡ |   t d¡g d¢¡ |   t d¡g d¢¡ d S )	Nz	[1, 2, 3])é   é   é   z[1, "2", 3])r.   Ú2r0   z[1, '"2"', 3])r.   z"2"r0   z[1, "hello", 3])r.   r   r0   r   r   r	   r	   r
   ÚtestDefaultParseValueListsY   s   ÿÿz%ParserTest.testDefaultParseValueListsc                 C   s   |   t d¡g d¢¡ d S )Nz[one, 2, "3"]©Úoner/   Ú3r   r   r	   r	   r
   Ú#testDefaultParseValueBareWordsLists`   s   z.ParserTest.testDefaultParseValueBareWordsListsc                 C   s   |   t d¡dddœ¡ d S )Nz{"abc": 5, "123": 1}é   r.   )ÚabcÚ123r   r   r	   r	   r
   ÚtestDefaultParseValueDictc   s   ÿz$ParserTest.testDefaultParseValueDictc                 C   s   |   t d¡d ¡ d S )Nr   r   r   r	   r	   r
   ÚtestDefaultParseValueNoneg   r+   z$ParserTest.testDefaultParseValueNonec                 C   ó(   |   t d¡d¡ |   t d¡d¡ d S )NÚTrueTÚFalseFr   r   r	   r	   r
   ÚtestDefaultParseValueBoolj   ó   z$ParserTest.testDefaultParseValueBoolc                 C   r<   )Nz(one, 2, "3")r3   zone, "2", 3)r4   r1   r0   r   r   r	   r	   r
   Ú#testDefaultParseValueBareWordsTuplen   r@   z.ParserTest.testDefaultParseValueBareWordsTuplec                 C   s"   |   t d¡dddddœg¡ d S )Nz,[(A, 2, "3"), 5, {alpha: 10.2, beta: "cat"}])ÚAr/   r5   r7   gffffff$@Úcat)ÚalphaÚbetar   r   r	   r	   r
   Ú%testDefaultParseValueNestedContainersr   s   ÿýz0ParserTest.testDefaultParseValueNestedContainersc                 C   s(   |   t d¡d¡ |   t d¡d¡ d S )Nz"0#comments"z
0#commentsr   r   r   r	   r	   r
   ÚtestDefaultParseValueCommentsx   s   z(ParserTest.testDefaultParseValueCommentsc                 C   ó(   |   t d¡d¡ |   t d¡d¡ d S )Nz[(A, 2, "3"), 5zx=10r   r   r	   r	   r
   ÚtestDefaultParseValueBadLiteral}   s   
ÿz*ParserTest.testDefaultParseValueBadLiteralc                 C   s   |   t d¡d¡ d S )Nú"r   r   r	   r	   r
   Ú testDefaultParseValueSyntaxErrorƒ   s   z+ParserTest.testDefaultParseValueSyntaxErrorc                 C   rH   )Nz
2017-10-10z1+1r   r   r	   r	   r
   Ú testDefaultParseValueIgnoreBinOp‡   r@   z+ParserTest.testDefaultParseValueIgnoreBinOpN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r'   r(   r*   r-   r2   r6   r:   r;   r?   rA   rF   rG   rI   rK   rL   r	   r	   r	   r
   r      s*    	r   Ú__main__N)Ú__doc__Úfirer   r   ÚBaseTestCaser   rM   Úmainr	   r	   r	   r
   Ú<module>   s   vÿ