U
    +ºcJ  ã                   @   sf   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rbe ¡  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)ZassertIsNotNoner   ZCreateParser©Úself© r
   ú4/tmp/pip-unpacked-wheel-1xt1w7un/fire/parser_test.pyÚtestCreateParser   s    zParserTest.testCreateParserc              
   C   s4  |   t g ¡g g f¡ |   t ddg¡ddgg f¡ |   t dddg¡ddgg f¡ |   t ddddg¡ddgdgf¡ |   t dg¡g g f¡ |   t dddg¡g ddgf¡ |   t dddddg¡ddgddgf¡ |   t ddddddg¡dddddgg f¡ |   t ddddddg¡ddddgdgf¡ d S )NÚaÚbú--ÚcÚd)Ú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   sp   |   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   s    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>   s    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   ZassertIsInstanceÚintÚfloatr   r
   r
   r   ÚtestDefaultParseValueNumbersF   s    z'ParserTest.testDefaultParseValueNumbersc                 C   sp   |   t d¡d¡ |   t d¡d¡ |   t d¡d¡ |   t d¡d¡ |   t d¡d¡ |   t d	¡d¡ d S )
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   s    z-ParserTest.testDefaultParseValueStringNumbersc                 C   s   |   t d¡d¡ d S )Nz"'123'"z'123'r   r   r
   r
   r   Ú(testDefaultParseValueQuotedStringNumbersW   s    z3ParserTest.testDefaultParseValueQuotedStringNumbersc                 C   s   |   t d¡d¡ d S )NZ1e5g     jø@r   r   r
   r
   r   Ú!testDefaultParseValueOtherNumbersZ   s    z,ParserTest.testDefaultParseValueOtherNumbersc                 C   sd   |   t d¡dddg¡ |   t d¡dddg¡ |   t d¡dddg¡ |   t d	¡dd
dg¡ d S )Nz	[1, 2, 3]é   é   é   z[1, "2", 3]Ú2z[1, '"2"', 3]z"2"z[1, "hello", 3]r   r   r   r
   r
   r   ÚtestDefaultParseValueLists]   s    ÿÿz%ParserTest.testDefaultParseValueListsc                 C   s   |   t d¡dddg¡ 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   s    z$ParserTest.testDefaultParseValueNonec                 C   s(   |   t d¡d¡ |   t d¡d¡ d S )NÚTrueTÚFalseFr   r   r
   r
   r   ÚtestDefaultParseValueBooln   s    z$ParserTest.testDefaultParseValueBoolc                 C   s(   |   t d¡d¡ |   t d¡d¡ d S )Nz(one, 2, "3"))r-   r)   r.   zone, "2", 3)r-   r+   r*   r   r   r
   r
   r   Ú#testDefaultParseValueBareWordsTupler   s    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)   r.   r0   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   s(   |   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   s(   |   t d¡d¡ |   t d¡d¡ d S )Nz
2017-10-10z1+1r   r   r
   r
   r   Ú testDefaultParseValueIgnoreBinOpŠ   s    z+ParserTest.testDefaultParseValueIgnoreBinOpN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r$   r%   r&   r'   r,   r/   r2   r3   r6   r7   r;   r<   r=   r?   r@   r
   r
   r
   r   r      s(   	r   Ú__main__N)Ú__doc__Ú
__future__r   r   r   Zfirer   r   ZBaseTestCaser   rA   Úmainr
   r
   r
   r   Ú<module>   s   u