mς &U²Ic@s(dZdkZdkZdkZdkZdkZdklZydklZl Z dZ Wne j o dZ nXdk Z dk lZydklZlZWn&e j odklZlZnXddddddgZdd d!d"d#d$d%gZde ifd„ƒYZd„ZdS(&s@TestCases for using the DB.join and DBCursor.join_item methods. N(spprint(sThreads currentThreadii(sverbose(sdbsdbshelvetapplesConvenience Storet blueberrysFarmer's MarkettshotgunsS-Marttpeartchainsawt strawberrytbluetredtyellowtpeachtblackt JoinTestCasecBs)tZdZd„Zd„Zd„ZRS(NtcCs₯|iid|_tiitiiti dƒdƒ}||_ yti |ƒWnti j onXt iƒ|_|ii|t it iBt iBƒdS(Ns.dbitdb_home(tselft __class__t__name__tfilenametostpathtjointdirnametsystargvthomeDirtmkdirterrortdbtDBEnvtenvtopent DB_CREATEt DB_INIT_MPOOLt DB_INIT_LOCK(RR((t1/data/zmath/lib/python2.4/bsddb/test/test_join.pytsetUp2s( cCsY|iiƒdk}|itii|idƒƒ}x|D]}ti |ƒq>WdS(Nt*( RRtclosetglobRRRRtfilestfiletremove(RR'R&R(((R"ttearDown;s   !cCsξto dGddGHd|iiGHnti|iƒ}|i|i dti ti ƒt |d„t ƒti|iƒ}|ititiBƒ|i|i dti ti ƒt |d„tƒd}d}zΦ|iƒ}|id ƒ}|pt‚|i|gƒ}|id ƒdjo|id ƒn|iƒdjo|idƒn|id ƒd djo|idƒn|id ƒo|idƒnWd|o|iƒn|o|iƒn|iƒ|iƒXdS(Ns s-=isRunning %s.test01_join...tprimarycCst|i|ƒS(N(tapplytpriDBtputtt(R/R-((R"tKst secondarycCst|i|ƒS(N(R,tsecDBR.R/(R/R2((R"R0QsRiRsConvenience Storesjoin cursor positioned wrongRs&DBCursor.join_item returned wrong itemRs join cursor returned wrong things#join cursor returned too many items(RsConvenience Store(tverboseRRRRtDBRR-RRtDB_BTREERtmapt ProductIndexR2t set_flagstDB_DUPt DB_DUPSORTt ColorIndextNonetsCursortjCursortcursortsetttmptAssertionErrorRtgettfailt join_itemR%(RRAR2R>R=R-((R"t test01_joinBs@   (Rt __module__tkeytypeR#R*RF(((R"R /s cCs&tiƒ}|ititƒƒ|S(N(tunittestt TestSuitetsuitetaddTestt makeSuiteR (RK((R"t test_suitess (sapplesConvenience Store(RsFarmer's Market(RsS-Mart(RsFarmer's Market(schainsawsS-Mart(s strawberrysFarmer's Market(RR(sredsapple(sredschainsaw(sreds strawberry(RR (RR(R R(t__doc__RRtstringttempfilettimetpprintt threadingtThreadt currentThreadt have_threadst ImportErrorRIttest_allR3tbsddb3RtdbshelvetbsddbR7R;tTestCaseR RN(R7RPRUR[RQRWRIRSRRRVRNR R;RRRR3((R"t?s&         D