a :êdg°!ã@s|ddlZddlZddlZddlZddlZddlmZddlmZddl m Z m Z e ƒGdd„dej ƒZ edkrxe ¡dS)éN)Úsupport)Úassert_python_ok)Ú scriptsdirÚskip_if_missingc@sreZdZej ed¡Zdd„Zdd„Z dd„Z dd „Z d d „Z d d „Z dd„Zdd„Zdd„Zdd„Zdd„ZdS)Ú PindentTestsz pindent.pyc Csht|ƒL}t|ƒ$}| | ¡| ¡¡Wdƒn1s<0YWdƒn1sZ0YdS©N)ÚopenÚ assertEqualÚ readlines)ÚselfZfn1Zfn2Úf1Úf2©rú8/usr/local/lib/python3.9/test/test_tools/test_pindent.pyÚassertFileEqualszPindentTests.assertFileEqualcGs^tjtj|jf|tjtjdd}| |¡\}}Wdƒn1sF0Y| |¡|S)NT)ÚstdinÚstdoutÚuniversal_newlines)Ú subprocessÚPopenÚsysÚ executableÚscriptÚPIPEÚ communicateZ assertIsNone)r ÚsourceÚargsÚprocÚoutÚerrrrrÚpindentsý, zPindentTests.pindentcCsd dd„| ¡Dƒ¡dS)NÚ css|]}| ¡VqdSr)Úlstrip)Ú.0ÚlinerrrÚ !óz+PindentTests.lstriplines..)ÚjoinÚ splitlines)r ÚdatarrrÚ lstriplines szPindentTests.lstriplinesc Cs&d|_t ¡}tj |d¡}t|jƒ}| ¡}Wdƒn1sH0Yt|dƒ}|  |¡Wdƒn1s|0Yt |jd|ƒ\}}}|  |d¡|  |d¡|d}|  tj  |¡¡t|ƒ }|  | ¡|¡Wdƒn1sú0Yt|ƒ}| ¡} Wdƒn1s,0Yt| ddƒ|  | | d¡|¡|  | |d¡| ¡t |jd|ƒ\}}}|  |d¡|  |d¡t|ƒ }|  | ¡| ¡Wdƒn1sÆ0Yt|ƒ }|  | ¡|¡Wdƒn1s0Y| |¡} t|dƒ}|  | ¡Wdƒn1s@0Yt |jd|ƒ\}}}|  |d¡|  |d¡t|ƒ }|  | ¡| ¡Wdƒn1s¦0Yt|ƒ}| ¡} Wdƒn1sØ0Yt| ddƒ|  | | d¡| ¡Wdƒn1s0YdS) Nz_test.pyÚwú-dr&ú~Úexecú-cú-r)ZmaxDiffrZtemp_dirÚosÚpathr'rrÚreadÚwriterr Z assertTrueÚexistsÚcompiler r*) r Z directoryZ data_pathÚfÚclosedÚrcrrZbackupÚcleanÚbrokenZindentedrrrÚ test_selftest#sL  & (   . (    0 0  *   0 ( zPindentTests.test_selftestc CsP| | |d¡|¡| | |d¡|¡| |¡}| | |dddd¡|¡dS)Nr/r,r0ú-eú-sÚ4)r r r*©r r:r8r;rrrÚ pindent_testNs zPindentTests.pindent_testcCs$t d¡}t d¡}| ||¡dS)Na: if a: pass if a: pass else: pass if a: pass elif: pass else: pass while a: break while a: break else: pass for i in a: break for i in a: break else: pass try: pass finally: pass try: pass except TypeError: pass except ValueError: pass else: pass try: pass except TypeError: pass except ValueError: pass finally: pass with a: pass class A: pass def f(): pass a` if a: pass # end if if a: pass else: pass # end if if a: pass elif: pass else: pass # end if while a: break # end while while a: break else: pass # end while for i in a: break # end for for i in a: break else: pass # end for try: pass finally: pass # end try try: pass except TypeError: pass except ValueError: pass else: pass # end try try: pass except TypeError: pass except ValueError: pass finally: pass # end try with a: pass # end with class A: pass # end class A def f(): pass # end def f ©ÚtextwrapÚdedentrA©r r:r8rrrÚtest_statementsTs A MzPindentTests.test_statementscCs$t d¡}t d¡}| ||¡dS)Nz÷ def foobar(a, b): if a == b: a = a+1 elif a < b: b = b-1 if b > a: a = a-1 else: print 'oops!' aJ def foobar(a, b): if a == b: a = a+1 elif a < b: b = b-1 if b > a: a = a-1 # end if else: print 'oops!' # end if # end def foobar rBrErrrÚtest_multilevelås zPindentTests.test_multilevelc Cs¾t d¡}t d¡}| | |d¡|¡| | |d¡|¡| |¡}| | |dddd¡|¡t d ¡}t d ¡}| | |d¡|¡| | |d¡|¡| |¡}| | |d¡|¡dS) Nz\ if a: if b: pass z if a: if b: pass # end if # end if r/r,r0r=r>Ú9zD if a: if b: pass zo if a: if b: pass # end if # end if )rCrDr r r*r@rrrÚtest_preserve_indentsÿs      z"PindentTests.test_preserve_indentscCs@t d¡}t d¡}| | |d¡|¡| | |d¡|¡dS)Nzƒ class\ \ A: def \ f: pass z¸ class\ \ A: def \ f: pass # end def f # end class A r/r,)rCrDr r rErrrÚtest_escaped_newline!s z!PindentTests.test_escaped_newlinecCs$t d¡}t d¡}| ||¡dS)Nz4 if a: pass zI if a: pass # end if rBrErrrÚtest_empty_line9s  zPindentTests.test_empty_linecCs$t d¡}t d¡}| ||¡dS)Nz# if a: pass z8 if a: pass # end if rBrErrrÚ test_onelineGs  zPindentTests.test_onelineN)Ú__name__Ú __module__Ú __qualname__r1r2r'rrrr r*r<rArFrGrIrJrKrLrrrrrs +"rÚ__main__)r1rZunittestrrCÚtestrZtest.support.script_helperrZtest.test_toolsrrZTestCaserrMÚmainrrrrÚs  D