m๒ SใธEc@s7dZdklZdklZdfd„ƒYZdS(s‡Run the history() related tests for a storage. Any storage that supports the history() method should be able to pass all these tests. (sMinPO(s TransactiontHistoryStoragecBs,tZd„Zd„Zd„Zd„ZRS(NcCsส|i}|iiƒ}|it|ii|ƒ|i |dt dƒƒ}|i |d|dt dƒƒ}|i |d|dt dƒƒ}|ii|ddƒ}|t|ƒdƒ|d}||d |ƒ||d d ƒ|ii|dd ƒ}|t|ƒd ƒ|d}||d |ƒ||d d ƒ|d}||d |ƒ||d d ƒ|ii|dd ƒ}|t|ƒd ƒ|d}||d |ƒ||d d ƒ|d}||d |ƒ||d d ƒ|d }||d |ƒ||d d ƒ|ii|ddƒ}|t|ƒd ƒ|d}||d |ƒ||d d ƒ|d}||d |ƒ||d d ƒ|d }||d |ƒ||d d ƒdS(Ntdatai trevidi i tsizeiittidtversiontiii(tselft assertEqualteqt_storagetnew_oidtoidt assertRaisestKeyErrorthistoryt_dostoretMinPOtrevid1trevid2trevid3thtlentd(RRRRR RRR ((t8/data/zmath/zope/lib/python/ZODB/tests/HistoryStorage.pytcheckSimpleHistorysR !!         c Cs?|iiƒpdSn|i} |iiƒ}|i|dtdƒƒ}|i|d|dtdƒƒ}|i|d|dtdƒƒ}d} |i|d|dtdƒd| ƒ} |i|d| dtd ƒd| ƒ}|i|d|dtd ƒd| ƒ}|ii|| d ƒ}| t|ƒd ƒ|d }| |d|ƒ| |d| ƒ|d}| |d|ƒ| |d| ƒ|d}| |d| ƒ| |d| ƒ|d}| |d|ƒ| |ddƒ|d}| |d|ƒ| |ddƒ|d}| |d|ƒ| |ddƒdS(NRi Ri i s test-versioniRiiidiiRiiiRii(RR tsupportsVersionsRR R R RRRRRRtrevid4trevid5trevid6RRRR( RRRRRR RRRRR R((RtcheckVersionHistoryHsD !!         cCsี|iiƒpdSn|i} |iiƒ}|i|dtdƒƒ}|i|d|dtdƒƒ}|i|d|dtdƒƒ}d} |i|d|dtdƒd| ƒ}|i|d|dtd ƒd| ƒ}|i|d|dtd ƒd| ƒ}tƒ} |ii| ƒ|ii| d | ƒ|ii| ƒ|ii| ƒ|ii|d ƒ\} }|ii|| d ƒ} | t| ƒd ƒ| d}| |d|ƒ| |dd ƒ| d}| |d|ƒ| |d| ƒ| d}| |d|ƒ| |d| ƒ| d}| |d|ƒ| |d| ƒ| d}| |d|ƒ| |dd ƒ| d}| |d|ƒ| |dd ƒ| d}| |d|ƒ| |dd ƒdS(NRi Ri i s test-versioniRiiRidiiRiiiiii(RR RRR R R RRRRRRRRRt Transactionttt tpc_begint commitVersionttpc_votet tpc_finishtloadtigntrevid7RRRR(RRRRR'R RRRRR RR&R R((RtcheckHistoryAfterVersionCommitpsV !!            cCsา|iiƒpdSn|i} |iiƒ}|i|dtdƒƒ}|i|d|dtdƒƒ}|i|d|dtdƒƒ}d} |i|d|dtdƒd| ƒ}|i|d|dtd ƒd| ƒ}|i|d|dtd ƒd| ƒ}tƒ} |ii| ƒ|ii| | ƒ|ii| ƒ|ii| ƒ|ii|d ƒ\} }|ii|| d ƒ} | t| ƒd ƒ| d}| |d|ƒ| |dd ƒ| d}| |d|ƒ| |d| ƒ| d}| |d|ƒ| |d| ƒ| d}| |d|ƒ| |d| ƒ| d}| |d|ƒ| |dd ƒ| d}| |d|ƒ| |dd ƒ| d}| |d|ƒ| |dd ƒdS(NRi Ri i s test-versioniRiiRidiiRiiiiii(RR RRR R R RRRRRRRRRRR R!t abortVersionR#R$R%R&R'RRRR(RRRRR'R RRRRR RR&R R((RtcheckHistoryAfterVersionAbortฌsV !!            (t__name__t __module__RRR(R*(((RRs 0 (