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@sTeZdZdZddZddZddZdd Zd d Zd d Z e Z ddZ ddZ dS) byteskeydictz Mapping that supports bytes keyscCs 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____doc__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-r1) osmkdirdirname addCleanuprrmtreer2openfnr4r5)rr+rr r r test_open_template@s zTestCase.test_open_templatecCs|jdddS)Nrr<rDrr r r test_ascii_file_shelfJszTestCase.test_ascii_file_shelfcCs|jdddS)Nr.r<rErr r r test_binary_file_shelfMszTestCase.test_binary_file_shelfcCs|jdddS)Nr)r<rErr 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-r1r.)r r2r3r4rassertNotEqualitemsrr:rZd2r 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-r1T)r.r)r/r0rMr.)r r2r3r4appendrrKr 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)r2r3ZassertInrr6UnicodeEncodeErrorr)rrrrr r r test_keyencodingsszTestCase.test_keyencodingcCsxi}d}|d}tj|dd0}dg||<||}|ddWdn1sV0Y||}|||dS)NrrPT)r,r.r))rr2r3rNrI)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()r2r3r4rr6r7r8r9r r r test_withs .  zTestCase.test_withcCs<ti}||jdWdn1s.0YdS)Nr/)r2r3r4Z _protocol)rrr r r test_default_protocols zTestCase.test_default_protocol)N)r!r"r#rTESTFNr?r=pathjoinrCr;rDrFrGrHrLrOrSrUrVrWr r r r r&-s   r&c@seZdZejZddZdS)TestShelveBasecCs ddddS)NZvalue1r))r.r)r/)r1Zkey2Zkey3r rr r r _referenceszTestShelveBase._referenceN)r!r"r#r2r3Z type2testr\r r r r r[sr[c@seZdZddZdS)TestShelveInMemBasecCstjtfi|jSr )r2r3r _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.)counterr2rB base_pathstrr^r@r5)rxr r r r_s  z!TestShelveFileBase._empty_mappingcCsLtj}t||tj|tj|d|_|t t dt j |j t _ dS)Nr' _defaultmod) rrXr=r>r@rArYrZrbsetattrdbmredbm_mod)rr?r r r setUps  zTestShelveFileBase.setUpN)r!r"r#rar_rir r r r r`sr`) mapping_testsr.Z TestProtoZ MemShelver^r+r0ZFile_ZShelve)rhr^__main__)Zunittestrgr=r2globpickletestrcollections.abcrZ test.test_dbmrr r r&r[r]r`rjrangeHIGHEST_PROTOCOLprotoZBasicTestMappingProtocolbasesnametypeglobalsrhr!suffixmainr r r r s<   r