a 5êdgã@s^ddlZddlZddlZddlZddlZdZdZdd„ZGdd„dejƒZ e dkrZe  ¡dS) éNs_Here's a bunch of special=20 =A1=A2=A3=A4=A5=A6=A7=A8=A9 =AA=AB=AC=AD=AE=AF=B0=B1=B2=B3 =B4=B5=B6=B7=B8=B9=BA=BB=BC=BD=BE =BF=C0=C1=C2=C3=C4=C5=C6 =C7=C8=C9=CA=CB=CC=CD=CE=CF =D0=D1=D2=D3=D4=D5=D6=D7 =D8=D9=DA=DB=DC=DD=DE=DF =E0=E1=E2=E3=E4=E5=E6=E7 =E8=E9=EA=EB=EC=ED=EE=EF =F0=F1=F2=F3=F4=F5=F6=F7 =F8=F9=FA=FB=FC=FD=FE=FF characters... have fun! sŸHere's a bunch of special ¡¢£¤¥¦§¨© ª«¬­®¯°±²³ ´µ¶·¸¹º»¼½¾ ¿ÀÁÂÃÄÅÆ ÇÈÉÊËÌÍÎÏ ÐÑÒÓÔÕÖ× ØÙÚÛÜÝÞß àáâãäåæç èéêëìíîï ðñòóôõö÷ øùúûüýþÿ characters... have fun! cs‡fdd„}ˆj|_|S)Ncs`ˆ|ƒtjdustjdur\tj}tj}z$dt_dt_ˆ|ƒW|t_|t_n|t_|t_0dS©N)ÚquopriZb2a_qpZa2b_qp)ÚselfZ oldencodeZ olddecode©Útestfunc©ú,/usr/local/lib/python3.9/test/test_quopri.pyÚnewtest/s ÿz)withpythonimplementation..newtest)Ú__name__)rr rrrÚwithpythonimplementation.s r c @s°eZdZddddddddd d d eeff Zd Zd Zedd„ƒZ edd„ƒZ edd„ƒZ edd„ƒZ edd„ƒZ edd„ƒZedd„ƒZedd„ƒZedd„ƒZd d!„Zd"d#„Zd$S)%ÚQuopriTestCase)óhellor )ó!hello there worldr)ó"hello there world r)s‚ƒs =81=82=83)shello shello=20)shello shello=09)slxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxØÙÚÛÜÝÞßxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxs~xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=D8=D9=DA=DB=DC=DD=DE=DFx= xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)óLyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyr)sMzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzsOzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz= zz)s—zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzs™zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz= zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz)säyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzsæyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy= yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz))ó hello worlds hello=20world)s hello worlds hello=09world))ró hello_world)rs hello=5FworldcCs&|jD]\}}| t |¡|¡qdSr)ÚSTRINGSÚ assertEqualrÚ encodestring©rÚpÚerrrÚtest_encodestringsz QuopriTestCase.test_encodestringcCs&|jD]\}}| t |¡|¡qdSr)rrrÚ decodestringrrrrÚtest_decodestring†sz QuopriTestCase.test_decodestringcCsd\}}| t |¡|¡dS)N)s123=fours 123==four)rrr)rZ decoded_valueZ encoded_valuerrrÚtest_decodestring_double_equals‹sz.QuopriTestCase.test_decodestring_double_equalscCs,|jD] \}}| t t |¡¡|¡qdSr)rrrrrrrrrÚtest_idempotent_string’sz%QuopriTestCase.test_idempotent_stringcCsF|jD]:\}}t |¡}t ¡}tj||dd| | ¡|¡qdS)NF©Z quotetabs)rÚioÚBytesIOrÚencoderÚgetvalue©rrrZinfpZoutfprrrÚ test_encode—s  zQuopriTestCase.test_encodecCsB|jD]6\}}t |¡}t ¡}t ||¡| | ¡|¡qdSr)rrr rÚdecoderr"r#rrrÚ test_decodeŸs   zQuopriTestCase.test_decodecCs<|jD]0\}}| tj|dd|¡| t |¡|¡qdS)NTr)ÚESTRINGSrrrrrrrrÚtest_embedded_ws§szQuopriTestCase.test_embedded_wscCs*|jD]\}}| tj|dd|¡qdS©NT)Úheader)ÚHSTRINGSrrrrrrrÚtest_encode_header­sz!QuopriTestCase.test_encode_headercCs*|jD]\}}| tj|dd|¡qdSr))r+rrrrrrrÚtest_decode_header²sz!QuopriTestCase.test_decode_headercCsª|jd\}}tjtjdgtjtjd}| |jj¡|  |¡\}}|  d¡  ¡}|  d¡  ¡}t |ƒt |ƒkstJ‚t t |ƒƒD]}| ||||¡q€| ||¡dS)Néÿÿÿÿú-mquopri©ÚstdinÚstdoutúlatin-1)rÚ subprocessÚPopenÚsysÚ executableÚPIPEÚ addCleanupr2ÚcloseÚ communicater%Ú splitlinesÚlenÚranger)rrrÚprocessÚcoutÚcerrÚirrrÚtest_scriptencode·s ÿz QuopriTestCase.test_scriptencodecCsr|jd\}}tjtjddgtjtjd}| |jj¡|  |¡\}}|  d¡}|  d¡}|  |  ¡|  ¡¡dS)Nr.r/z-dr0r3) rr4r5r6r7r8r9r2r:r;r%rr<)rrrr?r@rArrrÚtest_scriptdecodeÇsÿ  z QuopriTestCase.test_scriptdecodeN)r Ú __module__Ú __qualname__Ú DECSAMPLEÚ ENCSAMPLErr'r+r rrrrr$r&r(r,r-rCrDrrrrr @sFÑ3         r Ú__main__) Zunittestr6rr4rrHrGr ZTestCaser r ÚmainrrrrÚs