a
    Ø
þdO-  ã                   @   sð   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„ de
jƒZdd	„ Zd
d„ Zdd„ Zdd„ ZG dd„ de
jƒZG dd„ de
jƒZG dd„ de
jƒZG dd„ de
jƒZG dd„ de
jƒZedkrìe ¡  dS )zTests for yapf.style.é    N)Ústyle)Úutils)Úyapf_test_helperc                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )Ú	UtilsTestc                 C   sž   dD ]}|   t |¡d¡ qdD ]}|   t |¡d¡ q dD ]}|   t |¡d¡ q<|  t¡}t d¡ W d   ƒ n1 s~0    Y  |  dt|jƒ¡ d S )	N)Ú Úspacez"space"z'space'ÚSPACE)Úfixedz"fixed"z'fixed'ZFIXED)zvalign-rightz"valign-right"z'valign-right'Zvalign_rightz"valign_right"z'valign_right'zVALIGN-RIGHTZblahblahz,unknown continuation align style: 'blahblah')ÚassertEqualr   Z&_ContinuationAlignStyleStringConverterÚassertRaisesÚ
ValueErrorZassertInÚstrÚ	exception)ÚselfZcont_align_spaceZcont_align_fixedZcont_align_valignrightÚctx© r   ú]/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/yapftests/style_test.pyÚ)testContinuationAlignStyleStringConverter   s(    þþþ(ÿz3UtilsTest.testContinuationAlignStyleStringConverterc                 C   sZ   |   t d¡ddg¡ |   t d¡ddg¡ |   t d¡dg¡ |   t d¡g d¢¡ d S )Nzfoo, barÚfooÚbarzfoo,barz  foozjoe  ,foo,  bar)Zjoer   r   )r
   r   Z_StringListConverter©r   r   r   r   ÚtestStringListConverter8   s    ÿz!UtilsTest.testStringListConverterc                 C   sL   |   t d¡d¡ |   t d¡d¡ |   t d¡d¡ |   t d¡d¡ d S )NÚtrueTÚ1ÚfalseFÚ0)r
   r   Z_BoolConverterr   r   r   r   ÚtestBoolConverter?   s    zUtilsTest.testBoolConverterc                 C   sF   |   t d¡g d¢¡ |   t d¡g d¢¡ |   t d¡g d¢¡ d S )Nú1, 2, 3©é   é   é   z[ 1, 2, 3 ]z[ 1, 2, 3, ])r
   r   Z_IntListConverterr   r   r   r   ÚtestIntListConverterE   s    zUtilsTest.testIntListConverterc                 C   s,   |   t d¡d¡ |   t d¡g d¢¡ d S )NÚ10é
   r   r   )r
   r   Z_IntOrIntListConverterr   r   r   r   ÚtestIntOrIntListConverterJ   s    z#UtilsTest.testIntOrIntListConverterN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r"   r%   r   r   r   r   r      s
   r   c                 C   s   | d dko| d S )NÚCOLUMN_LIMITéP   ZSPLIT_COMPLEX_COMPREHENSIONr   ©Úcfgr   r   r   Ú_LooksLikeGoogleStyleO   s    r-   c                 C   s   | d dkS )Nr)   éO   r   r+   r   r   r   Ú_LooksLikePEP8StyleS   s    r/   c                 C   s   | d S )NZDEDENT_CLOSING_BRACKETSr   r+   r   r   r   Ú_LooksLikeFacebookStyleW   s    r0   c                 C   s   | d S )NZSPLIT_BEFORE_DOTr   r+   r   r   r   Ú_LooksLikeYapfStyle[   s    r1   c                   @   s@   e Zd Zedd„ ƒZdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Z	dS )ÚPredefinedStylesByNameTestc                 C   s   t  t  ¡ ¡ d S ©N©r   ÚSetGlobalStyleÚCreatePEP8Style©Úclsr   r   r   Ú
setUpClassa   s    z%PredefinedStylesByNameTest.setUpClassc                 C   s   t  d ¡}|  t|ƒ¡ d S r3   ©r   ÚCreateStyleFromConfigÚ
assertTruer/   ©r   r,   r   r   r   ÚtestDefaulte   s    
z&PredefinedStylesByNameTest.testDefaultc                 C   s&   dD ]}t  |¡}|  t|ƒ¡ qd S )N)ZPEP8Úpep8ZPep8r:   )r   Z	pep8_namer,   r   r   r   ÚtestPEP8ByNamej   s    
z)PredefinedStylesByNameTest.testPEP8ByNamec                 C   s&   dD ]}t  |¡}|  t|ƒ¡ qd S )N)ÚgoogleZGoogleZGOOGLE)r   r;   r<   r-   )r   Zgoogle_namer,   r   r   r   ÚtestGoogleByNameo   s    
z+PredefinedStylesByNameTest.testGoogleByNamec                 C   s&   dD ]}t  |¡}|  t|ƒ¡ qd S )N)ZyapfZYAPF)r   r;   r<   r1   )r   Z	yapf_namer,   r   r   r   ÚtestYapfByNamet   s    
z)PredefinedStylesByNameTest.testYapfByNamec                 C   s&   dD ]}t  |¡}|  t|ƒ¡ qd S )N)ZfacebookZFACEBOOKZFacebook)r   r;   r<   r0   )r   Zfb_namer,   r   r   r   ÚtestFacebookByNamey   s    
z-PredefinedStylesByNameTest.testFacebookByNameN)
r&   r'   r(   Úclassmethodr9   r>   r@   rB   rC   rD   r   r   r   r   r2   _   s   
r2   c                   @   s|   e Zd Zedd„ ƒZe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 )ÚStyleFromFileTestc                 C   s   t  ¡ | _t t ¡ ¡ d S r3   )ÚtempfileÚmkdtempÚtest_tmpdirr   r5   r6   r7   r   r   r   r9      s    
zStyleFromFileTest.setUpClassc                 C   s   t  | j¡ d S r3   )ÚshutilÚrmtreerI   r7   r   r   r   ÚtearDownClass†   s    zStyleFromFileTest.tearDownClassc                 C   sd   t  d¡}t | j|¡8}t |¡}|  t|ƒ¡ |  	|d d¡ W d   ƒ n1 sV0    Y  d S )Nz?        [style]
        continuation_indent_width = 20
        ÚCONTINUATION_INDENT_WIDTHé   ©
ÚtextwrapÚdedentr   ÚTempFileContentsrI   r   r;   r<   r/   r
   ©r   r,   Úfilepathr   r   r   ÚtestDefaultBasedOnStyleŠ   s
    

z)StyleFromFileTest.testDefaultBasedOnStylec                 C   sd   t  d¡}t | j|¡8}t |¡}|  t|ƒ¡ |  	|d d¡ W d   ƒ n1 sV0    Y  d S )Nz]        [style]
        based_on_style = pep8
        continuation_indent_width = 40
        rM   é(   rO   rS   r   r   r   ÚtestDefaultBasedOnPEP8Style”   s
    

z-StyleFromFileTest.testDefaultBasedOnPEP8Stylec                 C   sd   t  d¡}t | j|¡8}t |¡}|  t|ƒ¡ |  	|d d¡ W d   ƒ n1 sV0    Y  d S )Nz_        [style]
        based_on_style = google
        continuation_indent_width = 20
        rM   rN   )
rP   rQ   r   rR   rI   r   r;   r<   r-   r
   rS   r   r   r   ÚtestDefaultBasedOnGoogleStyleŸ   s
    

z/StyleFromFileTest.testDefaultBasedOnGoogleStylec                 C   sd   t  d¡}t | j|¡8}t |¡}|  t|ƒ¡ |  	|d d¡ W d   ƒ n1 sV0    Y  d S )Nza        [style]
        based_on_style = facebook
        continuation_indent_width = 20
        rM   rN   )
rP   rQ   r   rR   rI   r   r;   r<   r0   r
   rS   r   r   r   ÚtestDefaultBasedOnFacebookStyleª   s
    

z1StyleFromFileTest.testDefaultBasedOnFacebookStylec                 C   st   t  d¡}t | j|¡H}t |¡}|  t|ƒ¡ |  	|d d¡ |  	|d d¡ W d   ƒ n1 sf0    Y  d S )NzŒ        [style]
        based_on_style = pep8
        SPLIT_BEFORE_NAMED_ASSIGNS=False
        split_before_logical_operator = true
        ZSPLIT_BEFORE_NAMED_ASSIGNSFZSPLIT_BEFORE_LOGICAL_OPERATORTrO   rS   r   r   r   ÚtestBoolOptionValueµ   s    

z%StyleFromFileTest.testBoolOptionValuec                 C   sh   t  d¡}t | j|¡<}t |¡}|  t|ƒ¡ |  	|d g d¢¡ W d   ƒ n1 sZ0    Y  d S )Nz^        [style]
        based_on_style = pep8
        I18N_FUNCTION_CALL = N_, V_, T_
        ZI18N_FUNCTION_CALL)ZN_ZV_ZT_rO   rS   r   r   r   ÚtestStringListOptionValueÂ   s
    

z+StyleFromFileTest.testStringListOptionValuec                 C   s<   |   tjd¡ t d¡ W d   ƒ n1 s.0    Y  d S )Nz!is not a valid style or file pathz/8822/xyznosuchfile©ÚassertRaisesRegexr   ÚStyleConfigErrorr;   r   r   r   r   ÚtestErrorNoStyleFileÍ   s    ÿz&StyleFromFileTest.testErrorNoStyleFilec              	   C   st   t  d¡}t | j|¡H}|  tjd¡ t |¡ W d   ƒ n1 sH0    Y  W d   ƒ n1 sf0    Y  d S )Nz+        [s]
        indent_width=2
        úUnable to find section©	rP   rQ   r   rR   rI   r]   r   r^   r;   rS   r   r   r   ÚtestErrorNoStyleSectionÒ   s    
ÿz)StyleFromFileTest.testErrorNoStyleSectionc              	   C   st   t  d¡}t | j|¡H}|  tjd¡ t |¡ W d   ƒ n1 sH0    Y  W d   ƒ n1 sf0    Y  d S )Nz@        [style]
        indent_width=2
        hummus=2
        úUnknown style optionra   rS   r   r   r   ÚtestErrorUnknownStyleOptionÜ   s    
ÿz-StyleFromFileTest.testErrorUnknownStyleOptionc                 C   sx   zdd l }W n ty    Y d S 0 tj | jd¡}t|dƒ}|  tj	d¡ t 
|¡ W d   ƒ n1 sj0    Y  d S )Nr   úpyproject.tomlÚwr`   )ÚtomliÚImportErrorÚosÚpathÚjoinrI   Úopenr]   r   r^   r;   )r   rg   rT   Ú_r   r   r   ÚtestPyprojectTomlNoYapfSectionç   s    
ÿz0StyleFromFileTest.testPyprojectTomlNoYapfSectionc                 C   sœ   zdd l }W n ty    Y d S 0 t d¡}tj | jd¡}t|dƒ}| 	|¡ W d   ƒ n1 sf0    Y  t
 |¡}|  t|ƒ¡ |  |d d¡ d S )Nr   zc        [tool.yapf]
        based_on_style = "pep8"
        continuation_indent_width = 40
        re   rf   rM   rV   )rg   rh   rP   rQ   ri   rj   rk   rI   rl   Úwriter   r;   r<   r/   r
   )r   rg   r,   rT   Úfr   r   r   Ú!testPyprojectTomlParseYapfSectionó   s    
(
z3StyleFromFileTest.testPyprojectTomlParseYapfSectionN)r&   r'   r(   rE   r9   rL   rU   rW   rX   rY   rZ   r[   r_   rb   rd   rn   rq   r   r   r   r   rF      s   



rF   c                   @   s(   e Zd Zedd„ ƒZdd„ Zdd„ ZdS )ÚStyleFromDictc                 C   s   t  t  ¡ ¡ d S r3   r4   r7   r   r   r   r9     s    zStyleFromDict.setUpClassc                 C   s8   ddddœ}t  |¡}|  t|ƒ¡ |  |d d¡ d S )Nr?   r    T)Zbased_on_styleZindent_widthZ%blank_line_before_nested_class_or_defÚINDENT_WIDTH©r   r;   r<   r/   r
   )r   Zconfig_dictr,   r   r   r   rU     s    ý
z%StyleFromDict.testDefaultBasedOnStylec                 C   s4   |   tjdtjddi¡ |   tjdtjddi¡ d S )Nrc   Zbased_on_stylr?   únot a validrs   ZFOURr\   r   r   r   r   ÚtestDefaultBasedOnStyleBadDict  s    
þ
þz,StyleFromDict.testDefaultBasedOnStyleBadDictN)r&   r'   r(   rE   r9   rU   rv   r   r   r   r   rr     s   

rr   c                   @   s@   e Zd Zedd„ ƒZdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Z	dS )ÚStyleFromCommandLinec                 C   s   t  t  ¡ ¡ d S r3   r4   r7   r   r   r   r9   !  s    zStyleFromCommandLine.setUpClassc                 C   s,   t  d¡}|  t|ƒ¡ |  |d d¡ d S )NzT{based_on_style: pep8, indent_width: 2, blank_line_before_nested_class_or_def: True}rs   r    rt   r=   r   r   r   rU   %  s
    ÿz,StyleFromCommandLine.testDefaultBasedOnStylec                 C   s,   t  d¡}|  t|ƒ¡ |  |d d¡ d S )NzR{based_on_style : pep8 ,indent_width=2 blank_line_before_nested_class_or_def:True}rs   r    rt   r=   r   r   r   Ú testDefaultBasedOnStyleNotStrict-  s
    ÿz5StyleFromCommandLine.testDefaultBasedOnStyleNotStrictc                 C   s   t  d¡}|  |t¡ d S ©Nz{}©r   r;   ZassertIsInstanceÚdictr=   r   r   r   Ú-testDefaultBasedOnExplicitlyUnicodeTypeString5  s    
zBStyleFromCommandLine.testDefaultBasedOnExplicitlyUnicodeTypeStringc                 C   s   t  d¡}|  |t¡ d S ry   rz   r=   r   r   r   Ú#testDefaultBasedOnDetaultTypeString9  s    
z8StyleFromCommandLine.testDefaultBasedOnDetaultTypeStringc                 C   s@   |   tjdtjd¡ |   tjdtjd¡ |   tjdtjd¡ d S )Nrc   z{based_on_styl: pep8}ru   z{INDENT_WIDTH: FOUR}zInvalid style dictz{based_on_style: pep8r\   r   r   r   r   Ú testDefaultBasedOnStyleBadString=  s    
ÿ
ÿ
ÿz5StyleFromCommandLine.testDefaultBasedOnStyleBadStringN)
r&   r'   r(   rE   r9   rU   rx   r|   r}   r~   r   r   r   r   rw     s   
rw   c                   @   s   e Zd Zdd„ ZdS )Ú	StyleHelpc                 C   s&   t t ¡ ƒ}t tjƒ}|  ||¡ d S r3   )Úsortedr   ZHelpÚ_styleZassertListEqual)r   ÚsettingsÚexpectedr   r   r   ÚtestHelpKeysH  s    
zStyleHelp.testHelpKeysN)r&   r'   r(   r„   r   r   r   r   r   F  s   r   Ú__main__)Ú__doc__ri   rJ   rG   rP   ZunittestZyapf.yapflibr   Z	yapftestsr   r   ZYAPFTestr   r-   r/   r0   r1   r2   rF   rr   rw   r   r&   Úmainr   r   r   r   Ú<module>   s*   2  '