a zeF@sddlZddlZddlZddlZzddlmZWneyFdZYn0ejjZ ej e ejjZ ddZ ddZddZGd d d ZGd d d ejZe D]8Zejd dZdeZeeeejfdeiee<qedkredS)N)ndbmc csJtjD]>}zt|dgd}Wnty2YqYn0|tj|<|VqdS)Nopen)fromlist)dbmZ_names __import__ ImportErrorZ_modules)namemodr A/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_dbm.py dbm_iterators    r cCstjtdSN)testsupportrmtreedirnamer r r r cleaunup_test_dirsrcCstttdSr )rosmkdirrr r r r setup_test_dir"src@seZdZdddddddZdd Zd d Zd d ZddZddZddZ ddZ ddZ ddZ ddZ ddZddZd d!Zd"d#Zd$S)%AnyDBMTestCasesPython:s ProgrammingstheswaysGuidosintended)abcdfgcCs8ttd}|jD]}|j|||d<q|dS)Nnascii)rr_fname_dictencodeclose)selfrkr r r init_db0s  zAnyDBMTestCase.init_dbcCs4tdd|D}t|j}||||S)Ncss|]}|dVqdS)rN)decode).0r$r r r 7z-AnyDBMTestCase.keys_helper..)sortedkeysr assertEqual)r#rr+Zdkeysr r r keys_helper6s zAnyDBMTestCase.keys_helpercCs|t|jjtdSr )Z assertTrue issubclassmoduleerrorOSErrorr#r r r test_error<szAnyDBMTestCase.test_errorcCs|tjtjtdSr ) assertRaisesrr0rrr2r r r test_anydbm_not_existing?sz'AnyDBMTestCase.test_anydbm_not_existingcCsVttd}|t|g|jD]}|j|||d<q&||| dS)Nrr) rrrr,listr+r r! read_helperr"r#rkeyr r r test_anydbm_creationBs    z#AnyDBMTestCase.test_anydbm_creationcCsLtjtttd }|t|dWdn1s>0YdS)Nrr)rrZcreate_empty_filerrrr,lenr#rr r r 8test_anydbm_creation_n_file_exists_with_invalid_contentsJs zGAnyDBMTestCase.test_anydbm_creation_n_file_exists_with_invalid_contentscCs`|ttd}d|jd<|d<||||ddd||dd|dS)Nrsindentedrgxxxfoo) r%rrrr r7r, setdefaultr"r<r r r test_anydbm_modificationPs  z'AnyDBMTestCase.test_anydbm_modificationcCs|ttd}||||d|jd||ddd||d| t |dWdn1s0Y| dS)Nrarr?r@) r%rrrr7r,getr assertIsNoner4KeyErrorr"r<r r r test_anydbm_readZs   &zAnyDBMTestCase.test_anydbm_readcCs*|ttd}||}|dS)NrC)r%rrrr-r")r#rr+r r r test_anydbm_keysfs  zAnyDBMTestCase.test_anydbm_keyscCsttjdddkr|dttd}||gd|d<||dg|d|||dd|| dd|| dd| dS)NZlibraryz Berkeley DBzCBerkeley DB doesn't distinguish the empty value from the absent onerr)sempty) getattrr _defaultmodZskipTestrrr,r+assertInrErAr"r<r r r test_empty_valuels   zAnyDBMTestCase.test_empty_valuecCs6|ttd}dd}||||dS)NrCrr)r%rrrr!rLr"r8r r r test_anydbm_accesszs    z!AnyDBMTestCase.test_anydbm_accesscCs6||}|jD] }||j|||dqdS)Nr)r-r r,r!)r#rr+r9r r r r7s  zAnyDBMTestCase.read_helpercsttd|gddg}|D]\}}||<q*|ttdd|D|D]$\}}|||||qb|d|t fddWdn1s0YdS) Nr)rDb)s 12345678910s019237410982340912840198242css|]\}}|VqdSr r )r'r$vr r r r(r)z+AnyDBMTestCase.test_keys..r?csdS)Nr?r r rr r r)z*AnyDBMTestCase.test_keys..) rrrr,r+r*rLZ assertNotInr4rG)r#rr$rPr rQr test_keyss  "   zAnyDBMTestCase.test_keyscCs.|ttdtj|jt_|ttdS)NrK) addCleanupsetattrrrKr/rrr2r r r setUps zAnyDBMTestCase.setUpN)__name__ __module__ __qualname__r r%r-r3r5r:r=rBrHrIrMrNr7rSrVr r r r r's*   rc@s2eZdZddZejeddddZddZd S) WhichDBTestCasec Cs|ttdtjtD]}|j}t|t_|tdWdn1sP0Y| ||j t|td4}d|d<| d|| |ddWdn1s0Y| ||j tqdS)NrKrw1) rTrUrrKr rWrrrr,whichdbrL)r#r/rrr r r test_whichdbs , .zWhichDBTestCase.test_whichdbzTest requires ndbm)reasoncCsDttddWdn1s$0Y||jtdS)Nz.dbwb)rrrFrr]r2r r r test_whichdb_ndbms.z!WhichDBTestCase.test_whichdb_ndbmcCs"|tttjd|_dS)Nr)rTrrrrZimport_fresh_modulerr2r r r rVs zWhichDBTestCase.setUpN) rWrXrYr^unittestZ skipUnlessrrarVr r r r rZs  rZZ TestCase_r/__main__)rbrrZ test.supportrrrrZTESTFNrpathjoinrr rrrZTestCaserZr rWsuffixZtestnametypeglobalsmainr r r r s.   t!