a ze@sfddlZddlZddlZddlZddlZddlZddlmZddlm Z ddl m Z ddZ Gddde Z Gd d d ejZGd d d ZGd ddeZGdddeZddlmZeejdD]ZeejfZdedZeeeddeiiee<eejfZe D]BZejddZdededZeeeedeidee<q qedkrbedS)N)support)MutableMapping) dbm_iteratorcCs |dSNlatin-1)decode)sr D/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_shelve.pyL1 sr c@sPeZdZddZddZddZddZd d Zd d ZeZ d dZ ddZ dS) byteskeydictcCs i|_dSN)dselfr r r __init__szbyteskeydict.__init__cCs|jt|Sr rr rkeyr r r __getitem__szbyteskeydict.__getitem__cCs||jt|<dSr r)rrvaluer r r __setitem__szbyteskeydict.__setitem__cCs|jt|=dSr rrr r r __delitem__szbyteskeydict.__delitem__cCs t|jSr )lenrrr r r __len__szbyteskeydict.__len__ccs |jD]}|dVq dSr)rkeysencode)rkr r r iterkeys szbyteskeydict.iterkeyscCs t|Sr )listrrr r r r&szbyteskeydict.keyscCs t|jSr )r rrr r r copy)szbyteskeydict.copyN) __name__ __module__ __qualname__rrrrrr__iter__rr r r r r r sr c@s|eZdZejZejejdZ ddZ dddZ ddZ d d Z d d Zd dZddZddZddZddZddZdS)TestCase shelftemp.dbcCsi}tj|ddd}gd|d<||dgd|t|d||tt|z |dWntyxYn 0|ddSNFprotocol writebackr(key1r-z"Closed shelf should not find a key)shelveShelf assertEqualrclose assertRaises ValueErrorfailrd1rr r r test_close1s   zTestCase.test_closeNcCs`t|j|tj|jtj|j|d}z$d|d<| |ddW| n | 0dS)Nr*r,r0) osmkdirdirname addCleanuprrmtreer1openfnr3r4)rr*rr r r test_open_template@s zTestCase.test_open_templatecCs|jdddS)Nrr;rCrr r r test_ascii_file_shelfJszTestCase.test_ascii_file_shelfcCs|jdddS)Nr-r;rDrr r r test_binary_file_shelfMszTestCase.test_binary_file_shelfcCs|jdddS)Nr(r;rDrr r r test_proto2_file_shelfPszTestCase.test_proto2_file_shelfcCst}tj|dd(}d|d<||ddWdn1sB0Yt}tj|dd(}d|d<||ddWdn1s0Y|t|d|t|d|||dS)Nrr;r,r0r-)r r1r2r3rassertNotEqualitemsrr9rZd2r r r test_in_memory_shelfSs..zTestCase.test_in_memory_shelfcCst}tj|dddR}gd|d<||dgd|dd||dgdWdn1sn0Yt}tj|dddR}gd|d<||dgd|dd||dgdWdn1s0Y|t|d |t|d dS) Nr(Fr)r,r0T)r-r(r.r/rLr-)r r1r2r3appendrrJr r r test_mutable_entryas 2 2zTestCase.test_mutable_entrycCsvi}d}dgt||<||d|dgtj|dd|<||d|tj|dd}|t|j|dgdS)NuPöpr-utf-8r)Z keyencodingascii)r1r2ZassertInrr5UnicodeEncodeErrorr)rrrrr r r test_keyencodingsszTestCase.test_keyencodingcCsxi}d}|d}tj|dd0}dg||<||}|ddWdn1sV0Y||}|||dS)NrrOT)r+r-r()rr1r2rMrH)rrr encodedkeyrZp1Zp2r r r &test_writeback_also_writes_immediatelys  ,z/TestCase.test_writeback_also_writes_immediatelycCsi}tj|ddd@}gd|d<||dgd|t|dWdn1sZ0Y|tt|z |dWntyYn 0|ddSr')r1r2r3rr5r6r7r8r r r test_withs .  zTestCase.test_withcCs<ti}||jdWdn1s.0YdS)Nr.)r1r2r3Z _protocol)rrr r r test_default_protocols zTestCase.test_default_protocol)N)r!r"r#rTESTFNr>r<pathjoinrBr:rCrErFrGrKrNrRrTrUrVr r r r r%-s   r%c@seZdZejZddZdS)TestShelveBasecCs ddddS)NZvalue1r()r-r(r.)r0Zkey2Zkey3r rr r r _referenceszTestShelveBase._referenceN)r!r"r#r1r2Z type2testr[r r r r rZsrZc@seZdZddZdS)TestShelveInMemBasecCstjtfi|jSr )r1r2r _argsrr r r _empty_mappingsz"TestShelveInMemBase._empty_mappingN)r!r"r#r^r r r r r\sr\c@s eZdZdZddZddZdS)TestShelveFileBasercCs>|jd7_tj|jt|jfi|j}||j|S)Nr-)counterr1rA base_pathstrr]r?r4)rxr r r r^s  z!TestShelveFileBase._empty_mappingcCsLtj}t||tj|tj|d|_|t t dt j |j t _ dS)Nr& _defaultmod) rrWr<r=r?r@rXrYrasetattrdbmrddbm_mod)rr>r r r setUps  zTestShelveFileBase.setUpN)r!r"r#r`r^rhr r r r r_sr_) mapping_testsr-Z TestProtoZ MemShelver]r*r/ZFile_ZShelve)rgr]__main__)Zunittestrfr<r1globpickletestrcollections.abcrZ test.test_dbmrr r r%rZr\r_rirangeHIGHEST_PROTOCOLprotoZBasicTestMappingProtocolbasesnametypeglobalsrgr!suffixmainr r r r s<   r