
    ?d=-                        d Z ddlZddlZddlZddlZddlZddlmZ ddlm	Z	 ddlm
Z
  G d de
j                        Zd Zd	 Zd
 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edk(  r ej.                          yy)zTests for yapf.style.    N)style)utils)yapf_test_helperc                   *    e Zd Zd Zd Zd Zd Zd Zy)	UtilsTestc                    dD ]'  }| j                  t        j                  |      d       ) dD ]'  }| j                  t        j                  |      d       ) dD ]'  }| j                  t        j                  |      d       ) | j                  t              5 }t        j                  d       d d d        | j                  dt        j                               y # 1 sw Y   /xY w)	N) spacez"space"z'space'SPACE)fixedz"fixed"z'fixed'FIXED)zvalign-rightz"valign-right"z'valign-right'valign_rightz"valign_right"z'valign_right'zVALIGN-RIGHTblahblahz,unknown continuation align style: 'blahblah')assertEqualr   &_ContinuationAlignStyleStringConverterassertRaises
ValueErrorassertInstr	exception)selfcont_align_spacecont_align_fixedcont_align_valignrightctxs        6/usr/lib/python3/dist-packages/yapftests/style_test.py)testContinuationAlignStyleStringConverterz3UtilsTest.testContinuationAlignStyleStringConverter   s    A 


6
67G
H
 > 


6
67G
H
# 
 

6
67M
N

 
		:	& ?#22:>?MM@cmm$&? ?s   CC'c                 :   | j                  t        j                  d      ddg       | j                  t        j                  d      ddg       | j                  t        j                  d      dg       | j                  t        j                  d      g d       y )Nzfoo, barfoobarzfoo,barz  foozjoe  ,foo,  bar)joer   r    )r   r   _StringListConverterr   s    r   testStringListConverterz!UtilsTest.testStringListConverter8   s~    U//
;eU^LU//	:UENKU//85'B""#457LN    c                 ,   | j                  t        j                  d      d       | j                  t        j                  d      d       | j                  t        j                  d      d       | j                  t        j                  d      d       y )NtrueT1falseF0)r   r   _BoolConverterr#   s    r   testBoolConverterzUtilsTest.testBoolConverter?   sn    U))&148U))#.5U))'2E:U))#.6r%   c                     | j                  t        j                  d      g d       | j                  t        j                  d      g d       | j                  t        j                  d      g d       y )N1, 2, 3         z[ 1, 2, 3 ]z[ 1, 2, 3, ])r   r   _IntListConverterr#   s    r   testIntListConverterzUtilsTest.testIntListConverterE   sS    U,,Y7CU,,];YGU,,^<iHr%   c                     | j                  t        j                  d      d       | j                  t        j                  d      g d       y )N10
   r.   r/   )r   r   _IntOrIntListConverterr#   s    r   testIntOrIntListConverterz#UtilsTest.testIntOrIntListConverterJ   s8    U11$7<U11)<iHr%   N)__name__
__module____qualname__r   r$   r,   r4   r9    r%   r   r   r      s    &2N7I
Ir%   r   c                      | d   dk(  xr | d   S )NCOLUMN_LIMITP   SPLIT_COMPLEX_COMPREHENSIONr=   cfgs    r   _LooksLikeGoogleStylerD   O   s    	^		"	Is+H'IIr%   c                     | d   dk(  S )Nr?   O   r=   rB   s    r   _LooksLikePEP8StylerG   S   s    	^		""r%   c                     | d   S )NDEDENT_CLOSING_BRACKETSr=   rB   s    r   _LooksLikeFacebookStylerJ   W   s    	&	''r%   c                     | d   S )NSPLIT_BEFORE_DOTr=   rB   s    r   _LooksLikeYapfStylerM   [   s    		  r%   c                   :    e Zd Zed        Zd Zd Zd Zd Zd Z	y)PredefinedStylesByNameTestc                 R    t        j                  t        j                                y Nr   SetGlobalStyleCreatePEP8Styleclss    r   
setUpClassz%PredefinedStylesByNameTest.setUpClassa       	..01r%   c                 b    t        j                  d       }| j                  t        |             y rQ   r   CreateStyleFromConfig
assertTruerG   r   rC   s     r   testDefaultz&PredefinedStylesByNameTest.testDefaulte   s$    

%
%d
+COO',-r%   c                 p    dD ]1  }t        j                  |      }| j                  t        |             3 y )N)PEP8pep8Pep8rZ   )r   	pep8_namerC   s      r   testPEP8ByNamez)PredefinedStylesByNameTest.testPEP8ByNamej   s3    - 0	''	2c
oo)#./0r%   c                 p    dD ]1  }t        j                  |      }| j                  t        |             3 y )N)googleGoogleGOOGLE)r   r[   r\   rD   )r   google_namerC   s      r   testGoogleByNamez+PredefinedStylesByNameTest.testGoogleByNameo   s3    5 2''4c
oo+C012r%   c                 p    dD ]1  }t        j                  |      }| j                  t        |             3 y )N)yapfYAPF)r   r[   r\   rM   )r   	yapf_namerC   s      r   testYapfByNamez)PredefinedStylesByNameTest.testYapfByNamet   s3    % 0	''	2c
oo)#./0r%   c                 p    dD ]1  }t        j                  |      }| j                  t        |             3 y )N)facebookFACEBOOKFacebook)r   r[   r\   rJ   )r   fb_namerC   s      r   testFacebookByNamez-PredefinedStylesByNameTest.testFacebookByNamey   s3    7 4''0c
oo-c234r%   N)
r:   r;   r<   classmethodrW   r^   rd   rj   ro   ru   r=   r%   r   rO   rO   _   s-    2 2.
0
2
0
4r%   rO   c                   n    e Zd Zed        Zed        Zd Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd Zy)StyleFromFileTestc                     t        j                         | _        t        j                  t        j
                                y rQ   )tempfilemkdtemptest_tmpdirr   rS   rT   rU   s    r   rW   zStyleFromFileTest.setUpClass   s)    &&(CO	..01r%   c                 B    t        j                  | j                         y rQ   )shutilrmtreer|   rU   s    r   tearDownClasszStyleFromFileTest.tearDownClass   s    
MM#//"r%   c                     t        j                  d      }t        j                  | j                  |      5 }t        j                  |      }| j                  t        |             | j                  |d   d       d d d        y # 1 sw Y   y xY w)Nz?        [style]
        continuation_indent_width = 20
        CONTINUATION_INDENT_WIDTH   
textwrapdedentr   TempFileContentsr|   r   r[   r\   rG   r   r   rC   filepaths      r   testDefaultBasedOnStylez)StyleFromFileTest.testDefaultBasedOnStyle   s|    
//  C 
		 0 0#	6 =(''1c
oo)#./
s67<= = =   ABBc                     t        j                  d      }t        j                  | j                  |      5 }t        j                  |      }| j                  t        |             | j                  |d   d       d d d        y # 1 sw Y   y xY w)Nz]        [style]
        based_on_style = pep8
        continuation_indent_width = 40
        r   (   r   r   s      r   testDefaultBasedOnPEP8Stylez-StyleFromFileTest.testDefaultBasedOnPEP8Style   s|    
//  C
 
		 0 0#	6 =(''1c
oo)#./
s67<= = =r   c                     t        j                  d      }t        j                  | j                  |      5 }t        j                  |      }| j                  t        |             | j                  |d   d       d d d        y # 1 sw Y   y xY w)Nz_        [style]
        based_on_style = google
        continuation_indent_width = 20
        r   r   )
r   r   r   r   r|   r   r[   r\   rD   r   r   s      r   testDefaultBasedOnGoogleStylez/StyleFromFileTest.testDefaultBasedOnGoogleStyle   s|    
//  C
 
		 0 0#	6 =(''1c
oo+C01
s67<= = =r   c                     t        j                  d      }t        j                  | j                  |      5 }t        j                  |      }| j                  t        |             | j                  |d   d       d d d        y # 1 sw Y   y xY w)Nza        [style]
        based_on_style = facebook
        continuation_indent_width = 20
        r   r   )
r   r   r   r   r|   r   r[   r\   rJ   r   r   s      r   testDefaultBasedOnFacebookStylez1StyleFromFileTest.testDefaultBasedOnFacebookStyle   s|    
//  C
 
		 0 0#	6 =(''1c
oo-c23
s67<= = =r   c                 J   t        j                  d      }t        j                  | j                  |      5 }t        j                  |      }| j                  t        |             | j                  |d   d       | j                  |d   d       d d d        y # 1 sw Y   y xY w)Nz        [style]
        based_on_style = pep8
        SPLIT_BEFORE_NAMED_ASSIGNS=False
        split_before_logical_operator = true
        SPLIT_BEFORE_NAMED_ASSIGNSFSPLIT_BEFORE_LOGICAL_OPERATORTr   r   s      r   testBoolOptionValuez%StyleFromFileTest.testBoolOptionValue   s    
//  C 
		 0 0#	6 C(''1c
oo)#./
s78%@
s:;TB	C C Cs   ABB"c                 $   t        j                  d      }t        j                  | j                  |      5 }t        j                  |      }| j                  t        |             | j                  |d   g d       d d d        y # 1 sw Y   y xY w)Nz^        [style]
        based_on_style = pep8
        I18N_FUNCTION_CALL = N_, V_, T_
        I18N_FUNCTION_CALL)N_V_T_r   r   s      r   testStringListOptionValuez+StyleFromFileTest.testStringListOptionValue   s    
//  C
 
		 0 0#	6 F(''1c
oo)#./
s/02DEF F Fs   ABBc                     | j                  t        j                  d      5  t        j                  d       d d d        y # 1 sw Y   y xY w)Nz!is not a valid style or file pathz/8822/xyznosuchfileassertRaisesRegexr   StyleConfigErrorr[   r#   s    r   testErrorNoStyleFilez&StyleFromFileTest.testErrorNoStyleFile   s@    			 6 6 C
E 9!!"789 9 9s   A  A	c                 ,   t        j                  d      }t        j                  | j                  |      5 }| j                  t        j                  d      5  t        j                  |       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nz+        [s]
        indent_width=2
        Unable to find section	r   r   r   r   r|   r   r   r   r[   r   s      r   testErrorNoStyleSectionz)StyleFromFileTest.testErrorNoStyleSection   s    
//  C 
		 0 0#	6 .(!!%"8"8":< .##H-.. .. .. .#   !B
A>-B
>B	B

Bc                 ,   t        j                  d      }t        j                  | j                  |      5 }| j                  t        j                  d      5  t        j                  |       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nz@        [style]
        indent_width=2
        hummus=2
        Unknown style optionr   r   s      r   testErrorUnknownStyleOptionz-StyleFromFileTest.testErrorUnknownStyleOption   s    
//  C
 
		 0 0#	6 .(!!%"8"8"8: .##H-.. .. .. .r   c                 ,   	 dd l }t        j                  j	                  | j
                  d      }t        |d      }| j                  t        j                  d      5  t        j                  |       d d d        y # t        $ r Y y w xY w# 1 sw Y   y xY w)Nr   pyproject.tomlwr   )tomliImportErrorospathjoinr|   openr   r   r   r[   )r   r   r   _s       r   testPyprojectTomlNoYapfSectionz0StyleFromFileTest.testPyprojectTomlNoYapfSection   s     ww||D,,.>?HXsA			 6 6 8
: ,!!(+, ,  
, ,s   A; B
;	BB
Bc                    	 dd l }t        j                  d      }t        j
                  j                  | j                  d      }t        |d      5 }|j                  |       d d d        t        j                  |      }| j                  t        |             | j                  |d   d       y # t        $ r Y y w xY w# 1 sw Y   ]xY w)Nr   zc        [tool.yapf]
        based_on_style = "pep8"
        continuation_indent_width = 40
        r   r   r   r   )r   r   r   r   r   r   r   r|   r   writer   r[   r\   rG   r   )r   r   rC   r   fs        r   !testPyprojectTomlParseYapfSectionz3StyleFromFileTest.testPyprojectTomlParseYapfSection   s     //  C
 ww||D,,.>?H	h	 ggcl

%
%h
/COO',-S45r:   s   B0 B?0	B<;B<?CN)r:   r;   r<   rv   rW   r   r   r   r   r   r   r   r   r   r   r   r   r=   r%   r   rx   rx      sa    2 2 # #=	=	=	=C	F9
.	.
,;r%   rx   c                   (    e Zd Zed        Zd Zd Zy)StyleFromDictc                 R    t        j                  t        j                                y rQ   rR   rU   s    r   rW   zStyleFromDict.setUpClass  rX   r%   c                     dddd}t        j                  |      }| j                  t        |             | j	                  |d   d       y )Nra   r1   T)based_on_styleindent_width%blank_line_before_nested_class_or_defINDENT_WIDTHr   r[   r\   rG   r   )r   config_dictrC   s      r   r   z%StyleFromDict.testDefaultBasedOnStyle  sK     15K
 
%
%k
2COO',-S(!,r%   c                     | j                  t        j                  dt        j                  ddi       | j                  t        j                  dt        j                  ddi       y )Nr   based_on_stylra   not a validr   FOURr   r#   s    r   testDefaultBasedOnStyleBadDictz,StyleFromDict.testDefaultBasedOnStyleBadDict  sW    5113I 66+V46 	511= 66*F35r%   N)r:   r;   r<   rv   rW   r   r   r=   r%   r   r   r     s    2 2-5r%   r   c                   :    e Zd Zed        Zd Zd Zd Zd Zd Z	y)StyleFromCommandLinec                 R    t        j                  t        j                                y rQ   rR   rU   s    r   rW   zStyleFromCommandLine.setUpClass!  rX   r%   c                     t        j                  d      }| j                  t        |             | j	                  |d   d       y )NzT{based_on_style: pep8, indent_width: 2, blank_line_before_nested_class_or_def: True}r   r1   r   r]   s     r   r   z,StyleFromCommandLine.testDefaultBasedOnStyle%  s@    

%
%	89C 	OO',-S(!,r%   c                     t        j                  d      }| j                  t        |             | j	                  |d   d       y )NzR{based_on_style : pep8 ,indent_width=2 blank_line_before_nested_class_or_def:True}r   r1   r   r]   s     r    testDefaultBasedOnStyleNotStrictz5StyleFromCommandLine.testDefaultBasedOnStyleNotStrict-  s@    

%
%	78C 	OO',-S(!,r%   c                 Z    t        j                  d      }| j                  |t               y Nz{}r   r[   assertIsInstancedictr]   s     r   -testDefaultBasedOnExplicitlyUnicodeTypeStringzBStyleFromCommandLine.testDefaultBasedOnExplicitlyUnicodeTypeString5  s"    

%
%e
,C#t$r%   c                 Z    t        j                  d      }| j                  |t               y r   r   r]   s     r   #testDefaultBasedOnDetaultTypeStringz8StyleFromCommandLine.testDefaultBasedOnDetaultTypeString9  s"    

%
%d
+C#t$r%   c                 $   | j                  t        j                  dt        j                  d       | j                  t        j                  dt        j                  d       | j                  t        j                  dt        j                  d       y )Nr   z{based_on_styl: pep8}r   z{INDENT_WIDTH: FOUR}zInvalid style dictz{based_on_style: pep8r   r#   s    r    testDefaultBasedOnStyleBadStringz5StyleFromCommandLine.testDefaultBasedOnStyleBadString=  ss    5113I 668OQ511= 668NP5113G 668OQr%   N)
r:   r;   r<   rv   rW   r   r   r   r   r   r=   r%   r   r   r     s.    2 2--%%Qr%   r   c                       e Zd Zd Zy)	StyleHelpc                     t        t        j                               }t        t        j                        }| j	                  ||       y rQ   )sortedr   Help_styleassertListEqual)r   settingsexpecteds      r   testHelpKeyszStyleHelp.testHelpKeysH  s0    ejjl#Hell#H8,r%   N)r:   r;   r<   r   r=   r%   r   r   r   F  s    -r%   r   __main__)__doc__r   r~   rz   r   unittestyapf.yapflibr   	yapftestsr   r   YAPFTestr   rD   rG   rJ   rM   rO   rx   r   r   r   r:   mainr=   r%   r   <module>r      s     	       &/I )) /IdJ#(!4!1!:!: 4@D;(11 D;N5$-- 52$Q+44 $QN- )) - z(--/ r%   