a :êdgŒ ã@s‚dZddlZddlZddlmZddlmZddlmZm Z ddl m Z m Z e ƒe  d¡Gdd „d ejƒƒZed kr~e ¡dS) z3Tests for the md5sum script in the Tools directory.éN)Úsupport)Úhashlib_helper)Úassert_python_okÚassert_python_failure)Ú scriptsdirÚskip_if_missingÚmd5c@s\eZdZedd„ƒZedd„ƒZdd„Zdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z dS)Ú MD5SumTestscCsttj td¡|_t tj¡tj tjd¡|_t |jdƒ}|  d¡Wdƒn1sZ0Yd|_ d|_ dS)Nz md5sum.pyz md5sum.fodderÚwbsmd5sum test file s d38dae2eb1ab346a292ef6850f9e1a0ds a8b07894e2ca3f2a4c3094065fa6e0a5) ÚosÚpathÚjoinrÚscriptÚmkdirrÚTESTFNÚfodderÚopenÚwriteÚ fodder_md5Úfodder_textmode_md5)ÚclsÚf©rú7/usr/local/lib/python3.9/test/test_tools/test_md5sum.pyÚ setUpClasss (zMD5SumTests.setUpClasscCst tj¡dS)N)rÚrmtreer)rrrrÚ tearDownClassszMD5SumTests.tearDownClasscCs:t|jƒ\}}}| |d¡| | d¡¡| |¡dS)Nrs(d41d8cd98f00b204e9800998ecf8427e )rrÚ assertEqualÚ assertTrueÚ startswithÚ assertFalse©ÚselfÚrcÚoutÚerrrrrÚ test_noargss  ÿzMD5SumTests.test_noargscCsft|j|jƒ\}}}| |d¡| | |j¡¡|j tj j ¡D]}|  |  ¡|¡qB|  |¡dS)Nr)rrrrrrrÚsplitr r ÚsepÚassertInÚencoder )r"r#r$r%ÚpartrrrÚtest_checksum_fodder$s  z MD5SumTests.test_checksum_foddercCslt|jd|jƒ\}}}| |d¡| |j|¡|j tjj ¡}| |d  ¡|¡|  |d  ¡|¡dS)Nz-lréÿÿÿÿéþÿÿÿ) rrrrr)rr'r r r(r*Ú assertNotIn)r"r#r$r%ÚpartsrrrÚ test_dash_l,s  zMD5SumTests.test_dash_lcCsFt|jd|jƒ\}}}| |d¡| | |j¡¡| |j|¡dS)Nz-tr) rrrrrrrr/rr!rrrÚ test_dash_t4s zMD5SumTests.test_dash_tcCs6t|jdd|jƒ\}}}| |d¡| |j|¡dS)Nz-sZ512r)rrrrr)rr!rrrÚ test_dash_s:s zMD5SumTests.test_dash_scCsJt|j|j|jƒ\}}}| |d¡| ¡}| t|ƒd¡|j|ŽdS)Nré)rrrrÚ splitlinesÚlen)r"r#r$r%ÚlinesrrrÚtest_multiple_files?s  zMD5SumTests.test_multiple_filescCs:t|jdƒ\}}}| |d¡| |d¡| |d¡dS)Nz-hr4ó)rrrZ assertGreaterr!rrrÚ test_usageFs  zMD5SumTests.test_usageN) Ú__name__Ú __module__Ú __qualname__Ú classmethodrrr&r,r1r2r3r8r:rrrrr s  r Ú__main__)Ú__doc__r ZunittestÚtestrZ test.supportrZtest.support.script_helperrrZtest.test_toolsrrZrequires_hashdigestZTestCaser r;ÚmainrrrrÚs  ?