
    `N`0-                     t   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	  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                     dS dS )zTests for yapf.style.    N)style)utilsc                   ,    e Zd Zd Zd Zd Zd Zd ZdS )	UtilsTestc                    dD ]*}|                      t          j        |          d           +dD ]*}|                      t          j        |          d           +dD ]*}|                      t          j        |          d           +|                     t                    5 }t          j        d           d d d            n# 1 swxY w Y   |                     dt          |j                             d S )	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        4lib/python3.11/site-packages/yapftests/style_test.py)testContinuationAlignStyleStringConverterz3UtilsTest.testContinuationAlignStyleStringConverter   sn   A  


67G
H
H
    >  


67G
H
H
   # 
 
 

67M
N
N
    
		:	&	& ?#2:>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ?MM@cm$$& & & & &s   "CC
Cc                 T   |                      t          j        d          ddg           |                      t          j        d          ddg           |                      t          j        d          dg           |                      t          j        d          g d           d S )Nzfoo, barfoobarzfoo,barz  foozjoe  ,foo,  bar)joer   r   )r   r   _StringListConverterr   s    r   testStringListConverterz!UtilsTest.testStringListConverter7   s    U/
;;eU^LLLU/	::UENKKKU/885'BBB"#4557L7L7LN N N N N    c                 F   |                      t          j        d          d           |                      t          j        d          d           |                      t          j        d          d           |                      t          j        d          d           d S )NtrueT1falseF0)r   r   _BoolConverterr"   s    r   testBoolConverterzUtilsTest.testBoolConverter>   s    U)&114888U)#..555U)'22E:::U)#..66666r$   c                    |                      t          j        d          g d           |                      t          j        d          g d           |                      t          j        d          g d           d S )N1, 2, 3         z[ 1, 2, 3 ]z[ 1, 2, 3, ])r   r   _IntListConverterr"   s    r   testIntListConverterzUtilsTest.testIntListConverterD   sw    U,Y77CCCU,];;YYYGGGU,^<<iiiHHHHHr$   c                     |                      t          j        d          d           |                      t          j        d          g d           d S )N10
   r-   r.   )r   r   _IntOrIntListConverterr"   s    r   testIntOrIntListConverterz#UtilsTest.testIntOrIntListConverterI   sN    U1$77<<<U1)<<iiiHHHHHr$   N)__name__
__module____qualname__r   r#   r+   r3   r8    r$   r   r   r      sj        & & &2N N N7 7 7I I I
I I I I Ir$   r   c                 *    | d         dk    o| d         S )NCOLUMN_LIMITP   SPLIT_COMPLEX_COMPREHENSIONr<   cfgs    r   _LooksLikeGoogleStylerC   N   s    	^		"	Is+H'IIr$   c                     | d         dk    S )Nr>   O   r<   rA   s    r   _LooksLikePEP8StylerF   R   s    	^		""r$   c                     | d         S )NDEDENT_CLOSING_BRACKETSr<   rA   s    r   _LooksLikeFacebookStylerI   V   s    	&	''r$   c                     | d         S )NSPLIT_BEFORE_DOTr<   rA   s    r   _LooksLikeYapfStylerL   Z   s    		  r$   c                   B    e Zd Zed             Zd Zd Zd Zd Zd Z	dS )PredefinedStylesByNameTestc                 P    t          j        t          j                               d S Nr   SetGlobalStyleCreatePEP8Styleclss    r   
setUpClassz%PredefinedStylesByNameTest.setUpClass`   "    	.0011111r$   c                 r    t          j        d           }|                     t          |                     d S rP   r   CreateStyleFromConfig
assertTruerF   r   rB   s     r   testDefaultz&PredefinedStylesByNameTest.testDefaultd   s3    

%d
+
+COO',,-----r$   c                 |    dD ]8}t          j        |          }|                     t          |                     9d S )N)PEP8pep8Pep8rY   )r   	pep8_namerB   s      r   testPEP8ByNamez)PredefinedStylesByNameTest.testPEP8ByNamei   sI    - 0 0	'	22c
oo)#..////0 0r$   c                 |    dD ]8}t          j        |          }|                     t          |                     9d S )N)googleGoogleGOOGLE)r   rZ   r[   rC   )r   google_namerB   s      r   testGoogleByNamez+PredefinedStylesByNameTest.testGoogleByNamen   sI    5 2 2'44c
oo+C0011112 2r$   c                 |    dD ]8}t          j        |          }|                     t          |                     9d S )N)yapfYAPF)r   rZ   r[   rL   )r   	yapf_namerB   s      r   testYapfByNamez)PredefinedStylesByNameTest.testYapfByNames   sI    % 0 0	'	22c
oo)#..////0 0r$   c                 |    dD ]8}t          j        |          }|                     t          |                     9d S )N)facebookFACEBOOKFacebook)r   rZ   r[   rI   )r   fb_namerB   s      r   testFacebookByNamez-PredefinedStylesByNameTest.testFacebookByNamex   sI    7 4 4'00c
oo-c2233334 4r$   N)
r9   r:   r;   classmethodrV   r]   rc   ri   rn   rt   r<   r$   r   rN   rN   ^   sx        2 2 ;2. . .
0 0 0
2 2 2
0 0 0
4 4 4 4 4r$   rN   c                   |    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dS )StyleFromFileTestc                     t          j                    | _        t          j        t          j                               d S rP   )tempfilemkdtemptest_tmpdirr   rR   rS   rT   s    r   rV   zStyleFromFileTest.setUpClass   s2    &((CO	.0011111r$   c                 8    t          j        | j                   d S rP   )shutilrmtreer{   rT   s    r   tearDownClasszStyleFromFileTest.tearDownClass   s    
M#/"""""r$   c                 8   t          j        d          }t          j        | j        |          5 }t          j        |          }|                     t          |                     | 	                    |d         d           d d d            d S # 1 swxY w Y   d S )Nz?        [style]
        continuation_indent_width = 20
        CONTINUATION_INDENT_WIDTH   
textwrapdedentr   TempFileContentsr{   r   rZ   r[   rF   r   r   rB   filepaths      r   testDefaultBasedOnStylez)StyleFromFileTest.testDefaultBasedOnStyle   s    
/   C 
	 0#	6	6 =('11c
oo)#..///
s67<<<= = = = = = = = = = = = = = = = = =   ABBBc                 8   t          j        d          }t          j        | j        |          5 }t          j        |          }|                     t          |                     | 	                    |d         d           d d d            d S # 1 swxY w Y   d S )Nz]        [style]
        based_on_style = pep8
        continuation_indent_width = 40
        r   (   r   r   s      r   testDefaultBasedOnPEP8Stylez-StyleFromFileTest.testDefaultBasedOnPEP8Style   s    
/   C
 
	 0#	6	6 =('11c
oo)#..///
s67<<<= = = = = = = = = = = = = = = = = =r   c                 8   t          j        d          }t          j        | j        |          5 }t          j        |          }|                     t          |                     | 	                    |d         d           d d d            d S # 1 swxY w Y   d S )Nz_        [style]
        based_on_style = google
        continuation_indent_width = 20
        r   r   )
r   r   r   r   r{   r   rZ   r[   rC   r   r   s      r   testDefaultBasedOnGoogleStylez/StyleFromFileTest.testDefaultBasedOnGoogleStyle   s    
/   C
 
	 0#	6	6 =('11c
oo+C00111
s67<<<= = = = = = = = = = = = = = = = = =r   c                 8   t          j        d          }t          j        | j        |          5 }t          j        |          }|                     t          |                     | 	                    |d         d           d d d            d S # 1 swxY w Y   d S )Nza        [style]
        based_on_style = facebook
        continuation_indent_width = 20
        r   r   )
r   r   r   r   r{   r   rZ   r[   rI   r   r   s      r   testDefaultBasedOnFacebookStylez1StyleFromFileTest.testDefaultBasedOnFacebookStyle   s    
/   C
 
	 0#	6	6 =('11c
oo-c22333
s67<<<= = = = = = = = = = = = = = = = = =r   c                 p   t          j        d          }t          j        | j        |          5 }t          j        |          }|                     t          |                     | 	                    |d         d           | 	                    |d         d           d d d            d S # 1 swxY w Y   d S )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#	6	6 C('11c
oo)#..///
s78%@@@
s:;TBBB	C C C C C C C C C C C C C C C C C Cs   A/B++B/2B/c                 <   t          j        d          }t          j        | j        |          5 }t          j        |          }|                     t          |                     | 	                    |d         g d           d d d            d S # 1 swxY w Y   d S )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#	6	6 F('11c
oo)#..///
s/02D2D2DEEEF F F F F F F F F F F F F F F F F Fs   ABBBc                     |                      t          j        d          5  t          j        d           d d d            d S # 1 swxY w Y   d S )Nz!is not a valid style or file pathz/8822/xyznosuchfileassertRaisesRegexpr   StyleConfigErrorrZ   r"   s    r   testErrorNoStyleFilez&StyleFromFileTest.testErrorNoStyleFile   s    		 	 !7!D
F 
F 9 9!"78889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s   AA
Ac                 ,   t          j        d          }t          j        | j        |          5 }|                     t          j        d          5  t          j        |           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nz+        [s]
        indent_width=2
        Unable to find section	r   r   r   r   r{   r   r   r   rZ   r   s      r   testErrorNoStyleSectionz)StyleFromFileTest.testErrorNoStyleSection   s   
/   C 
	 0#	6	6 .(""5#9#;= = . .#H---. . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . .5   !B	A1%B	1A5	5B	8A5	9B		BBc                 ,   t          j        d          }t          j        | j        |          5 }|                     t          j        d          5  t          j        |           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nz@        [style]
        indent_width=2
        hummus=2
        Unknown style optionr   r   s      r   testErrorUnknownStyleOptionz-StyleFromFileTest.testErrorUnknownStyleOption   s   
/   C
 
	 0#	6	6 .(""5#9#9; ; . .#H---. . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . .r   c                 8   	 dd l }n# t          $ r Y d S w xY wt          j                            | j        d          }t          |d          }|                     t          j	        d          5  t          j
        |           d d d            d S # 1 swxY w Y   d S )Nr   pyproject.tomlwr   )tomlImportErrorospathjoinr{   openr   r   r   rZ   )r   r   r   _s       r   testPyprojectTomlNoYapfSectionz0StyleFromFileTest.testPyprojectTomlNoYapfSection   s    kkkk   ff w||D,.>??HXsA		 	 !7!9
; 
; , ,!(+++, , , , , , , , , , , , , , , , , ,s    
-BBBc                    	 dd l }n# t          $ r Y d S w xY wt          j        d          }t          j                            | j        d          }t          |d          5 }|	                    |           d d d            n# 1 swxY w Y   t          j        |          }|                     t          |                     |                     |d         d           d S )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   rZ   r[   rF   r   )r   r   rB   r   fs        r   !testPyprojectTomlParseYapfSectionz3StyleFromFileTest.testPyprojectTomlParseYapfSection   s%   kkkk   ff /   C
 w||D,.>??H	h		 ggclll              

%h
/
/COO',,---S45r:::::s    
!BB
BN)r9   r:   r;   ru   rV   r   r   r   r   r   r   r   r   r   r   r   r   r<   r$   r   rw   rw   ~   s        2 2 ;2 # # ;#= = =	= 	= 	=	= 	= 	=	= 	= 	=C C C	F 	F 	F9 9 9
. . .	. 	. 	.
, 
, 
,; ; ; ; ;r$   rw   c                   0    e Zd Zed             Zd Zd ZdS )StyleFromDictc                 P    t          j        t          j                               d S rP   rQ   rT   s    r   rV   zStyleFromDict.setUpClass  rW   r$   c                     dddd}t          j        |          }|                     t          |                     |                     |d         d           d S )Nr`   r0   T)based_on_styleindent_width%blank_line_before_nested_class_or_defINDENT_WIDTHr   rZ   r[   rF   r   )r   config_dictrB   s      r   r   z%StyleFromDict.testDefaultBasedOnStyle  se     15 K
 
%k
2
2COO',,---S(!,,,,,r$   c                     |                      t          j        dt          j        ddi           |                      t          j        dt          j        ddi           d S )Nr   based_on_stylr`   not a validr   FOURr   r"   s    r   testDefaultBasedOnStyleBadDictz,StyleFromDict.testDefaultBasedOnStyleBadDict  si    E24J!7,f57 7 7 	E2M!7+V46 6 6 6 6r$   N)r9   r:   r;   ru   rV   r   r   r<   r$   r   r   r     sK        2 2 ;2- - -6 6 6 6 6r$   r   c                   B    e Zd Zed             Zd Zd Zd Zd Zd Z	dS )StyleFromCommandLinec                 P    t          j        t          j                               d S rP   rQ   rT   s    r   rV   zStyleFromCommandLine.setUpClass   rW   r$   c                     t          j        d          }|                     t          |                     |                     |d         d           d S )NzT{based_on_style: pep8, indent_width: 2, blank_line_before_nested_class_or_def: True}r   r0   r   r\   s     r   r   z,StyleFromCommandLine.testDefaultBasedOnStyle$  sW    

%	89 9C 	OO',,---S(!,,,,,r$   c                     t          j        d          }|                     t          |                     |                     |d         d           d S )NzR{based_on_style : pep8 ,indent_width=2 blank_line_before_nested_class_or_def:True}r   r0   r   r\   s     r    testDefaultBasedOnStyleNotStrictz5StyleFromCommandLine.testDefaultBasedOnStyleNotStrict,  sW    

%	78 8C 	OO',,---S(!,,,,,r$   c                 d    t          j        d          }|                     |t                     d S Nz{}r   rZ   assertIsInstancedictr\   s     r   -testDefaultBasedOnExplicitlyUnicodeTypeStringzBStyleFromCommandLine.testDefaultBasedOnExplicitlyUnicodeTypeString4  s.    

%e
,
,C#t$$$$$r$   c                 d    t          j        d          }|                     |t                     d S r   r   r\   s     r   #testDefaultBasedOnDetaultTypeStringz8StyleFromCommandLine.testDefaultBasedOnDetaultTypeString8  s.    

%d
+
+C#t$$$$$r$   c                    |                      t          j        dt          j        d           |                      t          j        dt          j        d           |                      t          j        dt          j        d           d S )Nr   z{based_on_styl: pep8}r   z{INDENT_WIDTH: FOUR}zInvalid style dictz{based_on_style: pep8r   r"   s    r    testDefaultBasedOnStyleBadStringz5StyleFromCommandLine.testDefaultBasedOnStyleBadString<  s    E24J!735 5 5 	E2M!79OQ Q QE24H!735 5 5 5 5r$   N)
r9   r:   r;   ru   rV   r   r   r   r   r   r<   r$   r   r   r     sx        2 2 ;2- - -- - -% % %% % %5 5 5 5 5r$   r   c                       e Zd Zd ZdS )	StyleHelpc                     t          t          j                              }t          t          j                  }|                     ||           d S rP   )sortedr   Help_styleassertListEqual)r   settingsexpecteds      r   testHelpKeyszStyleHelp.testHelpKeysI  s@    ejll##Hel##H8,,,,,r$   N)r9   r:   r;   r   r<   r$   r   r   r   G  s#        - - - - -r$   r   __main__)__doc__r   r}   ry   r   unittestyapf.yapflibr   	yapftestsr   TestCaser   rC   rF   rI   rL   rN   rw   r   r   r   r9   mainr<   r$   r   <module>r      s     				                /I /I /I /I /I! /I /I /IdJ J J# # #( ( (! ! !4 4 4 4 4!2 4 4 4@D; D; D; D; D;) D; D; D;N6 6 6 6 6H% 6 6 62&5 &5 &5 &5 &58, &5 &5 &5R- - - - -! - - - z(-///// r$   