o
    †íZbJ  ã                   @   sj   d 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	e
d	kr3e ¡  d
S d
S )zTests for the parser module.é    )Úabsolute_import)Údivision)Úprint_function)Ú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   ZCreateParser©Úself© r   ú@D:\Projects\ConvertPro\env\Lib\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   Z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   ÚtestDefaultParseValueStrings0   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   Ú"testDefaultParseValueQuotedStrings6   ó   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   ÚtestDefaultParseValueNumbersF   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   Ú"testDefaultParseValueStringNumbersO   r   z-ParserTest.testDefaultParseValueStringNumbersc                 C   ó   |   t d¡d¡ d S )Nz"'123'"z'123'r   r	   r   r   r   Ú(testDefaultParseValueQuotedStringNumbersW   ó   z3ParserTest.testDefaultParseValueQuotedStringNumbersc                 C   r*   )NZ1e5g     jø@r   r	   r   r   r   Ú!testDefaultParseValueOtherNumbersZ   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   ÚtestDefaultParseValueLists]   s   ÿÿz%ParserTest.testDefaultParseValueListsc                 C   s   |   t d¡g d¢¡ d S )Nz[one, 2, "3"]©Úoner/   Ú3r   r	   r   r   r   Ú#testDefaultParseValueBareWordsListsd   s   z.ParserTest.testDefaultParseValueBareWordsListsc                 C   s   |   t d¡dddœ¡ d S )Nz{"abc": 5, "123": 1}é   r.   )ÚabcZ123r   r	   r   r   r   ÚtestDefaultParseValueDictg   s   ÿz$ParserTest.testDefaultParseValueDictc                 C   s   |   t d¡d ¡ d S )Nr   r   r	   r   r   r   ÚtestDefaultParseValueNonek   r,   z$ParserTest.testDefaultParseValueNonec                 C   ó(   |   t d¡d¡ |   t d¡d¡ d S )NÚTrueTÚFalseFr   r	   r   r   r   ÚtestDefaultParseValueBooln   ó   z$ParserTest.testDefaultParseValueBoolc                 C   r;   )Nz(one, 2, "3")r3   zone, "2", 3)r4   r1   r0   r   r	   r   r   r   Ú#testDefaultParseValueBareWordsTupler   r?   z.ParserTest.testDefaultParseValueBareWordsTuplec                 C   s"   |   t d¡dddddœg¡ d S )Nz+[(A, 2, "3"), 5, {alph: 10.2, beta: "cat"}])ÚAr/   r5   r7   gffffff$@Úcat)ZalphÚbetar   r	   r   r   r   Ú%testDefaultParseValueNestedContainersv   s   þz0ParserTest.testDefaultParseValueNestedContainersc                 C   s(   |   t d¡d¡ |   t d¡d¡ d S )Nz"0#comments"z
0#commentsr   r   r	   r   r   r   ÚtestDefaultParseValueComments{   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   rF   )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   r9   r:   r>   r@   rD   rE   rG   rI   rJ   r   r   r   r   r      s*    	r   Ú__main__N)Ú__doc__Z
__future__r   r   r   Úfirer   r   ZBaseTestCaser   rK   Úmainr   r   r   r   Ú<module>   s   uÿ