m 9Ec@sgdkZdklZlZlZdklZlZlZl Z dk l Z l Z l Z lZdklZlZlZlZdklZlZlZlZdklZlZlZlZdkZdkl Z dfd YZ!d e!fd YZ"d e!fd YZ#dddZ$de"fdYZ%de"fdYZ&de&efdYZ'de&efdYZ(de&efdYZ)de&efdYZ*de&efdYZ+de#efd YZ,d!e#efd"YZ-d#e#efd$YZ.d%e#efd&YZ/d'e#efd(YZ0d)e#efd*YZ1d+e#efd,YZ2d-e#efd.YZ3d/e#efd0YZ4d1e#efd2YZ5d3e%efd4YZ6d5e%efd6YZ7d7e%efd8YZ8d9e%efd:YZ9d;e%efd<YZ:d=e!efd>YZ;d?Z<dS(@N(sTestCases TestSuites makeSuite(sOOBTreesOOBucketsOOSets OOTreeSet(sIOBTreesIOBucketsIOSets IOTreeSet(sIIBTreesIIBucketsIISets IITreeSet(sIFBTreesIFBucketsIFSets IFTreeSet(sOIBTreesOIBucketsOISets OITreeSet(s ConflictErrortBasecBs&tZdZeZdZdZRS(s6 Tests common to all types: sets, buckets, and BTrees cCsBti|`|idj o|ii|iindS(N(t transactiontaborttselftttstoragetNonetclosetcleanup(R((t8/data/zmath/zope/lib/python/BTrees/tests/testConflict.pyttearDowns   cCsOdkl}dkl}dti}|||_||i|_ dS(N(s FileStorage(sDBs fs_tmp__%s( tZODB.FileStoraget FileStoragetZODB.DBtDBtostgetpidtnRRtdb(RRR R((R topenDB&s   (t__name__t __module__t__doc__RRR R(((R Rs  t MappingBasecBstZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZRS(s, Tests common to mappings (buckets, btrees) cCs|id=dS(Ni(RR(R((R t _deletefail0sc Csddddddddd d d d d dddddddg}d%d&d'd(d)g} d*d+d,d-d.g} |i}|ig}|d$ D]}||||fq~|i |}|i |}|i |}|i }||||| | |fS(/Nii/iia"iSiiiiYifiiiiii4iRiiiiXii,iiiiiiiiAii iiii(iXi(i,i(ii(ii(ii(iAi(ii(i i(iii(ii(tlte1te2RRtbasetupdatet_[1]tit __class__tb1tb2tbmtitems( RRR#RRRR!R"R$RR((R t_setupConflict3sB 6 cCs|i|iii}|i|ds      sfailed to mergeic Cs|i} |i}|i}|i} | djoffff} n|oFy|i | ||} Wnt j o }qXdp t|n-|i | ||} | | jp t|dS(Ni(to1t __getstate__ts1to2ts2to3ts3texpecttexpectedRR4t_p_resolveConflicttmergedt ConflictErrorterrtAssertionErrortmessage( RBRERGRIRPR4RNRHRFRDRLRJ((R R02s     t BucketTestscBstZdZRS(s Tests common to all buckets (RRR(((R RQEs t BTreeTestscBstZdZRS(s Tests common to all BTrees (RRR(((R RRHs t TestIOBTreescBstZdZRS(NcCst|_dS(N(tIOBTreeRR(R((R tsetUpNs(RRRU(((R RSMst TestOOBTreescBstZdZRS(NcCst|_dS(N(tOOBTreeRR(R((R RURs(RRRU(((R RVQst TestOIBTreescBstZdZRS(NcCst|_dS(N(tOIBTreeRR(R((R RUVs(RRRU(((R RXUst TestIIBTreescBstZdZRS(NcCst|_dS(N(tIIBTreeRR(R((R RUZs(RRRU(((R RZYst TestIFBTreescBstZdZRS(NcCst|_dS(N(tIFBTreeRR(R((R RU^s(RRRU(((R R\]st TestIOSetscBstZdZRS(NcCst|_dS(N(tIOSetRR(R((R RUds(RRRU(((R R^cst TestOOSetscBstZdZRS(NcCst|_dS(N(tOOSetRR(R((R RUhs(RRRU(((R R`gst TestIISetscBstZdZRS(NcCst|_dS(N(tIISetRR(R((R RUls(RRRU(((R Rbkst TestIFSetscBstZdZRS(NcCst|_dS(N(tIFSetRR(R((R RUps(RRRU(((R Rdost TestOISetscBstZdZRS(NcCst|_dS(N(tOISetRR(R((R RUts(RRRU(((R RfsstTestIOTreeSetscBstZdZRS(NcCst|_dS(N(t IOTreeSetRR(R((R RUxs(RRRU(((R RhwstTestOOTreeSetscBstZdZRS(NcCst|_dS(N(t OOTreeSetRR(R((R RU|s(RRRU(((R Rj{stTestIITreeSetscBstZdZRS(NcCst|_dS(N(t IITreeSetRR(R((R RUs(RRRU(((R RlstTestIFTreeSetscBstZdZRS(NcCst|_dS(N(t IFTreeSetRR(R((R RUs(RRRU(((R RnstTestOITreeSetscBstZdZRS(NcCst|_dS(N(t OITreeSetRR(R((R RUs(RRRU(((R Rpst TestIOBucketscBstZdZRS(NcCst|_dS(N(tIOBucketRR(R((R RUs(RRRU(((R Rrst TestOOBucketscBstZdZRS(NcCst|_dS(N(tOOBucketRR(R((R RUs(RRRU(((R Rtst TestIIBucketscBstZdZRS(NcCst|_dS(N(tIIBucketRR(R((R RUs(RRRU(((R Rvst TestIFBucketscBstZdZRS(NcCst|_dS(N(tIFBucketRR(R((R RUs(RRRU(((R Rxst TestOIBucketscBstZdZRS(NcCst|_dS(N(tOIBucketRR(R((R RUs(RRRU(((R Rzst NastyConfictcBsPtZdZdZdZdZdZdZdZdZ RS( NcCst|_dS(N(RWRR(R((R RUscCsz|i}x$tdddD]}||||o6|i|p|||<|d8}n|d7}q8W|i}|it|d|it|dd |i|ddd|i|ddd|i|ddd ti|}x!tddD]}|||R0RQRRRSRVRXRZR\R^R`RbRdRfRhRjRlRnRpRrRtRvRxRzR|R(6R\RtRhRiRnRfR_ReRvRsRXRMR0RRwRRRaRRWRkRuRlRSRcRRbRRqRoRVR|RRZR^RzRTRdRR>R`RpR]R{RRxRQRyRjRrR[RYRmRgR((R t?sJ   b