-í Û„?csádkZdkZdkZdkZdkZdkZdkZdkZdkZdk Z dkZdk Z dk l Z dk lZdklZdklZdklZdklZdklZlZdklZlZd klZd kl Z d kl!Z!l"Z"d kl#Z#l$Z$d kl%Z%de fd„ƒYZ&dfd„ƒYZ'defd„ƒYZ(de(fd„ƒYZ)de(fd„ƒYZ*de(fd„ƒYZ+de(fd„ƒYZ,de i-fd„ƒYZ.dS(N(s ClientStorage(sClientDisconnected(s Marshaller(sDisconnectedError(sforker(sDB(sget_transactions Transaction(s ReadOnlyErrors ConflictError(sStorageTestBase(sMinPO(s zodb_pickles zodb_unpickle(shandle_all_serialssZERO(shandle_serialssTestClientStoragecs)tZdZd„Zd„Zd„ZRS(Nics(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_cache0scsti|ƒ|iiƒdS(N(s ClientStorages endVerifysselfs end_verifysset(sself((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys endVerify4s cs%zti||ƒSWdd|_XdS(Ni(s ClientStoragestestConnectionsselfsconnstest_connection(sselfsconn((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pystestConnection8s(s__name__s __module__stest_connections verify_caches endVerifystestConnection(((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pysTestClientStorage,s  sDummyDBcstZd„ZRS(NcsdS(N((sselfsargsskwargs((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys invalidate?s(s__name__s __module__s invalidate(((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pysDummyDB>ssCommonSetupTearDownc sÚtZdZeiZeiZdZe Z e Z dZ e Zd„Zd„Zd„Zd„Zd„ZdZe dddde e e d „Zd „Zdddde d „Zdd „Zd e d„Zd d„ZRS(sCommon boilerplateics~|iƒtidtid|iƒƒtiƒ|_g|_ g|_ g|_ g|_ g|_ |iƒ|iƒdS(sÎTest 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.pyssetUpMs        c sãtidtid|iƒƒx|iD]}ti|ƒq*Wt |dt ƒt j oU|i i ƒt |i dƒo1tidtid|i iƒ|i iƒnnx/|iD]$}|t j oti|ƒnq¹Wt tdƒo(x!|iD]}ti|dƒqûWnx¹|iD]®}x¥ddfD]—}d ||f}d}tii|ƒoPd}xCtd ƒD]5}yti |ƒWnt!i"d ƒnXd}PqxWn|oti |ƒnq6Wq#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.pystearDown_sJ           cs|ii|iƒƒdS(N(sselfsaddrsappends_getAddr(sself((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys_newAddrˆscsdtidddƒfSdS(Ns localhosti¨ai0ui(srandoms randrange(sself((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys_getAddr‹scs t‚dS(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 |ƒ } | itƒtƒ| 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.pysopenClientStorage”s    cs|ti|ƒ}|o d|_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.pysgetServerConfig¨s    c sã|i|} tidtid|||| fƒd|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 startServer´s   (csctidtid||i|fƒ|i|}|tj oti |ƒt|i|}y|iƒd}PWn t j ot i dƒnXq\W|i |ƒ|iiƒdS(Nstesti †sindexiii f0.5(sselfs_newAddrsopenClientStorages_storages_dostoresshutdownServers startServers did_a_storesrangesisClientDisconnectedstimessleepsassert_sclose(sselfsis did_a_store((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckMultipleServersós      cs9|iddƒ|_|it|iƒ|iiƒdS(Ns read_onlyi(sselfsopenClientStorages_storages assertRaisess ReadOnlyErrors_dostoresclose(sself((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckReadOnlyClient scsh|iƒg|_|iddddddƒ|iddƒ|_|it|iƒ|ii ƒdS(Nscreateisindexsro_svris read_only( sselfsshutdownServers_serverss startServersopenClientStorages_storages assertRaisess ReadOnlyErrors_dostoresclose(sself((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckReadOnlyServers   cs0|iddƒ|_|iƒ|iiƒdS(Nsread_only_fallbacki(sselfsopenClientStorages_storages_dostoresclose(sself((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckReadOnlyFallbackWritable#s cs~|iƒg|_|iddddddƒ|iddƒ|_|i|iiƒƒ|it |i ƒ|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#checkReadOnlyFallbackReadOnlyServer,s  cs~|iƒ|_|iƒ|iƒg|_|iƒ|it|iƒ|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.pyscheckReconnectWritable?s      csR|iƒ|iddddƒ|_|it|iiddƒ|iiƒdS(Nstestièswaitisfredwashs(sselfsshutdownServersopenClientStorages_storages assertRaisessClientDisconnectedsloadsclose(sself((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckDisconnectionErrorWs   cs|iƒ|_|iƒgi}tdƒD]}||iiƒƒq-~}t ƒ}|ii |ƒx<|D]4}tt|ƒƒ}|ii|t|d|ƒqoW|iƒ|it|ii|ƒ|ii|ƒ|iddƒ|iiƒ|iƒdS(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.pyscheckDisconnectedAbortas  "    csÏ|iddƒ|_|iiƒ}tdƒ}|i|d|ƒ}|ii ƒ|i ƒ|iddddƒ|_|ii |dƒ\}}|it|ƒtdƒƒ|i||ƒ|ii ƒdS(Nstesti †i sdataswaitis(sselfsopenClientStorages_storagesnew_oidsoidsMinPOsobjs_dostoresrevid1sclosesshutdownServersloadsdatasrevid2s assertEquals zodb_unpickle(sselfsobjsrevid2soidsdatasrevid1((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckBasicPersistence„s   csâ|iddƒ|_|iiƒ}tddƒ}|i|d|ƒ|iiƒ}tddƒ}|i|d|ƒ|ii ƒ|i ƒ|iddddƒ|_|ii |d ƒ|ii |d ƒ|ii ƒdS( Nstestiès1iôsdatas2swaitis( sselfsopenClientStorages_storagesnew_oidsoid1sMinPOsobj1s_dostoresoid2sobj2sclosesshutdownServersload(sselfsobj1sobj2soid1soid2((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys checkRollover—s  cs1|iƒ|_|iiƒ}tdƒ}|i|d|ƒti dti dƒ|i ƒti dti dƒ|i ddƒ|iiƒ}tdƒ}xidoay|i|d|ƒPWnBt j o6ti dti d d tiƒƒtƒiƒnXq¡Wti dti d ƒ|iiƒdS( Ni sdatascheckReconnectionsAbout to shutdown serversAbout to restart serverscreateiis%Error after server restart; retrying.serrorsfinished(sselfsopenClientStorages_storagesnew_oidsoidsMinPOsobjs_dostoreszLOGsLOGsINFOsshutdownServers startServersClientDisconnectedssyssexc_infosget_transactionsabortsclose(sselfsobjsoid((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckReconnection«s0    cs|idƒdS(Nssalty(sselfs _bad_message(sself((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckBadMessage1ÓscsHdfd„ƒYatƒidddtƒfƒ}|i|ƒbdS(NsHackcstZRS(N(s__name__s __module__(((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pysHackÚsiisfoo(sHacks Marshallersencodesmsgsselfs _bad_message(sselfsmsg((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckBadMessage2×s ! csª|iƒ|_|iƒ|iii}|i|ƒy|iƒWnt j onX|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_messageás      csd}||_||_||_||_x4td|iƒD] }|iƒ|i d|ƒq=Wg}z†xAt|iƒD]0}t |d|ƒ}|i |ƒ|iƒqzWx;|D]3}|idƒ|i|iƒd|iƒƒqµWWdx|D]}|iƒq÷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       (cslt|iƒƒ}|iƒ}|iƒ}tdƒ|d}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.pyscheckReconnectSwitchïs   "  cs‰|iƒ|_|i|iidƒ|iƒ|iƒ|iƒt|i_|i ddddƒ|i ƒ|i|iidƒdS(Nsfull verificationscreateiskeepsno verification( sselfsopenClientStorages_storages assertEquals verify_results_dostoresshutdownServerspollDownsNones startServerspollUp(sself((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys"checkNoVerificationOnServerRestarts     cs;|iddƒ}|i|idƒ|iƒ|_|iiƒ}|i|iidƒ|i|ƒ}|i||ƒ|i |dƒ|i ƒ|i ƒt |i_t |_tidtidƒ|iddd dƒ|iƒ|id |ƒ|i|iid ƒ|i|id ƒ|iƒ|iiƒdS( 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.checkNoVerificationOnServerRestartWith2Clientss(      ( s__name__s __module__skeepsinvqscheckReadOnlyStorages$checkReadOnlyFallbackReadOnlyStoragescheckReconnectReadOnlyscheckReconnectFallbackscheckReconnectUpgradescheckReconnectSwitchs"checkNoVerificationOnServerRestarts.checkNoVerificationOnServerRestartWith2Clients(((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pysReconnectionTests€s    s TimeoutTestscs;tZdZd„Zd„Zd„Zd„Zd„ZRS(Nics`|iƒ}tƒ}|i|ƒ|i|ƒtidƒ|i t |i |ƒ|i ƒdS(Ni( sselfsopenClientStoragesstorages Transactionstxns tpc_beginstpc_votestimessleeps assertRaisessClientDisconnecteds tpc_finishsclose(sselfstxnsstorage((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys checkTimeoutAs     csJ|iƒ}tƒ}|i|ƒ|i|ƒ|i|ƒ|iƒdS(N( sselfsopenClientStoragesstorages Transactionstxns tpc_beginstpc_votes tpc_abortsclose(sselfstxnsstorage((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckTimeoutOnAbortJs      cs=|iƒ}tƒ}|i|ƒ|i|ƒ|iƒdS(N(sselfsopenClientStoragesstorages Transactionstxns tpc_begins tpc_abortsclose(sselfstxnsstorage((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckTimeoutOnAbortNoLockRs     c s|i}|i}|iƒ|_}||ii ƒ|i ƒ}t dƒ}dd}tƒ}|i|ƒ|i||t|ƒd|ƒ}|i|ƒtidƒ|iƒ||iƒ ƒ|iƒ||iƒƒ|t|i|ƒ||ii ƒ|t|i|dƒdS(Nisisi(sselfs assertRaisessraisess failUnlesssunlesssopenClientStorages_storagesstorages_caches_indexsnew_oidsoidsMinPOsobjsZEROs Transactionsts tpc_beginsstores zodb_picklesrevid1stpc_votestimessleepssyncs is_connecteds_waitsClientDisconnecteds tpc_finishsKeyErrorsload( sselfsunlesssoidsstoragesrevid1sZEROsraisessobjst((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckTimeoutAfterVoteYs&       !    cs|i} |i}|i}|iƒ|_}||i i ƒ|i ƒ}tdƒ} dd}tƒ}|i|ƒ|i||t| ƒ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( Nisisii i i (,sselfs assertEqualseqs assertRaisessraisess failUnlesssunlesssopenClientStorages_storagesstorages_caches_indexsnew_oidsoidsMinPOsobjsZEROs Transactionsts tpc_beginsstores zodb_picklesrevid1astpc_votesrevid1bshandle_serialssrevid1s tpc_finishsvaluesrevid2asrevid2bsrevid2stimessleepssyncs is_connecteds_waitsClientDisconnecteds ConflictErrors tpc_abortsloadsdatasrevids zodb_unpickle(sselfsunlesssstoragesoidsrevidsZEROsraisessrevid2asrevid2bseqsrevid1asrevid1bsobjsdatasrevid2srevid1st((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pyscheckTimeoutProvokingConflictsvsd        !    !                ! (s__name__s __module__stimeouts checkTimeoutscheckTimeoutOnAbortscheckTimeoutOnAbortNoLockscheckTimeoutAfterVotescheckTimeoutProvokingConflicts(((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys TimeoutTests>s    s MSTThreadcs/tZeiiZd„Zd„Zd„ZRS(Ncs&|id|ƒ||_g|_dS(Nsname(sselfs_MSTThread__super_initsnamestestcasesclients(sselfstestcasesname((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys__init__¾s c sD|iƒ}|i}|i}xPtt|iƒƒD]9}|i d|i|ƒ}d||_ |i |ƒq4WxÌt|i ƒD]»}x |D]}g|_h|_qŽWtƒ}x|D]}|i|ƒqºWx£t|iƒD]’}x‰|D]}|iƒ} |ii | ƒtd||i ||fƒ} t| ƒ} |i| t| d|ƒ}|iit| |ƒƒqîWqáWx6|D].}|i|ƒ}|iitt |ƒƒq~Wx|D]}|i!|ƒq·Wxk|D]c}x*|iD]} |i"|ii#| ƒƒqåWx-|ii$ƒD]} |i"| |ijƒqWqÕWqWdS(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.pysrunÃsV         ! cs0x)|iD]}y|iƒWnnXq WdS(N(sselfsclientsscsclose(sselfsc((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys closeclientsüs  (s__name__s __module__s threadingsThreads__init__s_MSTThread__super_initsruns closeclients(((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys MSTThreadºs   9(/sosssysstimesrandomsselectssocketsasyncorestempfilesthreads threadingszLOGsZEO.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_serialssZEROshandle_serialssTestClientStoragesDummyDBsCommonSetupTearDownsConnectionTestss InvqTestssReconnectionTestss TimeoutTestssThreads MSTThread($sConnectionTestss TransactionsasyncoresTestClientStorages TimeoutTestss MSTThreadsrandomsDBsforkerssyss ConflictErrorsget_transactionsStorageTestBaseshandle_all_serialssReconnectionTestssMinPOsDummyDBsselects ClientStoragessocketsthreads threadingstempfiles zodb_unpickles zodb_pickles InvqTestssZEROsCommonSetupTearDownsDisconnectedErrors Marshallershandle_serialssClientDisconnectedstimeszLOGsoss ReadOnlyError((sA/usr/pkg/lib/python2.2/site-packages/ZEO/tests/ConnectionTests.pys?sB                     ¡ÿ^@¾|