asda?‰PNG  IHDR ? f ??C1 sRGB ??é gAMA ±? üa pHYs ? ??o¨d GIDATx^íüL”÷e÷Y?a?("Bh?_ò???¢§?q5k?*:t0A-o??¥]VkJ¢M??f?±8\k2íll£1]q?ù???T a bYhL@sdZddlZddlZddlZddlZddlmZddlmZm Z m Z m Z gdZ gdZ e e ddgZGd d d ejZGd d d eZGd ddeZGdddeZGdddejZedkredS)zTest the binascii C module.N)support) bigmemtest_1G_4Gwarnings_helper) b2a_base64b2a_hexb2a_hqxb2a_qpb2a_uuhexlify rlecode_hqx) a2b_base64a2b_hexa2b_hqxa2b_qpa2b_uu unhexlify rledecode_hqxcrc32crc_hqxc@seZdZeZdZeeed7Zed7ZddZddZdd Z e j e d d d Z d dZddZddZddZe j e d ddZddZe j e d ddZe j e d ddZddZdd Zd!d"Ze j e d d#d$Zd%d&Ze j e d d'd(Zd)d*Zd+d,Zd-S). BinASCIITests.The quick brown fox jumps over the lazy dog. s Hello world. cCs||j|_dSN) type2testrawdatadataselfr./usr/local/lib/python3.9/test/test_binascii.pysetUpszBinASCIITest.setUpcCs(|ttjt|ttjtdSr) assertTrue issubclassbinasciiError ExceptionZ Incompleterrrr test_exceptionsszBinASCIITest.test_exceptionscCs6tD],}|ttt|d|ttt|qdS)N__call__) all_functionsr"hasattrgetattrr$ assertRaises TypeError)rnamerrr test_functions$szBinASCIITest.test_functions)categoryc Csd}|jd|}tttD]\}}tt|}tt|}z |||}|||}Wn8ty} z |d ||| WYd} ~ n d} ~ 00|dkr|\}} | ||d ||||| |t | |t | t|dq| t|dt| t|tdS)N-{}/{} conversion raises {!r}r {}/{} conversion: {!r} != {!r}r)rzip a2b_functions b2a_functionsr+r$rr&failformat assertEqualassertIsInstancebytesZ assertLessmaxrintr) rMAX_ALLrawfafba2bb2aareserr_rrr test_returned_value*s(  *   z BinASCIITest.test_returned_valuecCsd}g}tdt|j|D]0}||j|||}t|}||qt}|D] }||}t|}||7}qV| ||jdS)N9r) rangelenrrr$rappendr<rr:)r MAX_BASE64linesibrErFlinerrr test_base64validBs     zBinASCIITest.test_base64validc sd}g}tdt|j|D]0}||j|||}t|}||qtd}tdD]}||vr^|q^fdd}t}t ||D] } || }t |}||7}q| ||j| t |ddS)NrJrs@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/rcs|}t|t|}t}|rp|rpt|t||krN|d|dd}}n|d|dd}}||q|||S)Nr)rL bytearrayrM)rRZnoiseZratiorFcZfillersrr addnoise`s z1BinASCIITest.test_base64invalid..addnoise) rKrLrrrr$rrMrUmaprr:) rrNrOrPrQrEZvalidrXrFrRrrWr test_base64invalidQs&        zBinASCIITest.test_base64invalidcsfdd}|d|d|d|d|d|d|d |d fd d }|d |d|d|d|d|d|ddS)NcsBtjd t|Wdn1s40YdS)Nz(?i)Incorrect padding)assertRaisesRegexr$r%rr)rrrr assertIncorrectPaddingxsz>BinASCIITest.test_base64errors..assertIncorrectPaddingsabsab=abcsabcdefsabcdef=sabcdefgsa=b=sa b=cs`ttdd|}dt|}tj| t|Wdn1sR0YdS)Ns[^A-Za-z0-9/+]rYz((?i)Invalid.+number of data characters.+) rLresubstrr\r$r%rr)rZ n_data_charsZexpected_errmsg_rerrr assertInvalidLengths  z;BinASCIITest.test_base64errors..assertInvalidLengthasa=sa==sa===saaaaas]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas A B C ??DEr)rr]rbrrr test_base64errorsvs"  zBinASCIITest.test_base64errorsc Csd}dD]}g}tdt|j|D]4}||j|||}tj||d}||q"t}|D] }||}t |}||7}qb| ||jq| t dd| t dd| t d d| tj tj d | tj tj d | tj tjd | td d| tdd| tjdddd| t dd| t dd| tdd| tjdddd| t dt d| t tddWdn1s0YdS)Nr1)TFr)backtickss ss!!!!s.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!xs!> rYs Ts` sCats $ $-A= s $`$-A=``` )rKrLrrrr$r rMr<rr:r,r%r-) rZMAX_UUrerOrPrQrErFrRrrr test_uusB      zBinASCIITest.test_uucCst|dd}t|d|}||d|ttj|ttj|ddD]"}|t|d||d@qXdS)NTest the CRC-32 ofr this string.i7rY)rrTi4iE#ixV4i)r$rrr:r,r-rcrcrrr test_crc_hqxs zBinASCIITest.test_crc_hqxcCs@t|d}t|d|}||d|ttjdS)Nrkrlij])r$rrr:r,r-rnrrr test_crc32s zBinASCIITest.test_crc32cCsLt|j}t||}t||\}}t|}|||jdSr) r$r rr rrrr:r)rZrlerErQrHrFrrr test_hqxs   zBinASCIITest.test_hqxcCs4d}t|}||dt|}|||dS)Nsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccs adbcc-)r$r r:r)rrencodedZdecodedrrr test_rles  zBinASCIITest.test_rlecCsd}t||}t||}||||tjtj|dd|tjtj|ddd|tjtjtddg|tjtjd|tjtjd|tjtjd|tjtjd|t||||t |||dS) N {sworldishelloi0rmqs0Gs0gsG0sg0) r$rrrr:r,r%r<r r)rsturrr test_hexs zBinASCIITest.test_hexcCsd}|t|||d|ddd}|t||dd||dd}|t||d|dS)z?Test that hexlify and b2a_hex are binary versions of bytes.hex.ruascii.:N)r:r$r rhexencoder)rrxZ expected8Z expected1rrr test_hex_separators "zBinASCIITest.test_hex_separatorcCs|j}tj}tj}|dddz|dUiddiWntyFYn 0|d|||dd|||dd|||dd|||d d |||d d |||d d|||d d|||dd|||dd|||dd|||dd|||dddd|||dd|||dddd|jt|dd|||dd|||dd|||d d!|||d"d#|||dd$|||dd|||dddd%|||d&ddd'|||d(ddd)|||d&ddd*d+|||d,ddd,|||dd-|||d.d/|||d0d0|||d1d1|||d0ddd-|||d1ddd/|||d2d3|||d4d5|||d4dd6d5|||d7d7|||d7dd6d8|||d7dd9d7|||d:d;|||d:dd6d;|||d:dd9d<|||d=d=|||d=dd6d>|||d=dd9d?|||d@dA|||d@dd6dA|||d@dd9dB|||dCdddD|||dEdddF|||dCdddd6dG|||dEdddd6dH|||dCdddd9dI|||dEdddd9dJ|||dKdL|||dMdN|||dOdP|||dQdR|||dSdS|||dTdddLdS)VNrYF)rheaderrTz/binascii.a2b_qp(**{1:1}) didn't raise TypeError=s= s==s= ABsABs= ABs= ABs= AB CDsCDs=ABs=abs=AXs=XArms=A_T)r Zbar)Zfoos=00 =00s s s =FF =FF =FFsR000000000000000000000000000000000000000000000000000000000000000000000000000 s[000000000000000000000000000000000000000000000000000000000000000000000000000= =FF =FF =FFrfs=7Fs=3Ds=5Fsx ysx_ysx sx=20)r quotetabssx=20ysx ys=20 s=09s xs xs=00s s=00 )rsx y zs x=20y=09z)istextsx y s x=20 y=09 s x =0Ay =0Asx y s x=20 y=09 s x =0Dy =0Dsx y s x=20 y=09 sx =0D=0Ay =0D=0Asx sx sx sx sx=20 sx=09 sx =0Dsx =0D.s=2Es. s=2E s. s=2E s.s=2E=00sa. s.a)rY)rr$rr r-r8r:r,)rrrr rrr test_qps   zBinASCIITest.test_qpc Cs~|d}tD]j}|dkr(t|dqtt|}z ||Wqtyv}z |d|||WYd}~qd}~00qdS)NrYrrz{}({!r}) raises {!r})rr)r$rr+r&r8r9)remptyfuncfrGrrr test_empty_stringls    zBinASCIITest.test_empty_stringc CsttttdhBD]T}z|ttt|dWqtyh}z|d ||WYd}~qd}~00q|ttj dddS)Nrtestz{}("test") raises {!r}r) setr)r6r,r-r+r$r&r8r9r)rrrGrrr test_unicode_b2a{s *zBinASCIITest.test_unicode_b2ac Csd}|jd|}tttD]\}}|dkr.qtt|}tt|}z,|||}||}|d}||} Wn8ty} z | d ||| WYd} ~ n d} ~ 00|dkr| \} } |\}} | | |d ||| || | || | t |t|dqdS)Nr1rr|r2r r3€)rr5r6r7r+r$rdecoder&r8r9r:r;r<r, ValueError) rr?r@rArBrCrDrEZ binary_resrFrGrHrrr test_unicode_a2bs.    *   zBinASCIITest.test_unicode_a2bcCsL|d}|t|d|tj|ddd|tj|ddddS)Nshellos aGVsbG8= T)newlineFsaGVsbG8=)rr:r$r)rrQrrr test_b2a_base64_newlines  z$BinASCIITest.test_b2a_base64_newlinecCs|t"|tddWdn1s20Y|t"|tddWdn1sn0Y|t"|tddWdn1s0Y|t"|tddWdn1s0YdS)Nr^sB@*M)r^rs aaaaaaaaaasa )Z assertWarnsDeprecationWarningr:r$r rr rrrrr test_deprecated_warningss 0 0 0 z%BinASCIITest.test_deprecated_warningsN)__name__ __module__ __qualname__r<rrrKr!r'r/rZignore_warningsrrIrSr[rdrjrprqrrrtr{rrrrrrrrrrr rs<  %%      f     rc@seZdZddZdS)ArrayBinASCIITestcCstdt|S)NB)arraylist)rrxrrr rszArrayBinASCIITest.type2testN)rrrrrrrr rsrc@seZdZeZdS)BytearrayBinASCIITestN)rrrrUrrrrr rsrc@seZdZeZdS)MemoryviewBinASCIITestN)rrr memoryviewrrrrr rsrc@s*eZdZdZeeddddddZdS) ChecksumBigBufferTestCasez=4 GiB are handled correctly.rTF)sizeZmemusedry_runcCs"dtd}|t|ddS)NsnyanrTiM"B>)rr:r$r)rrrrrr test_big_buffers z)ChecksumBigBufferTestCase.test_big_bufferN)rrr__doc__rrrrrrr rsr__main__)rZunittestr$rr_rrZ test.supportrrrrr7r6r)ZTestCaserrrrrrmainrrrr s& )