• Kirill Smelkov's avatar
    dump, commit: Test for both non-empty and empty transaction extensions · 425e6656
    Kirill Smelkov authored
    Currently we exercise zodbdump and zodbcommit+zodbdump with non-empty
    extensions, which works if ZODB is patched for txn.extension_bytes
    support, but fails on pristine ZODB.
    
    Support for txn.extension_bytes cannot get into upstream ZODB for
    more than a year:
    
    https://github.com/zopefoundation/ZODB/pull/183
    https://github.com/zopefoundation/ZODB/pull/207
    
    and  even if it somehow will make it, it will likely be only in ZODB5,
    while we still care to support ZODB4 and ZODB3.
    
    Skipping zodbdump / zodbcommit tests, if a ZODB does not have
    txn.extension_bytes support, would result in significant reduction of
    zodbtools test coverage, because practically that is the current
    situation with all upstream ZODB{3,4,5}. Dropping test coverage for
    non-empty extensions is neither a good option.
    
    For those reason, let's rework the tests and test both zodbdump and
    zodbcommit with two scenarios:
    
    1. on a test database where transactions extensions are always empty.
       This should work on all ZODB irregardless of whether
       txn.extension_bytes patch is there or not.
    
    2. on a test database where transactions extensions are present.
       This should work if ZODB has txn.extension_bytes support, but if not,
       we can mark this case as xfail, since the failure is expected.
    
    This way we make the testsuite pass irregardless of whether
    txn.extension_bytes support is there, and we don't abandon dump/commit
    testing coverage.
    
    /helped-by Jérome Perrin <jerome@nexedi.com>
    425e6656
Name
Last commit
Last update
..
test Loading commit data...
__init__.py Loading commit data...
help.py Loading commit data...
util.py Loading commit data...
zodb.py Loading commit data...
zodbanalyze.py Loading commit data...
zodbcmp.py Loading commit data...
zodbcommit.py Loading commit data...
zodbdump.py Loading commit data...
zodbinfo.py Loading commit data...