mς SγΈEc@sΘdZdklZlZdklZdklZdkl Z l Z defd„ƒYZ de fd„ƒYZ d e fd „ƒYZ d e fd „ƒYZd fd„ƒYZdfd„ƒYZdS(s0Tests for application-level conflict resolution.(s ConflictErrors UndoError(s Persistent(s Transaction(s zodb_unpickles zodb_pickletPCountercBs)tZdZd„Zd„Zd„ZRS(NicCs d|iS(Ns (tselft_value(R((t</data/zmath/zope/lib/python/ZODB/tests/ConflictResolution.pyt__repr__scCs|id|_dS(Ni(RR(R((RtincscCs>|d|d}|d|d}|d|||d<|S(NR(t savedStatetoldStatet savedDifftnewStatetnewDiff(RRRR R R((Rt_p_resolveConflict s(t__name__t __module__RRRR (((RRs  t PCounter2cBstZd„ZRS(NcCs t‚dS(N(t ConflictError(RRRR ((RR -s(R R R (((RR+st PCounter3cBstZd„ZRS(NcCstdƒ‚dS(Ns*no attribute (testing conflict resolution)(tAttributeError(RRRR ((RR 1s(R R R (((RR0st PCounter4cBstZd„ZRS(NcCstdƒ‚dS(NsCan't get here; not enough args(t RuntimeError(RRR((RR 5s(R R R (((RR4stConflictResolvingStoragecBs5tZd„Zd„Zd„Zd„Zd„ZRS(Nc CsΡtƒ}|iƒ|iiƒ}|i|dt|ƒƒ}|iƒ|iƒ|i|d|dt|ƒƒ}|i|d|dt|ƒƒ}|ii |dƒ\}}t|ƒ}|i|idƒdS(Ntdatatrevidti(RtobjRRt_storagetnew_oidtoidt _dostoreNPt zodb_pickletrevid1trevid2trevid3tloadRtserialnot zodb_unpickletinstt assertEqualR( RRR"RRR RR$R((Rt checkResolve:s    !! cCsΧtƒ}|iƒ|iiƒ}|i|dt|ƒƒ}|iƒ|iƒ|i|d|dt|ƒƒ}y#|i|d|dt|ƒƒWn.t j o"}|i dt|ƒjƒnX|idƒdS(NRRRsExpected ConflictError(RRRRRRRRRRRRterrtassert_tstrtfail(RRR'RRR((RtcheckUnresolvableNs    !#cCs9dkl}l}dff}|i||dfƒdS(N(s find_globals BadClassNames*foobar(tZODB.ConflictResolutiont find_globalt BadClassNametdummy_class_tupleRt assertRaises(RR-R.R/((RtcheckZClassesArentResolvedcs c Csžtƒ}|iƒ|iiƒ}|i|dt|ƒƒ}|iƒ|iƒ|i|d|dt|ƒƒ}|i t |i|d|dt|ƒƒdS(NRR( RRRRRRRRRRRR0R(RRRRR((RtcheckBuggyResolve1hs    ! c Csžtƒ}|iƒ|iiƒ}|i|dt|ƒƒ}|iƒ|iƒ|i|d|dt|ƒƒ}|i t |i|d|dt|ƒƒdS(NRR( RRRRRRRRRRRR0R(RRRRR((RtcheckBuggyResolve2zs    ! (R R R&R+R1R2R3(((RR8s     t!ConflictResolvingTransUndoStoragecBstZd„Zd„ZRS(Nc Csήtƒ}|iƒ|iiƒ}|i|d|ƒ}|iƒ|i|d|d|ƒ}|iƒ|i|d|d|ƒ}|ii ƒ}|dd}tƒ}|ii|ƒ|ii||ƒ|ii|ƒdS(NRRitid(RRRRRRRt_dostoretrevid_atrevid_btrevid_ctundoInfotinfottidt Transactionttt tpc_begintundot tpc_finish( RR;RRR8R9R7R>R<((RtcheckUndoConflictResolutionŽs     c Csηtƒ}|iƒ|iiƒ}|i|d|ƒ}|iƒ|i|d|d|ƒ}|iƒ|i|d|d|ƒ}|ii ƒ}|dd}tƒ}|ii|ƒ|it|ii||ƒ|ii|ƒdS(NRRiR5(RRRRRRRR6R7R8R9R:R;R<R=R>R?R0t UndoErrorR@t tpc_abort( RR;RRR8R9R7R>R<((RtcheckUndoUnresolvable£s      (R R RBRE(((RR4Œs N(t__doc__tZODB.POSExceptionRRCt persistentt Persistentt transactionR=tZODB.tests.StorageTestBaseR#RRRRRRR4( RCR=RRRIRRRRR4RR#((Rt?s  T