a 5êdgúã@sþddlZddlZddlZddlmZddlmZddlmZdd„Z Gdd„deƒZ Gd d „d ej ƒZ dd lm Z Gd d „d e j ƒZGdd„deƒZGdd„deƒZGdd„deƒZGdd„deƒZGdd„deƒZGdd„deƒZdd„ZedkrúeƒdS)éN)Úsupport)ÚMutableMapping)Ú dbm_iteratorcCs | d¡S©Núlatin-1)Údecode)Ús©r ú,/usr/local/lib/python3.9/test/test_shelve.pyÚL1sr c@sPeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „ZeZ d d„Z dd„Z dS)Ú byteskeydictcCs i|_dS©N)Úd©Úselfr r r Ú__init__szbyteskeydict.__init__cCs|jt|ƒSr ©rr ©rÚkeyr r r Ú __getitem__szbyteskeydict.__getitem__cCs||jt|ƒ<dSr r)rrÚvaluer r r Ú __setitem__szbyteskeydict.__setitem__cCs|jt|ƒ=dSr rrr r r Ú __delitem__szbyteskeydict.__delitem__cCs t|jƒSr )Úlenrrr r r Ú__len__szbyteskeydict.__len__ccs |j ¡D]}| d¡Vq dSr)rÚkeysÚencode)rÚkr r r Úiterkeysszbyteskeydict.iterkeyscCs t| ¡ƒSr )Úlistrrr r r r#szbyteskeydict.keyscCs t|jƒSr )r rrr r r Úcopy&szbyteskeydict.copyN) Ú__name__Ú __module__Ú __qualname__rrrrrrÚ__iter__rr r r r r r sr c@sheZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dd„Z dd„Z dd„Z dd„Z dd„ZdS)ÚTestCaseú shelftemp.dbcCs$t |jd¡D]}t |¡qdS©NÚ*)ÚglobÚfnrÚunlink)rÚfr r r ÚtearDown.szTestCase.tearDowncCsˆi}tj|ddd}gd¢|d<| |dgd¢¡| t|ƒd¡| ¡| tt|¡z |dWntyxYn 0| d¡dS©NéF©ÚprotocolÚ writeback©ér/ééÚkey1r4z"Closed shelf should not find a key)ÚshelveÚShelfÚ assertEqualrÚcloseÚ assertRaisesÚ ValueErrorÚfail©rÚd1rr r r Ú test_close2s   zTestCase.test_closecCsDtj|jdd}z$d|d<| |dd¡W| ¡n | ¡0dS)Nr©r1r3r7©r8Úopenr*r:r;©rrr r r Útest_ascii_file_shelfAs zTestCase.test_ascii_file_shelfcCsDtj|jdd}z$d|d<| |dd¡W| ¡n | ¡0dS)Nr4rBr3r7rCrEr r r Útest_binary_file_shelfIs zTestCase.test_binary_file_shelfcCsDtj|jdd}z$d|d<| |dd¡W| ¡n | ¡0dS)Nr/rBr3r7rCrEr r r Útest_proto2_file_shelfQs zTestCase.test_proto2_file_shelfcCsÐtƒ}tj|dd(}d|d<| |dd¡Wdƒn1sB0Ytƒ}tj|dd(}d|d<| |dd¡Wdƒn1sŽ0Y| t|ƒd¡| t|ƒd¡| | ¡| ¡¡dS)NrrBr3r7r4)r r8r9r:rÚassertNotEqualÚitems©rr@rZd2r r r Útest_in_memory_shelfYs..zTestCase.test_in_memory_shelfcCstƒ}tj|dddR}gd¢|d<| |dgd¢¡|d d¡| |dgd¢¡Wdƒn1sn0Ytƒ}tj|dddR}gd¢|d<| |dgd¢¡|d d¡| |dgd¢¡Wdƒn1sæ0Y| t|ƒd ¡| t|ƒd ¡dS) Nr/Fr0r3r7éT)r4r/r5r6rMr4)r r8r9r:ÚappendrrKr r r Útest_mutable_entrygs 2 2zTestCase.test_mutable_entrycCsvi}d}dgt |¡|<| | d¡|¡dgtj|dd|<| | d¡|¡tj|dd}| t|j|dg¡dS)NuPöpr4úutf-8r)Z keyencodingÚascii)r8r9ZassertInrr<ÚUnicodeEncodeErrorr)rrrrr r r Útest_keyencodingyszTestCase.test_keyencodingcCsxi}d}| d¡}tj|dd0}dg||<||}|d d¡Wdƒn1sV0Y||}| ||¡dS)NrrPT)r2r4r/)rr8r9rNrI)rrrÚ encodedkeyrZp1Zp2r r r Ú&test_writeback_also_writes_immediately†s  ,z/TestCase.test_writeback_also_writes_immediatelycCs i}tj|ddd@}gd¢|d<| |dgd¢¡| t|ƒd¡Wdƒn1sZ0Y| tt|¡z |dWntyYn 0| d¡dSr.)r8r9r:rr<r=r>r?r r r Ú test_with’s .  zTestCase.test_withcCs<t i¡}| |jd¡Wdƒn1s.0YdS)Nr5)r8r9r:Z _protocolrEr r r Útest_default_protocol s zTestCase.test_default_protocolN)r!r"r#r*r-rArFrGrHrLrOrSrUrVrWr r r r r%*s  r%)Ú mapping_testsc@s:eZdZdZdZdd„ZejZdd„Z dd„Z d d „Z d S) ÚTestShelveBaser&rcOs$g|_tjj|g|¢Ri|¤ŽdSr )Ú_dbrXÚBasicTestMappingProtocolr)rÚargsÚkwr r r r©szTestShelveBase.__init__cCs ddddœS)NZvalue1r/)r4r/r5)r7Zkey2Zkey3r rr r r Ú _reference­szTestShelveBase._referencecCs\|jrtjtƒfi|j¤Ž}n.|jd7_tj|jt|jƒfi|j¤Ž}|j   |¡|S)Nr4) Ú_in_memr8r9r Ú_argsÚcounterrDr*ÚstrrZrN)rÚxr r r Ú_empty_mapping¯s   zTestShelveBase._empty_mappingcCsD|jD] }| ¡qg|_|js@t |jd¡D]}t |¡q0dSr')rZr;r_r)r*rr+)rZdbr,r r r r-·s   zTestShelveBase.tearDownN) r!r"r#r*rarr8r9Z type2testr^rdr-r r r r rY¦srYc@seZdZddiZdZdS)ÚTestAsciiFileShelver1rFN©r!r"r#r`r_r r r r re¿srec@seZdZddiZdZdS)ÚTestBinaryFileShelver1r4FNrfr r r r rgÂsrgc@seZdZddiZdZdS)ÚTestProto2FileShelver1r/FNrfr r r r rhÅsrhc@seZdZddiZdZdS)ÚTestAsciiMemShelver1rTNrfr r r r riÈsric@seZdZddiZdZdS)ÚTestBinaryMemShelver1r4TNrfr r r r rjËsrjc@seZdZddiZdZdS)ÚTestProto2MemShelver1r/TNrfr r r r rkÎsrkc Cs&tƒD]}t ttttttt ¡qdSr ) rrZ run_unittestrergrhrirjrkr%)Úmoduler r r Ú test_mainÒs ùrmÚ__main__)Zunittestr8r)ÚtestrÚcollections.abcrZ test.test_dbmrr r r%rXr[rYrergrhrirjrkrmr!r r r r Ús&   z