a ze@s^ddlZddlZddlZddlZddlZdZdZddZGdddejZ 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! sHere's a bunch of special characters... have fun! csfdd}j|_|S)Ncs`|tjdustjdur\tj}tj}z$dt_dt_|W|t_|t_n|t_|t_0dSN)quopriZb2a_qpZa2b_qp)selfZ oldencodeZ olddecodetestfuncD/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_quopri.pynewtest/s z)withpythonimplementation..newtest)__name__)rr rrrwithpythonimplementation.s r c @seZdZddddddddd d d eeff Zd Zd ZeddZ eddZ eddZ eddZ eddZ eddZeddZeddZeddZd d!Zd"d#Zd$S)%QuopriTestCase)hellor )!hello there worldr)"hello there world r)ss =81=82=83)shello shello=20)shello shello=09)slxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxs~xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=D8=D9=DA=DB=DC=DD=DE=DFx= xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)Lyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyr)sMzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzsOzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz= zz)szzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzszzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz= zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz)syyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzsyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy= yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz)) hello worlds hello=20world)s hello worlds hello=09world))r hello_world)rs hello=5FworldcCs&|jD]\}}|t||qdSr)STRINGS assertEqualr encodestringrperrrtest_encodestringsz QuopriTestCase.test_encodestringcCs&|jD]\}}|t||qdSr)rrr decodestringrrrrtest_decodestringsz QuopriTestCase.test_decodestringcCsd\}}|t||dS)N)s123=fours 123==four)rrr)rZ decoded_valueZ encoded_valuerrrtest_decodestring_double_equalssz.QuopriTestCase.test_decodestring_double_equalscCs,|jD] \}}|tt||qdSr)rrrrrrrrrtest_idempotent_stringsz%QuopriTestCase.test_idempotent_stringcCsF|jD]:\}}t|}t}tj||dd|||qdS)NFZ quotetabs)rioBytesIOrencodergetvaluerrrZinfpZoutfprrr test_encodes  zQuopriTestCase.test_encodecCsB|jD]6\}}t|}t}t|||||qdSr)rrr rdecoderr"r#rrr test_decodes   zQuopriTestCase.test_decodecCs<|jD]0\}}|tj|dd||t||qdS)NTr)ESTRINGSrrrrrrrrtest_embedded_wsszQuopriTestCase.test_embedded_wscCs*|jD]\}}|tj|dd|qdSNT)header)HSTRINGSrrrrrrrtest_encode_headersz!QuopriTestCase.test_encode_headercCs*|jD]\}}|tj|dd|qdSr))r+rrrrrrrtest_decode_headersz!QuopriTestCase.test_decode_headercCs|jd\}}tjtjdgtjtjd}||jj| |\}}| d }| d }t t |D]}|||||ql|||dS)N-mquopristdinstdoutlatin-1)r subprocessPopensys executablePIPE addCleanupr2close communicater% splitlinesrangelenr)rrrprocesscoutcerrirrrtest_scriptencodes z QuopriTestCase.test_scriptencodecCsr|jd\}}tjtjddgtjtjd}||jj| |\}}| d}| d}| | | dS)Nr.r/z-dr0r3) rr4r5r6r7r8r9r2r:r;r%rr<)rrrr?r@rArrrtest_scriptdecodes  z QuopriTestCase.test_scriptdecodeN)r __module__ __qualname__ DECSAMPLE ENCSAMPLErr'r+r rrrrr$r&r(r,r-rCrDrrrrr @sF3         r __main__) Zunittestr6rr4rrHrGr ZTestCaser r mainrrrrs