- ?csAdkZdkZdkZdkZdkZdkZdkZdkZdkZdk Z dk l Z dk lZdklZdklZdklZ!dklZ"dklZlZ#dklZlZ$d klZ%d kl Z &d kl!Z!l"Z"l#Z#l$Z$)d d Z%+de i&i'fdYZ(3de fdYZ)GdfdYZ*KdefdYZ+de+fdYZ,Fde+fdYZ-de+fdYZ.Jde+fdYZ/dei0fdYZ1dS( N(s ClientStorage(sClientDisconnected(s Marshaller(sDisconnectedError(sforker(sDB(sget_transactions Transaction(s ReadOnlyErrors ConflictError(sStorageTestBase(sMinPO(s zodb_pickles zodb_unpickleshandle_all_serialsshandle_serialssisTestServerStubcs)+tZ,eiiiZ.dZRS(Ncs&.0|i||_1|iSdS(N(sselfs'_TestServerStub__super_getInvalidationsstids _last_invals(sselfstid((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pysgetInvalidations.s(s__name__s __module__sZEOs ServerStubs StorageServersgetInvalidationss'_TestServerStub__super_getInvalidations(((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pysTestServerStub+s sTestClientStoragecsA3tZ5eZ7eZ9dZ=dZAdZRS(Ncs19:ti|_;ti|||_dS(N(s threadingsEventsselfs end_verifys ClientStorages verify_cachesstubs verify_result(sselfsstub((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys verify_cache9scs'=>ti|?|iidS(N(s ClientStorages endVerifysselfs end_verifysset(sself((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys endVerify=scs4ABzCti||SWdDEt|_XdS(N(s ClientStoragestestConnectionsselfsconnsTruestest_connection(sselfsconn((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pystestConnectionAs( s__name__s __module__sFalsestest_connectionsTestServerStubsStorageServerStubClasss verify_caches endVerifystestConnection(((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pysTestClientStorage3s     sDummyDBcsGtZHdZRS(Ncs HIdS(N((sselfsargsskwargs((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys invalidateHs(s__name__s __module__s invalidate(((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pysDummyDBGs sCommonSetupTearDownc sKtZdZLNeiZOeiZPdZQe Z Re Z SdZ Te ZVdZhdZdZdZdZdZe dddde e e d Zd Zdddde d Zdd Zd e dZd dZRS(sCommon boilerplateicsV\]|i^tidtid|i_ti|_`g|_ ag|_ bg|_ cg|_ dg|_ e|if|idS(sTest setup for connection tests. This starts only one server; a test may start more servers by calling self._newAddr() and then self.startServer(index=i) for i in 1, 2, ... stestZEOs setUp() %sN(sselfs!_CommonSetupTearDown__super_setUpszLOGsLOGsINFOsidstempfilesmktempsfilesaddrs_pidss_serverss conf_pathsscachess_newAddrs startServer(sself((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyssetUpVs #      c sUhijtidtid|ikx$|iDk]}lti|q6Wmt |dt t j oan|i i ot |i do7ptidtid|i ir|i innsx8|iDs]*}t|t j outi|nqWvt tdo1xx'|iDx]}yti|dq.Wnzx|iDz]}{xddfD{]}|d ||f}d}tii|okd}xXtd D]G}yti |Wnt!i"d nXd}PqWn|oti |nqxWq_W|i#d S( sTry to cause the tests to haltstestZEOs tearDown() %ss_storagescleanupscleanup storage %sswaitpidiis c1-%s-%d.zecif0.5N($szLOGsLOGsINFOsselfsids conf_pathsspsossremovesgetattrsNones_storagescloseshasattrsDEBUGs__name__scleanups_serverss adminaddrsforkersshutdown_zeo_servers_pidsspidswaitpidscachesscsispathsneed_to_deletesexistssrangesdummysunlinkstimessleeps$_CommonSetupTearDown__super_tearDown( sselfsdummyscsneed_to_deletesis adminaddrspidspspath((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pystearDownhsJ# #          cs |ii|idS(N(sselfsaddrsappends_getAddr(sself((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys_newAddrscs#dtidddfSdS(Ns localhostiai0ui(srandoms randrange(sself((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys_getAddrscstdS(N(sNotImplementedError(sselfspathscreates read_only((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys getConfigsii@ c s|tjo.t|ii}|iid7_n|ii|t|i d|d|d|ddd|d|d |d |d | } | itt| SdS( Nisclients cache_sizeswaitsmin_disconnect_pollf0.10000000000000001s read_onlysread_only_fallbacksusernamespasswordsrealm(scachesNonesstrsselfs __class__scache_idscachessappendsTestClientStoragesaddrs cache_sizeswaits read_onlysread_only_fallbacksusernamespasswordsrealmsstorages registerDBsDummyDB( sselfscaches cache_sizeswaits read_onlysread_only_fallbacksusernamespasswordsrealmsstorage((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pysopenClientStorages          csti|}|od|_n|ioddf|_n|i o|i |_ n|i o|i |_ n|SdS(Nisi( sforkers ZEOConfigsaddrszconfsro_svrs read_onlysselfsmonitorsmonitor_addresssinvqsinvalidation_queue_sizestimeoutstransaction_timeout(sselfsaddrsro_svrszconf((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pysgetServerConfigs    c s |i|} tidtid|||| fd|i|f} |i | ||}|i | |}|tjo|i}nti||| d|\} }} } |ii| |ii| |ii|dS(NstestZEOs3startServer(create=%d, index=%d, read_only=%d) @ %ss%s.%di(sselfsaddrsindexszLOGsLOGsINFOscreates read_onlysfilespaths getConfigssconfsgetServerConfigsro_svrszconfskeepsNonesforkersstart_zeo_serverszeoports adminaddrspids conf_pathssappends_pidss_servers( sselfscreatesindexs read_onlysro_svrskeepssconfszconfs adminaddrspidspathszeoportsaddr((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys startServers+csutidtid||i|f|i|}|tj o$ti |t|i||idd|_?|i|iiA|it |i B|ii dS(Nscreateisindexsro_svrisread_only_fallback( sselfsshutdownServers_serverss startServersopenClientStorages_storagesassert_s isReadOnlys assertRaisess ReadOnlyErrors_dostoresclose(sself((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys#checkReadOnlyFallbackReadOnlyServer5s  csHL|i|_N|iQ|iRg|_T|iV|it|iY|i dd[|i ]|i^|ii dS(Nscreatei( sselfsopenClientStorages_storages_dostoresshutdownServers_serversspollDowns assertRaisessClientDisconnecteds startServerspollUpsclose(sself((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckReconnectWritableHs      csd`d|ie|idddd|_f|itg|iiddh|iidS(Nstestiswaitisfredwashs(sselfsshutdownServersopenClientStorages_storages assertRaisessClientDisconnectedsloadsclose(sself((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckDisconnectionError`s   cs8jk|i|_l|imgi}tdDm]}||iiq9~}nt }o|ii |pxE|Dp]:}qtt|}r|ii|t|d|qWs|it|it|ii|u|ii|v|iddw|iix|idS(Nisscreatei(sselfsopenClientStorages_storages_dostoresappends_[1]srangesisnew_oidsoidss Transactionstxns tpc_beginsoids zodb_picklesMinPOsdatasstoresNonesshutdownServers assertRaisessClientDisconnectedstpc_votes tpc_aborts startServers_wait(sselfstxnsisoidsoidss_[1]sdata((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckDisconnectedAbortjs  %  # cs|idd|_|ii}td}|i|d|}|ii |i |idddd|_|ii |d\}}|it|td|i|||ii dS(Nstestii sdataswaitis(sselfsopenClientStorages_storagesnew_oidsoidsMinPOsobjs_dostoresrevid1sclosesshutdownServersloadsdatasrevid2s assertEquals zodb_unpickle(sselfsobjsrevid2soidsdatasrevid1((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckBasicPersistences cs |idd|_|ii}tdd}|i|d||ii}tdd}|i|d||ii |i |idddd|_|ii |d |ii |d |ii dS( Nstestis1isdatas2swaitis( sselfsopenClientStorages_storagesnew_oidsoid1sMinPOsobj1s_dostoresoid2sobj2sclosesshutdownServersload(sselfsobj1sobj2soid1soid2((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys checkRollovers cs|i|_|ii}td}|i|d|ti dti d|i ti dti d|i dd|ii}td}xdoy|i|d|PWnQt j oBti dti d d titinXtid qWti dti d |iidS( Ni sdatascheckReconnectionsAbout to shutdown serversAbout to restart serverscreateiis%Error after server restart; retrying.serrorf0.10000000000000001sfinished(sselfsopenClientStorages_storagesnew_oidsoidsMinPOsobjs_dostoreszLOGsLOGsINFOsshutdownServers startServersClientDisconnectedssyssexc_infosget_transactionsabortstimessleepsclose(sselfsobjsoid((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckReconnections2     cs|iddS(Nssalty(sselfs _bad_message(sself((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckBadMessage1scsZdfdYatidddtf}|i|bdS(NsHackcstZRS(N(s__name__s __module__(((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pysHacks iisfoo(sHacks Marshallersencodesmsgsselfs _bad_message(sselfsmsg((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckBadMessage2s $cs|i|_|i|iii}|i|y|iWnt j o n"X|ii |i d|ii |i|_|i|ii dS(Ns-Server did not disconnect after bogus message( sselfsopenClientStorages_storages_dostores_serversrpcs zrpc_connsmessage_outputsmsgsClientDisconnectedsclosesfail(sselfsmsgs zrpc_conn((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys _bad_messages  cs[ d} ||_ ||_ ||_||_x=td|iD]&}|i|i d|qRWg}zxMt|iD]9}t |d|}|i ||iqWxD|D]9}|id|i|id|iqWWd !x|D!]}"|iq<WXdS(NiisindexsT%di<s %s didn't die(sNsselfsnserverssnthreadssntranssnobjsrangesis_newAddrs startServersthreadss MSTThreadstsappendsstartsjoinsfailIfsisAlivesgetNames closeclients(sselfsthreadsstsisN((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pysNOcheckMultiStorageTransactions0          + cs$%t|i}&|i}'|i})td|d<*t i ,t|i}-|ii}/|i |did1td|d<2t i 5xXtdD5]G}6|ii7|ii|io8Pn9tidqW:|i|ii|i=|i>|ii|?|ii@|iA|i |i|iC|iD|idS(Nsasbi f0.10000000000000001( sDBsselfsopenClientStoragesdb1sopensc1srootsr1sMinPOsget_transactionscommitsdb2sr2s assertEqualsvaluesrangesis_storagessyncs _invalidatedshas_keys_p_oidstimessleepsassert_ssetLocalTransactionsgetTransactionsregistersabortskeyss _p_serialsclose(sselfsr1sr2sisdb1sc1sdb2((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckCrossDBInvalidations$s0    (s__name__s __module__s__doc__scheckMultipleAddressesscheckMultipleServersscheckReadOnlyClientscheckReadOnlyServerscheckReadOnlyFallbackWritables#checkReadOnlyFallbackReadOnlyServerscheckReconnectWritablescheckDisconnectionErrorscheckDisconnectedAbortscheckBasicPersistences checkRolloverscheckReconnectionscheckBadMessage1scheckBadMessage2s _bad_messagesNOcheckMultiStorageTransactionscheckCrossDBInvalidations(((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pysConnectionTestss$     #   %  s InvqTestscs,FtZGdZIdZidZRS(NicsIJ|idd}K|i|idM|i|_N|ii}O|ii}R|i|iidU|i |}V|i ||}Y|i |}Z|i ||}\|i |d]|i _|i ||}`|idd}a|i|idb|i|iic||dfgfe|i|i |df|ii |dg|i dS(Nscachestestsfull verificationssquick verification(sselfsopenClientStorages perstorages assertEquals verify_results_storagesnew_oidsoidsoid2s_dostoresrevidsrevid2sloadscloses_servers _last_invals(sselfs perstoragesoidsrevid2srevidsoid2((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys"checkQuickVerificationWith2ClientsIs( csij|idd}k|i|idm|i|_n|ii}q|i|iidt|i|}u|i||}w|i |dx|i {x,t dD{]}||i||}qW~|idd}|i|idtid}xP|ii o;|iti|jo|idnq(W|i|ii |dd||i|i |d|ii |d|i dS( Nscachestestsfull verificationsiistimed out waiting for endVerifyi(sselfsopenClientStorages perstorages assertEquals verify_results_storagesnew_oidsoids_dostoresrevidsloadsclosesrangesistimests end_verifysisSetssyncsfail(sselfstsisoidsrevids perstorage((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys)checkVerificationWith2ClientsInvqOverflowis0   &(s__name__s __module__sinvqs"checkQuickVerificationWith2Clientss)checkVerificationWith2ClientsInvqOverflow(((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys InvqTestsFs   sReconnectionTestscs}tZdZdZdZdZdZdZdZdZ d Z *d Z RS( Niic ss|ig|_|idddddddd|idd|_|it|idS(Nscreateisindexs read_onlyiskeep( sselfsshutdownServers_serverss startServersopenClientStorages_storages assertRaisess ReadOnlyErrors_dostore(sself((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckReadOnlyStorages   %c ss|ig|_|idddddddd|idd|_|it|idS(Nscreateisindexs read_onlyiskeepsread_only_fallback( sselfsshutdownServers_serverss startServersopenClientStorages_storages assertRaisess ReadOnlyErrors_dostore(sself((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys$checkReadOnlyFallbackReadOnlyStorages   %cs|idd|_|it|i|ig|_|i|it|i|i dddddd|i |it|idS(Ns read_onlyiscreateiskeep( sselfsopenClientStorages_storages assertRaisess ReadOnlyErrors_dostoresshutdownServers_serversspollDowns startServerspollUp(sself((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckReconnectReadOnlys    cs|idd|_|i|ig|_|i|it|i|i dddddd|i |it |idS(Nsread_only_fallbackiscreateis read_onlyskeep( sselfsopenClientStorages_storages_dostoresshutdownServers_serversspollDowns assertRaisessClientDisconnecteds startServerspollUps ReadOnlyError(sself((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckReconnectFallbacks     cs|ig|_|idddd|idd|_|it|i|ig|_|i |it |i|idddd|i |idS(Nscreateis read_onlyisread_only_fallbackskeep( sselfsshutdownServers_serverss startServersopenClientStorages_storages assertRaisess ReadOnlyErrors_dostorespollDownsClientDisconnectedspollUp(sself((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckReconnectUpgrades      c s|ig|_|i|idddddddd|idd|_ |it|i  |iddddddxnt dD]M}y|i PWn,t tfj ot id nXqW|id dS( Nscreateisindexs read_onlyiskeepsread_only_fallbacki,f0.10000000000000001s1Couldn't store after starting a read-write server(sselfsshutdownServers_serverss_newAddrs startServersopenClientStorages_storages assertRaisess ReadOnlyErrors_dostoresrangesisClientDisconnectedstimessleepsfail(sselfsi((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckReconnectSwitchs   %  cs|i|_|i|iid |i!|i"|i#t|i_$|i dddd%|i (|i|iiddS(Nsfull verificationscreateiskeepsno verification( sselfsopenClientStorages_storages assertEquals verify_results_dostoresshutdownServerspollDownsNones startServerspollUp(sself((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys"checkNoVerificationOnServerRestarts    csz*+|idd},|i|id.|i|_/|ii}2|i|iid5|i|}6|i||8|i |d:|i <|i =t |i_>t |_?tidtid@|iddd dA|iB|id |E|i|iid F|i|id G|iH|iidS( Nscachestestsfull verificationsstestZEOs2ALLBEEFscreateiskeepsstoragesno verification(sselfsopenClientStorages perstorages assertEquals verify_results_storagesnew_oidsoids_dostoresrevidsloadsshutdownServerspollDownsNoneszLOGsLOGsINFOs startServerspollUpsclose(sselfsoidsrevids perstorage((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys.checkNoVerificationOnServerRestartWith2Clients*s(     ( s__name__s __module__skeepsinvqscheckReadOnlyStorages$checkReadOnlyFallbackReadOnlyStoragescheckReconnectReadOnlyscheckReconnectFallbackscheckReconnectUpgradescheckReconnectSwitchs"checkNoVerificationOnServerRestarts.checkNoVerificationOnServerRestartWith2Clients(((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pysReconnectionTestss       s TimeoutTestscsPJtZKdZMdZVdZ^dZedZdZRS(NicsxMN|i}Ot}P|i|Q|i|RtidS|i t |i |T|i dS(Ni( sselfsopenClientStoragesstorages Transactionstxns tpc_beginstpc_votestimessleeps assertRaisessClientDisconnecteds tpc_finishsclose(sselfstxnsstorage((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys checkTimeoutMs cs_VW|i}Xt}Y|i|Z|i|[|i|\|idS(N( sselfsopenClientStoragesstorages Transactionstxns tpc_beginstpc_votes tpc_abortsclose(sselfstxnsstorage((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckTimeoutOnAbortVs  csO^_|i}`t}a|i|b|i|c|idS(N(sselfsopenClientStoragesstorages Transactionstxns tpc_begins tpc_abortsclose(sselfstxnsstorage((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckTimeoutOnAbortNoLock^s  csKef|i}g|i}h|i|_}j||ii l|i }mt d}ot}p|i|q|i|tt|d|}r|i|ttidu|iv||i w|ix||iz|t|i||||ii |t|i|ddS(Nisi(sselfs assertRaisessraisess failUnlesssunlesssopenClientStorages_storagesstorages_caches_indexsnew_oidsoidsMinPOsobjs Transactionsts tpc_beginsstoresZEROs zodb_picklesrevid1stpc_votestimessleepssyncs is_connecteds_waitsClientDisconnecteds tpc_finishsKeyErrorsload(sselfsunlesssoidsstoragesrevid1sraisessobjst((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckTimeoutAfterVotees$   $  cs|i}|i}|i}|i|_}||i i |i }td} t}|i||i|tt| d|} |i|} t|| | }|i|d| _t}|i||i||t| d|}|i|}t|||} t i!d|i"||i# |i$||i#|t%|i|d| _t}|i||i|| t| d||t&|i||i'||i|d| _t}|i||i|| t| d||t&|i||i'||i|d| _t}|i||i||t| d|}|i|}t|||} |i||i(|d\} }|t+| td||| dS(Nisiii i i (,sselfs assertEqualseqs assertRaisessraisess failUnlesssunlesssopenClientStorages_storagesstorages_caches_indexsnew_oidsoidsMinPOsobjs Transactionsts tpc_beginsstoresZEROs zodb_picklesrevid1astpc_votesrevid1bshandle_serialssrevid1s tpc_finishsvaluesrevid2asrevid2bsrevid2stimessleepssyncs is_connecteds_waitsClientDisconnecteds ConflictErrors tpc_abortsloadsdatasrevids zodb_unpickle(sselfsunlesssstoragesoidsrevidsraisessrevid2asrevid2bseqsrevid1asrevid1bsobjsdatasrevid2srevid1st((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckTimeoutProvokingConflictssb    $  $    "  "  $(s__name__s __module__stimeouts checkTimeoutscheckTimeoutOnAbortscheckTimeoutOnAbortNoLockscheckTimeoutAfterVotescheckTimeoutProvokingConflicts(((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys TimeoutTestsJs     s MSTThreadcs>tZeiiZdZdZdZRS(Ncs2|id|||_g|_dS(Nsname(sselfs_MSTThread__super_initsnamestestcasesclients(sselfstestcasesname((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys__init__s c s|i}|i}|i}x\tt|iD]B}|i d|i|}d||_ |i |qCWx2t|i D]}x)|D]}g|_h|_qWt}x!|D]}|i|qWxt|iD]}x|D]}|i} |ii | td||i ||f} t| } |i| t| d|}|iit| |q0WqWx?|D]4}|i|}|iitt |qWx!|D]}|i!|qWx|D]u}x0|iD]"} |i"|ii#| qZWx3|ii$D]} |i"| |ijqWqDWqWdS(NsaddrsC%ds %s.%s.t%d.o%ds(%sselfsgetNamestnamestestcasesclientssrangeslensaddrsisopenClientStoragescs_MSTThread__namesappendsntranss_MSTThread__oidss_MSTThread__serialss Transactionsts tpc_beginsnobjsjsnew_oidsoidsMinPOsdatas zodb_picklesstoresZEROsssupdateshandle_all_serialsstpc_votesNones tpc_finishs failUnlessshas_keyskeys( sselfscsisclientssssjstestcaseststnamesdatasoid((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pysrunsV          "$       csEx8|iD]*} y |iWn   nXqWdS(N(sselfsclientsscsclose(sselfsc((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys closeclientss  (s__name__s __module__s threadingsThreads__init__s_MSTThread__super_initsruns closeclients(((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys MSTThreads   9(2sosssysstimesrandomssocketsasyncorestempfiles threadingszLOGsZEO.ServerStubsZEOsZEO.ClientStorages ClientStoragesZEO.ExceptionssClientDisconnectedsZEO.zrpc.marshals MarshallersZEO.zrpc.errorsDisconnectedErrors ZEO.testssforkersZODB.DBsDBsZODB.Transactionsget_transactions TransactionsZODB.POSExceptions ReadOnlyErrors ConflictErrorsZODB.tests.StorageTestBasesStorageTestBasesZODB.tests.MinPOsMinPOs zodb_pickles zodb_unpickleshandle_all_serialsshandle_serialssZEROs ServerStubs StorageServersTestServerStubsTestClientStoragesDummyDBsCommonSetupTearDownsConnectionTestss InvqTestssReconnectionTestss TimeoutTestssThreads MSTThread($sConnectionTestss TransactionsasyncoresTestClientStorages TimeoutTestss MSTThreadsrandomsDBsTestServerStubsforkerssyss ConflictErrorsget_transactionsStorageTestBaseshandle_all_serialssReconnectionTestssDummyDBsMinPOs ClientStoragessocketsClientDisconnecteds threadingstempfiles zodb_unpickles zodb_pickles InvqTestssZEOsCommonSetupTearDownsDisconnectedErrors Marshallershandle_serialss ReadOnlyErrorstimeszLOGsZEROsos((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys?s>         " [Fz