m &UIc@sdZdkZdkZdkZdkZdkZdkZdklZdkZydk l Z Wn e j odk l Z nXdk lZdZdeifdYZdeifd YZd efd YZd efd YZdefdYZdefdYZdefdYZdefdYZdefdYZdefdYZdefdYZdefdYZdefdYZd efd!YZd"efd#YZd$efd%YZ d&efd'YZ!d(efd)YZ"d*efd+YZ#d,efd-YZ$d.e$fd/YZ%d0e$fd1YZ&d2Z'e(d3joei)d4d5ndS(6s_ Basic TestCases for BTree and hash DBs, with and without a DBEnv, with various DB flags, etc. N(spprint(sdb(sverboset-tVersionTestCasecBstZdZRS(NcCsEti}to.dGddGHd|fGHtiGHddGHndS(Ns s-=isbsddb.db.version(): %s(tdbtversiontinfotverbosetDB_VERSION_STRING(tselfR((t3/data/zmath/lib/python2.4/bsddb/test/test_basics.pyttest00_versions    (t__name__t __module__R (((RRst BasicTestCasecBstZeiZdZdZdZdZ dZ dZ dZ dZ dZdZddZdZdZd Zddd Zd Zd Zd ZdZdZdZRS(Niiic Cs|io3tiitiitidd}||_yt i |Wn8t j o,}|i t it ifjoqnXti|yti|_|iidd|ii|id|ii||itiB|t_tiitid|_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((RtuseEnvtostpathtjointdirnametsystargvthomeDirtshutiltrmtreetOSErrorteterrnotENOENTtESRCHtmkdirRtDBEnvtenvt set_lg_maxt set_flagst envsetflagstopentenvflagst DB_CREATEttempfilettempdirtsplittmktemptfilenametNonetDBtdt dbsetflagstdbnameRt dbopenflagstdbmodet populateDB(RRR((RtsetUp6s@ (           cCsR|ii|idj o!|iiti|inti |i dS(N( RR0tcloseR"R.RRRRtremoveR-(R((RttearDown_s   cCs|i}xNt|idD]9}d|i|}|i|}|i|||qW|idd|xKt|iddD]2}d|}|i|}|i|||qW|o|i nt |}t o d|GHndS(Nis%04ds empty valuetiscreated %d records(RR0tranget_numKeystxtkeytmakeDatatdatatputt_txntcommittlentnumR(RRBR0RER>R=R@((RR5os"   cCsti|gdS(Ni(tDASHRR>(RR>((RR?scCsK|i}to dGddGHd|iiGHnx<ddddd gD]%}|i|}to |GHqFqFWy|id Wn(t i j o}to |GHqnX|i d |i d d |i d d |it i@ony|i d ddt iWn(t ij o}to |GHqBnX|i d |it i@on|i|i~t i|i|_|io|ii|i|in|ii|i|i}|it i@on|idd}to |GHn|idd}|id|}|i}todGHt|ndS(Ns s-=is Running %s.test01_GetsAndPuts...t0001t0100t0400t0700t0999tabcdsexpected exceptions a new recordssame keysthis should failRt0555s0555-0555-0555-0555-0555sbad keysbad datas"d.stat() returned this dictionary:(RR0Rt __class__R R>tgetR@tdeleteRtDBNotFoundErrortvaltfailRAR1tDB_DUPtDB_NOOVERWRITEtDBKeyExistErrortsyncR7R/R"R2R&R-tget_bothtrectstattstpprint(RR0RRR[R>RYR@((Rttest01_GetsAndPutssv           cCs|i}to dGddGHd|iiGHnx7ddddd gD] }||}to |GHqFqFW|i}d |d <|i}d |d <|i}tod GHt|d n|i }todGHt|d n|i }todGHt|d ndS(Ns s-=is&Running %s.test02_DictionaryMethods...t0002t0101t0401t0701t0998s a new records new recordsa replacement recordsthe first 10 keys are:i sthe first 10 items are:sthe first 10 values are:( RR0RRNR R>R@tkeysR\titemstvalues(RR0RcRdReR>R@((Rttest02_DictionaryMethodssT           cCsto)dGddGHd|ii||fGHn|io$|iti @o|ii }nd}|i id|}|i} d}x| dj o|d}to|ddjo | GHny|i} Wqtij o7}|oto |GHnd} q|id qXqW|i} d}x| dj o|d}to|ddjo | GHny|i} Wq9tij o7}|oto |GHnd} q|id q9Xq9W|id } |i} |id } y|id } Wn(tij o}to |GHqtn?X|o|id n| djo|id| fn|id|id} y|idd} Wn(tij o}to |GHq n?X|o|id n| djo|id| fn|i iti jo|i!d} to dG| GHn|i!ddddd} to dG| GHn| ddjo|idn|i!d }to dG|GHn|ddjo|idqn|id|i#y|i} Wn(ti$j o}to |GHqBnX|id|i|i%ti&} | i(ddti)| i(ddti)dddd|i*| i*|o|i+nhdf<d f<d!ti&f<d"f<d#d,<d$f<d%f<d&f<d'dd(ti)f<d)d-<} x| i-D]v\}}y.to d*|GHnt0t1|||Wn(ti2j o}to |GHqq>X|id+|q>W|i id|}|i i*~dS(.Ns s-=isCRunning %s.test03_SimpleCursorStuff (get_error %s, set_error %s)...ttxniiidsunexpected DBNotFoundErrort0505s empty valuesbad keysexpected exceptionsexpected None: %rt0404sbad datat011ssearched for '011', found: tdlentdoffs%searched (partial) for '011', found: R:sexpected empty data portions!search for 'empty value' returnedsempty value lookup failedt0499sexception expecteds a new valueteritcurrentRPtduptfirstROtnexttprevtlastRAtspamtsets-attempting to use a closed cursor's %s methods8no exception raised when using a buggy cursor's%s method(i(Rh(4RRRNR tget_raises_errortset_raises_errorR"R3RtDB_AUTO_COMMITt txn_beginRgR.R0tcursortcRqRYtcountRrRQRRRSRtRsRvRotrec2tnRXR?tget_typetDB_BTREEt set_rangetevRPtDBKeyEmptyErrorRpt DB_POSITIONtc2RAt DB_CURRENTR7RCtmethods_to_testRdtmethodtargstapplytgetattrtDBErrort oldcursor(RRwRxR}RgRRRRR|RR~RYRRRR((Rttest03_SimpleCursorStuff%s                       "  r   cCsSto dGddGHd|iiGHn|iid}|idddddS( Ns s-=is<Running %s.test03b_SimpleCursorStuffWithoutGetReturnsNone...iRwiRx(RRRNR R0tset_get_returns_nonetoldR(RR((Rt*test03b_SimpleCursorWithoutGetReturnsNone0s  cCsSto dGddGHd|iiGHn|iid}|idddddS( Ns s-=is<Running %s.test03b_SimpleCursorStuffWithoutGetReturnsNone...iRwiRx(RRRNR R0RRR(RR((Rt'test03b_SimpleCursorWithGetReturnsNone1s  cCseto dGddGHd|iiGHn|iid}|iid}|iddd ddS( Ns s-=is<Running %s.test03c_SimpleCursorStuffWithoutSetReturnsNone...iiRwiRx(RRRNR R0RRR(RR((Rt#test03c_SimpleCursorGetReturnsNone2s cCs|i}to dGddGHd|iiGHnd}dddd}|i|||id dd d |it i jo<|i|d d ddd|i|dd dddndS(Ns s-=is%Running %s.test04_PartialGetAndPut...t partialTestt1it2t partialtest2i0utrobint0000RkiRlit1111ii( RR0RRNR R>R@RAR1RRT(RR0R>R@((Rttest04_PartialGetAndPuts   cCso|i}to dGddGHd|iiGHnx8tdddD]$}d|}|i|d |qCWdS( Ns s-=isRunning %s.test05_GetSize...iiPissize%sR( RR0RRNR R;tiR>RA(RR0RR>((Rttest05_GetSizes   cCswtidjodSn|i}to dGddGHd|iiGHn|idd|i}|i}dS( Nis s-=isRunning %s.test99_Truncate...tabcdetABCDE(ii( RRRR0RRNR RAttruncateRE(RRER0((Rttest06_Truncates   (R R Rt DB_UNKNOWNRR3R1R4R.R2RR'R%R<R6R9R5R?R]RfRRRRRRR(((RR *s,  )    \ <   tBasicBTreeTestCasecBstZeiZRS(N(R R RRR(((RR4stBasicHashTestCasecBstZeiZRS(N(R R RtDB_HASHR(((RR8st BasicBTreeWithThreadFlagTestCasecBstZeiZeiZRS(N(R R RRRt DB_THREADR3(((RR<s tBasicHashWithThreadFlagTestCasecBstZeiZeiZRS(N(R R RRRRR3(((RRAs tBasicWithEnvTestCasecBsQtZeiZdZeieiBeiBZdZ ei djo[ nRS(NicCs|ipdSnto dGddGHd|iiGHn|ii|id}|ii |id||ii |dS(Ns s-=is'Running %s.test07_EnvRemoveAndRename...s.renamed( RR"RRNR R0R7R-tnewnametdbrenameR.tdbremove(RR((Rttest07_EnvRemoveAndRenameMs    i(ii( R R RRR3Rt DB_INIT_MPOOLt DB_INIT_LOCKR'RR(((RRFs   tBasicBTreeWithEnvTestCasecBstZeiZRS(N(R R RRR(((RRbstBasicHashWithEnvTestCasecBstZeiZRS(N(R R RRR(((RRfstBasicTransactionTestCasecBsrtZeieiBZdZeieiBeiBei BZ eiZ dZ dZ dZdZdZRS(NicCs|iiti|dS(N(RRgRCR R9(R((RR9ts cCs8|ii}ti|d||ii|_dS(NRB(RR"RzRgR R5(RRg((RR5yscCs|i}to dGddGHd|iiGHn|idd|i|ii|ii |_|idd|i|ii |ii |_|i |i}|i }d}xI|dj o;|d}to|d djo |GHn|i}qW|i|ii y|iidddWntij onX|iititiB}x"|D]}to d |GHqwqwW|ii |_dS( Ns s-=is!Running %s.test06_Transactions...snew recsthis is a new recordiiids log file: (RR0RRNR RARgtabortR"RzRCR{R|RqRYR}R.RrR7ttxn_checkpointRtDBIncompleteErrort log_archivet DB_ARCH_ABSt DB_ARCH_LOGtlogstlog(RR}R|R0RRRY((Rttest06_TransactionssN          cCstidjodSn|i}to dGddGHd|iiGHn|idd|ii }|i |}|i |}|i dS( Nis s-=is Running %s.test07_TxnTruncate...RR(ii(RRRR0RRNR RAR"RzRgRRERC(RRgR0RE((Rttest07_TxnTruncates  cCs|ii}|iy|iWntij o }n Xtd|ii}|i y|i Wntij o }n XtddS(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( RR"RzRgRRRRt RuntimeErrorRC(RRgR((Rttest08_TxnLateUses   (R R RRRyR3RRRt DB_INIT_TXNR'R%R9R5RRR(((RRls    3 tBTreeTransactionTestCasecBstZeiZRS(N(R R RRR(((RRstHashTransactionTestCasecBstZeiZRS(N(R R RRR(((RRstBTreeRecnoTestCasecBs#tZeiZeiZdZRS(NcCs|i}to dGddGHd|iiGHn|id}to dG|GHn|i}|i d|i }to dG|GHn|i }|i dS( Ns s-=is!Running %s.test07_RecnoInBTree...isRecord #200 is t0200srecno of d['0200'] is (RR0RRNR RORYR{R|Rvt get_recnoRERoR7(RR|R0RERY((Rttest07_RecnoInBTrees$        (R R RRRt DB_RECNUMR1R(((RRs  t BTreeRecnoWithThreadFlagTestCasecBstZeiZRS(N(R R RRR3(((RRstBasicDUPTestCasecBstZeiZdZRS(Nc Cs[|i}to dGddGHd|iiGHn|iddx$diD]}|id|qMW|id d |id}to |GHn|i }|i d}|i}|i d}|i}|i}|i d}x.|dj o to |GHn|i}qW|i d|i}to |GHn|idS( Ns s-=is"Running %s.test08_DuplicateKeys...tdup0tbefores-The quick brown fox jumped over the lazy dog.tdup1tdup2tafter(RR0RRNR RAR+R=ROR@R{R|RvRYRrR}tnext_dupR.t next_nodupR7( RR}R|R0RrRRYR=R@((Rttest08_DuplicateKeys sF             (R R RRTR1R(((RR s tBTreeDUPTestCasecBstZeiZRS(N(R R RRR(((RR;stHashDUPTestCasecBstZeiZRS(N(R R RRR(((RR>stBTreeDUPWithThreadTestCasecBstZeiZeiZRS(N(R R RRRRR3(((RRAs tHashDUPWithThreadTestCasecBstZeiZeiZRS(N(R R RRRRR3(((RREs tBasicMultiDBTestCasecBs tZdZdZdZRS(NRqcCs)|itijo tiSntiSdS(N(RRRRR(R((Rt otherTypeOs c Cs2|i} to dGddGHd|iiGHnti|i}|i |i d|i |i tiBti|i}|i |i d|i|i tiBx-diD]}|i||i|qWx%tiD]}|i||dqW| i|i|i| i|i|id|_} }}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"}qWd }|i }x8|dj o*|d }to |GHn|i"}qwWd }|i }x8|dj o*|d }to |GHn|i"}qW|i|i|i|i|idS( Ns s-=isRunning %s.test09_MultiDB...tsecondtthirds,The quick brown fox jumped over the lazy dogiFRiii2(#RR0td1RRNR RR/R"td2R&R-RR3R(td3RR+R=RAR?tstringtlettersRWR7R.R2R{tc1Rtc3R}RqRYRr( RR}RYRRR=RRRR((Rttest09_MultiDBUs                             (R R R2RR(((RRLs tBTreeMultiDBTestCasecBs7tZeiZeiZdZeieiBei BZ RS(Ni( R R RRRRR3RRRR'(((RRs  tHashMultiDBTestCasecBs7tZeiZeiZdZeieiBei BZ RS(Ni( R R RRRRR3RRRR'(((RRs  cCsti}|itit|itit|itit|itit|itit |itit |itit |itit |itit |itit|itit|itit|itit|itit|itit|itit|itit|S(N(tunittestt TestSuitetsuitetaddTestt makeSuiteRRRRRRRRRRRRRRRRR(R((Rt test_suites& t__main__t defaultTestR(*t__doc__RRRRRR)R\Rtbsddb3Rt ImportErrortbsddbttest_allRRFtTestCaseRR RRRRRRRRRRRRRRRRRRRRRR tmain("RRRR RRRRRRR)RR\RRRRRRRRRRRFRRRRRRRRRR((Rt?sR           p2X