mò &U²Ic@s±dZdkZdkZdkZdkZdkZdkZdklZdkZydk l Z Wn e j odk l Z nXdk lZdZdeifd„ƒYZdeifd „ƒYZd efd „ƒYZd efd „ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZd efd!„ƒYZd"efd#„ƒYZd$efd%„ƒYZ d&efd'„ƒYZ!d(efd)„ƒYZ"d*efd+„ƒYZ#d,efd-„ƒYZ$d.e$fd/„ƒYZ%d0e$fd1„ƒYZ&d2„Z'e(d3joei)d4d5ƒndS(6s_ Basic TestCases for BTree and hash DBs, with and without a DBEnv, with various DB flags, etc. N(spprint(sdb(sverboset-tVersionTestCasecBstZd„ZRS(NcCsktiƒ}to.dGddGHd|fGHtiGHddGHn|tititifjpt‚dS(Ns s-=isbsddb.db.version(): %s( tdbtversiontinfotverbosetDB_VERSION_STRINGtDB_VERSION_MAJORtDB_VERSION_MINORtDB_VERSION_PATCHtAssertionError(tselfR((t3/data/zmath/lib/python2.4/bsddb/test/test_basics.pyttest00_versions    (t__name__t __module__R (((R Rst BasicTestCasecBs¿tZeiZdZdZdZdZ dZ dZ dZ dZ d„Zd„Zdd„Zd„Zd„Zd „Zddd „Zd „Zd „Zd „Zd„Zd„Zd„ZRS(Nii°iêc Cs|io3tiitiitidƒdƒ}||_yt i |ƒWn8t j o,}|i t it ifjo‚q‡nXti|ƒy‹tiƒ|_|iiddƒ|ii|idƒ|ii||itiBƒ|t_tiitiƒƒd|_dt_WqUt i |ƒ‚qUXnd|_tiƒ|_ti |iƒ|_!|i!i|i"ƒ|i#o6|i!i|i|i#|i$|i%tiB|i&ƒn6|i!i|id|i&d|i$d|i%tiBƒ|i'ƒdS(Nitdb_homeiitmodetdbtypetflags((R tuseEnvtostpathtjointdirnametsystargvthomeDirtshutiltrmtreetOSErrorteterrnotENOENTtESRCHtmkdirRtDBEnvtenvt set_lg_maxt set_flagst envsetflagstopentenvflagst DB_CREATEttempfilettempdirtsplittmktemptfilenametNonetDBtdt dbsetflagstdbnameRt dbopenflagstdbmodet populateDB(R R R((R tsetUp6s@ (           cCsR|iiƒ|idj o!|iiƒti|iƒnti |i ƒdS(N( R R4tcloseR&R2RRRRtremoveR1(R ((R ttearDown_s   cCsô|i}xNt|idƒD]9}d|i|}|i|ƒ}|i|||ƒqW|idd|ƒxKt|iddƒD]2}d|}|i|ƒ}|i|||ƒq…W|o|i ƒnt |ƒ}t o d|GHndS(Nis%04ds empty valuetiscreated %d records(R R4tranget_numKeystxtkeytmakeDatatdatatputt_txntcommittlentnumR(R RFR4RIRBRARD((R R9os"   cCsti|gdƒS(Ni(tDASHRRB(R RB((R RC†scCs |i}to dGddGHd|iiGHnx<ddddd gD]%}|i|ƒ}to |GHqFqFW|id ƒd jpt‚|id ƒdjpt‚y|i d ƒWnCt i j o4}|d t ijpt‚to |GHq nX|idƒ|id dƒ|id ƒdjpt‚|id dƒ|it i@o!|id ƒdjpt‚n|id ƒdjpt‚y|id ddt iƒWnCt ij o4}|d t ijpt‚to |GHq nX|idƒ|it i@o!|id ƒdjpt‚n|id ƒdjpt‚|iƒ|iƒ~t i|iƒ|_|io|ii|i|iƒn|ii|iƒ|i}|id ƒd jpt‚|it i@o!|id ƒdjpt‚n|id ƒdjpt‚|iddƒ}to |GHn|iddƒdjpt‚|iddƒ}|djpt‚|id|ƒ}||jpt‚|iƒ}t!|ƒt!hƒjpt‚todGHt"|ƒndS(Ns s-=is Running %s.test01_GetsAndPuts...t0001t0100t0400t0700t0999t0321s0321-0321-0321-0321-0321tabcdisexpected exceptions a new recordssame keysthis should failRt0555s0555-0555-0555-0555-0555sbad datasbad keys"d.stat() returned this dictionary:(#R R4Rt __class__RRBtgetRDR R2tdeleteRtDBNotFoundErrortvalt DB_NOTFOUNDtfailRER5tDB_DUPtDB_NOOVERWRITEtDBKeyExistErrort DB_KEYEXISTtsyncR;R3R&R6R*R1tget_bothtrectstattsttypetpprint(R R4RWRbRBR`RD((R ttest01_GetsAndPutssv    ! !    !    cCs)|i}to dGddGHd|iiGHnxTddddd gD]=}||}||i|ƒjpt‚to |GHqFqFWt |ƒ|i jpt‚|i ƒ}t |ƒ|i jpt‚t |ƒt gƒjpt‚d |d sbad keysexpected exceptionsexpected None: %rt0404sbad datat011ssearched for '011', found: tdlentdoffs%searched (partial) for '011', found: sexpected empty data portions!search for 'empty value' returnedsempty value lookup failedt0499sexception expecteds a new valueteris a newer valuetcurrentRUtduptfirstRTtnexttprevtlastRERktsets-attempting to use a closed cursor's %s methods8no exception raised when using a buggy cursor's%s method(i(Rr(:RR RSRtget_raises_errortset_raises_errorR&R7RtDB_AUTO_COMMITt txn_beginRqR2R4tcursortcR{R`tcountR|RVRWRXR RYtget_current_sizeRHRyR@R~R}Rtrec2RCtnR_tget_typetDB_BTREEt set_rangetevRUtDBKeyEmptyErrort DB_KEYEMPTYRzt DB_POSITIONtc2REt DB_CURRENTR;RGtmethods_to_testRntmethodtargstapplytgetattrtDBErrort oldcursor(R R€RRqRˆRRWR‰R`R™R”R•R‘R†R…R“((R ttest03_SimpleCursorStuff%sö       L       !$ #          "  r   cCsgto dGddGHd|iiGHn|iidƒ}|djpt‚|iddd dƒdS( Ns s-=is<Running %s.test03b_SimpleCursorStuffWithoutGetReturnsNone...iiR€iR( RR RSRR4tset_get_returns_nonetoldR Rš(R Rœ((R t*test03b_SimpleCursorWithoutGetReturnsNone0Ës  cCsSto dGddGHd|iiGHn|iidƒ}|iddddƒdS( Ns s-=is<Running %s.test03b_SimpleCursorStuffWithoutGetReturnsNone...iR€iR(RR RSRR4R›RœRš(R Rœ((R t'test03b_SimpleCursorWithGetReturnsNone1Ös  cCsto dGddGHd|iiGHn|iidƒ}|djpt‚|iidƒ}|djpt‚|iddd dƒdS( Ns s-=is<Running %s.test03c_SimpleCursorStuffWithoutSetReturnsNone...iiR€iR( RR RSRR4R›RœR Rš(R Rœ((R t#test03c_SimpleCursorGetReturnsNone2ás cCsx|i}to dGddGHd|iiGHnd}dddd}|i||ƒ|i|ƒ|jpt ‚|i|d d d d ƒdd dd jpt ‚|iddddƒ|idd dd dƒdjpt ‚|i t i jov|i|dd dd dƒ|i|ƒdjpt ‚|i|dd dd dƒ|i|ƒdjpt ‚ndS(Ns s-=is%Running %s.test04_PartialGetAndPut...t partialTestt1ièt2RuiRviÞi t partialtest2i0utrobinit0000iÐit1111iit0011110( R R4RRSRRBRDRERTR R5RRZ(R R4RBRD((R ttest04_PartialGetAndPutðs   5)cCsŒ|i}to dGddGHd|iiGHnxUtdddƒD]A}d|}|i|d |ƒ|i |ƒ|jpt ‚qCWdS( Ns s-=isRunning %s.test05_GetSize...iiPÃiôssize%sR¡( R R4RRSRR?tiRBREtget_sizeR (R R4R©RB((R ttest05_GetSizes   cCs¬tiƒd jodSn|i}to dGddGHd|iiGHn|iddƒ|iƒ}|djp t d ‚|iƒ}|d jpt d |f‚dS( Nis s-=isRunning %s.test99_Truncate...tabcdetABCDEis,truncate returned <= 0 on non-empty databaseis*truncate on empty DB returned nonzero (%r)(ii( RRR R4RRSRREttruncateRIR (R RIR4((R ttest06_Truncates    (RRRt DB_UNKNOWNRR7R5R8R2R6RR+R)R@R:R=R9RCReRpRšRRžRŸR¨R«R¯(((R R*s,  )    \ <¦   tBasicBTreeTestCasecBstZeiZRS(N(RRRR‹R(((R R±4stBasicHashTestCasecBstZeiZRS(N(RRRtDB_HASHR(((R R²8st BasicBTreeWithThreadFlagTestCasecBstZeiZeiZRS(N(RRRR‹Rt DB_THREADR7(((R R´<s tBasicHashWithThreadFlagTestCasecBstZeiZeiZRS(N(RRRR³RRµR7(((R R¶As tBasicWithEnvTestCasecBsQtZeiZdZeieiBeiBZd„Z ei ƒdjo[ nRS(NicCs€|ipdSnto dGddGHd|iiGHn|iiƒ|id}|ii |id|ƒ|ii |ƒdS(Ns s-=is'Running %s.test07_EnvRemoveAndRename...s.renamed( R R&RRSRR4R;R1tnewnametdbrenameR2tdbremove(R R¸((R ttest07_EnvRemoveAndRenameMs    i(ii( RRRRµR7Rt DB_INIT_MPOOLt DB_INIT_LOCKR+R»R(((R R·Fs   tBasicBTreeWithEnvTestCasecBstZeiZRS(N(RRRR‹R(((R R¾bstBasicHashWithEnvTestCasecBstZeiZRS(N(RRRR³R(((R R¿fstBasicTransactionTestCasecBsrtZeieiBZdZeieiBeiBei BZ eiZ d„Z d„Z d„Zd„Zd„ZRS(NicCs|iiƒti|ƒdS(N(R RqRGRR=(R ((R R=ts cCs8|iiƒ}ti|d|ƒ|iiƒ|_dS(NRF(R R&RƒRqRR9(R Rq((R R9yscCs¬|i}to dGddGHd|iiGHn|idd|iƒdjpt‚|i dd|iƒ|idd|iƒdjpt‚|ii ƒ|idƒdjpt‚|i i ƒ|_|idd|iƒdjpt‚|i dd|iƒ|idd|iƒdjpt‚|ii ƒ|idƒdjpt‚|i i ƒ|_|i|iƒ}|iƒ}d}xI|dj o;|d }to|d djo |GHn|iƒ}q“W||id jpt‚|iƒ|ii ƒy|i idddƒWntij onX|i ititiBƒ}|djpt‚x"|D]}to d |GHqxqxW|i i ƒ|_dS( Ns s-=is!Running %s.test06_Transactions...snew recRqsthis is a new recordiiids log file: (R R4RRSRRTRqR2R REtabortR&RƒRGR„R…R{R`R†R|R@R;ttxn_checkpointRtDBIncompleteErrort log_archivet DB_ARCH_ABSt DB_ARCH_LOGtlogstlog(R R†R4R…RÇRÈR`((R ttest06_TransactionssN  && &&       cCsËtiƒd jodSn|i}to dGddGHd|iiGHn|iddƒ|ii ƒ}|i |ƒ}|djp t d ‚|i |ƒ}|d jpt d |f‚|iƒdS( Nis s-=is Running %s.test07_TxnTruncate...R¬R­is,truncate returned <= 0 on non-empty databaseis*truncate on empty DB returned nonzero (%r)(ii(RRR R4RRSRRER&RƒRqR®RIR RG(R RqR4RI((R ttest07_TxnTruncate´s  cCsš|iiƒ}|iƒy|iƒWntij o }n Xtd‚|iiƒ}|i ƒy|i ƒWntij o }n Xtd‚dS(NsBDBTxn.abort() called after DB_TXN no longer valid w/o an exceptionsCDBTxn.commit() called after DB_TXN no longer valid w/o an exception( R R&RƒRqRÁRR˜R t RuntimeErrorRG(R RqR ((R ttest08_TxnLateUseÈs   (RRRRµR‚R7RR¼R½t DB_INIT_TXNR+R)R=R9RÉRÊRÌ(((R RÀls    3 tBTreeTransactionTestCasecBstZeiZRS(N(RRRR‹R(((R RÎÜstHashTransactionTestCasecBstZeiZRS(N(RRRR³R(((R RÏßstBTreeRecnoTestCasecBs#tZeiZeiZd„ZRS(NcCs|i}to dGddGHd|iiGHn|idƒ}t|ƒtfƒjpt‚t |ƒdjpt‚to dG|GHn|i ƒ}|i dƒ|i ƒ}t|ƒtd ƒjpt‚to d G|GHn|iƒ}|i|ƒ|jpt‚|iƒdS( Ns s-=is!Running %s.test07_RecnoInBTree...iÈisRecord #200 is t0200isrecno of d['0200'] is (R R4RRSRRTR`RcR RHR„R…Rt get_recnoRIRyt set_recnoR;(R R…R4RIR`((R ttest07_RecnoInBTreeês$          (RRRR‹Rt DB_RECNUMR5RÔ(((R RÐæs  t BTreeRecnoWithThreadFlagTestCasecBstZeiZRS(N(RRRRµR7(((R RÖstBasicDUPTestCasecBstZeiZd„ZRS(Nc Cs×|i}to dGddGHd|iiGHn|iddƒx$diƒD]}|id|ƒqMW|id d ƒ|idƒ}|d jpt ‚to |GHn|i ƒ}|i dƒ}|djpt ‚|iƒ}|djpt ‚|i dƒ}|iƒ}|d jpt ‚|iƒ}|djpt ‚|i dƒ}x.|dj o to |GHn|iƒ}qZW|i dƒ|iƒ}|ddjpt ‚to |GHn|iƒdS(Ns s-=is"Running %s.test08_DuplicateKeys...tdup0tbefores-The quick brown fox jumped over the lazy dog.tdup1tdup2taftertThetquicki i(RÚRÝ(RÚRÞ(RÚRÞ(R R4RRSRRER/RARTRDR R„R…RR`R|R†tnext_dupR2t next_nodupR;( R R†R…R4R|RßR`RARD((R ttest08_DuplicateKeys sF             (RRRRZR5Rá(((R R× s tBTreeDUPTestCasecBstZeiZRS(N(RRRR‹R(((R Râ;stHashDUPTestCasecBstZeiZRS(N(RRRR³R(((R Rã>stBTreeDUPWithThreadTestCasecBstZeiZeiZRS(N(RRRR‹RRµR7(((R RäAs tHashDUPWithThreadTestCasecBstZeiZeiZRS(N(RRRR³RRµR7(((R RåEs tBasicMultiDBTestCasecBs tZdZd„Zd„ZRS(NR{cCs)|itijo tiSntiSdS(N(R RRR‹R³(R ((R t otherTypeOs c Csq|i} to dGddGHd|iiGHnti|iƒ}|i |i d|i |i tiBƒti|iƒ}|i |i d|iƒ|i tiBƒx-diƒD]}|i||i|ƒƒq°Wx%tiD]}|i||dƒqÝW| iƒ|iƒ|iƒ| iƒ|iƒ|iƒd|_} }}ti|iƒ|_} | i |i |id |i ƒti|iƒ}|i |i dd |i ƒti|iƒ}|i |i dd |i ƒ| iƒ}|iƒ}|iƒ}d }|i ƒ}xI|dj o;|d }to|d d jo |GHn|i"ƒ}qW||i#jpt$‚d }|i ƒ}x8|dj o*|d }to |GHn|i"ƒ}qŽW|d jpt$‚d }|i ƒ}x8|dj o*|d }to |GHn|i"ƒ}qïW|djpt$‚|iƒ|iƒ|iƒ|iƒ|iƒdS(Ns s-=isRunning %s.test09_MultiDB...tsecondtthirds,The quick brown fox jumped over the lazy dogiFRiii2i i4(%R R4td1RRSRRR3R&td2R*R1RR7R,td3RçR/RARERCtstringtlettersR^R;R2R6R„tc1R‘tc3R†R{R`R|R@R ( R R†R`R‘RðRARïRëRìRê((R ttest09_MultiDBUs€                             (RRR6RçRñ(((R RæLs tBTreeMultiDBTestCasecBs7tZeiZeiZdZeieiBei BZ RS(Ni( RRRR‹RRµR7RR¼R½R+(((R Rò¤s  tHashMultiDBTestCasecBs7tZeiZeiZdZeieiBei BZ RS(Ni( RRRR³RRµR7RR¼R½R+(((R Róªs  cCs†tiƒ}|ititƒƒ|ititƒƒ|ititƒƒ|ititƒƒ|itit ƒƒ|itit ƒƒ|itit ƒƒ|itit ƒƒ|itit ƒƒ|ititƒƒ|ititƒƒ|ititƒƒ|ititƒƒ|ititƒƒ|ititƒƒ|ititƒƒ|ititƒƒ|S(N(tunittestt TestSuitetsuitetaddTestt makeSuiteRR±R²R´R¶R¾R¿RÎRÏRÐRÖRâRãRäRåRòRó(Rö((R t test_suite´s& t__main__t defaultTestRù(*t__doc__RRR!RRíR-RdRôtbsddb3Rt ImportErrortbsddbttest_allRRJtTestCaseRRR±R²R´R¶R·R¾R¿RÀRÎRÏRÐRÖR×RâRãRäRåRæRòRóRùRtmain("R¶RRôRR±RRäRRÀRòR-R!RdR·RRâRÏRíR×RãRÖRRÎRJRæRùR¾RÐRåR²R´RóRR¿((R t?sR          ÿÿ p2X