m 'Ec@sdkZdkZdkZdklZdkZdklZlZdk l Z dk l Z dk Z dklZdkZdklZdklZdklZlZlZd klZlZd klZd klZd klZl Z l!Z!l"Z"dkZdk#Z#d k$l%Z%dk&l'Z'dk(l)Z)l*Z*dZ+dZ,dZ-dZ.hZ/dZ0dZ1dei2fdYZ3de fdYZ4dZ5defdYZ6de6fdYZ7dZ8e9d jo)e!d!d"d#d"Z:e:i;e8ndS($N(s makerequest(sInvalidObjectReferences ConflictError(s Persistent(s DemoStorage(s DTMLMethod(saq_base(sBrowserIdManager(sSessionDataManagersSessionDataManagerErrsSessionDataManagerTraverser(sTransientObjectContainersTransientObject(sMountedTemporaryFolder(sDateTime(sTestCases TestSuitesTextTestRunners makeSuite(sUnpickleableError(s Application(sregisterBeforeTraversesunregisterBeforeTraverset temp_foldertbrowser_id_managerttemp_transient_containertsession_data_managercCstid}|ptddd>}ti|dd}|i}|i }t }||d       tTestBasecBstZdZdZRS(NcCsHt}|i}|i}ti|d|_d}|_dS(NRi( RRRRRt makerequesttselfRttimeout(R=RR>RR((RtsetUpjs    cCst|`dS(N(RR=R(R=((RttearDownqs(RRR?R@(((RR;is tTestSessionManagercBstZdZdZdZdZdZdZdZdZ d Z d Z d Z d Z d ZdZdZdZdZdZdZdZRS(NcCs |i|iiitjdS(N(R=t failUnlessRRR"R4(R=((Rt testHasIdvscCs |i|iiidjdS(NsSession Data Manager(R=RBRRR (R=((Rt testHasTitlezscCs,|iiid}|i|djdS(Ni(R=RRtgetSessionDatatsdRBtNone(R=RF((RttestGetSessionDataNoCreate~scCs/|iiid}|i|itjdS(Ni(R=RRRERFRBt __class__tTransientObject(R=RF((RttestGetSessionDataCreatescCs/|iii}|i|iiidS(N(R=RRRERFRBthasSessionData(R=RF((RttestHasSessionDatascCs|i|iii dS(N(R=RBRRRL(R=((RttestNotHasSessionDatascCs|iiid}tt|it}tt|ii t }|i t|i |j|i t|i i |jdS(Ni(R=RRRERFtaq_basetgetattrR4tsdmRR1R2RBt aq_parent(R=R2RQRF((Rt!testSessionDataWrappedInSDMandTOCs cCs^ttd}|iii}|itt ||j|it |d dS(Nit_invalid( ttypeRJtsdTypeR=RRRERFRBROthasattr(R=RVRF((RttestNewSessionDataObjectIsValidscCs;|iii}t|it}|i|i dS(N( R=RRRERFRPR+tmgrRBt hasBrowserId(R=RYRF((RttestBrowserIdIsSetscCs\|iii}t|it}|i}|iii |}|i ||jdS(N( R=RRRERFRPR+RYt getBrowserIdttokentgetSessionDataByKeytbykeysdRB(R=R_RYR]RF((RttestGetSessionDataByKeys  cCs=|ii}d|id<|id|it|idS(NtGETtREQUEST_METHODs /fudgeffoloo( R=RRRQtREQUESTtsetContainerPatht assertRaisestSessionDataManagerErrt_testbadsdcpath(R=RQ((RttestBadExternalSDCPaths   cCs|iiidS(N(R=RRRE(R=((RRgscCsM|ii}|i}d|d<|i|i|iid dS(NsIts alive! Alive!ttest( R=RRRQRERFt invalidateRBthas_key(R=RQRF((RttestInvalidateSessionDataObjects     cCsk|ii}ti|i}|iddd|_ ti|i |ii ddjdS(NR)tbar( R=RRRQRR9RERFtsetRGt _p_changedRBR (R=RQRF((RttestGhostUnghostSessionManagers     cCss|iii}t}|id||i|di djt i dt |i|di djdS(NtdpR(R=RRRERFRtdummyRnRBt_p_jarRGRRRtfailIf(R=RrRF((RttestSubcommitAssignsPJars  cCs|it|idS(N(R=RetInvalidObjectReferencet _foreignAdd(R=((RttestForeignObjectscCsE|ii}|i}|iii}|id|ti dS(NR)( R=RRtobRORERFRnRR9(R=RyRF((RRws   cCsZt}t}|i|}|iii}|i d||i t t idS(NR)(Rtatbt__of__t aq_wrappedR=RRRERFRnRet TypeErrorRR9(R=RzR{R}RF((RttestAqWrappedObjectsFails   cCsY|ig|iid