diff --git a/CHANGES.rst b/CHANGES.rst index 4883f9718..0e7b94d6e 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -5,9 +5,25 @@ Unreleased ========== +- Renamed the hard-to-grab module, ``ZODB.FileStorage.FileStorage`` as + ``ZODB.filestorage._impl``. The expected API to get to the ``FileStorage`` + class is now:: + + import ZODB.filestorage # and use FileStorage attr + + or:: + + from ZODB.filestorage import FileStorage + + BBB aliases exist to support code which imported the ``FileStorage`` class + via ``ZODB.FileStorage`` or ``ZODB.FileStorage.FileStorage``. + - Renamed the hard-to-grab module, ``ZODB.DB`` as ``ZODB.db``. ``ZODB.DB`` is now unambigously the ``DB`` class, imported as a convenience api from the no-longer-shadowed ``ZODB.db``. + + A BBB aliases exist to support code which imported the ``DB`` class or + the ``connection`` function via ``ZODB.DB``. - Tests are now runnable via ``python setup.py test`` and via ``nose``. diff --git a/src/ZODB/DemoStorage.test b/src/ZODB/DemoStorage.test index f171ab4f9..a27749871 100644 --- a/src/ZODB/DemoStorage.test +++ b/src/ZODB/DemoStorage.test @@ -19,7 +19,7 @@ existing, base, storage without updating the storage. To see how this works, we'll start by creating a base storage and puting an object (in addition to the root object) in it: - >>> from ZODB.FileStorage import FileStorage + >>> from ZODB.filestorage import FileStorage >>> base = FileStorage('base.fs') >>> from ZODB.DB import DB >>> db = DB(base) diff --git a/src/ZODB/FileStorage/__init__.py b/src/ZODB/FileStorage/__init__.py deleted file mode 100644 index 449f8f28a..000000000 --- a/src/ZODB/FileStorage/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -# this is a package - -from ZODB.FileStorage.FileStorage import FileStorage, TransactionRecord -from ZODB.FileStorage.FileStorage import FileIterator, Record, packed_version - - -# BBB Alias for compatibility -RecordIterator = TransactionRecord diff --git a/src/ZODB/collaborations.txt b/src/ZODB/collaborations.txt index 57f50220b..acef1e9af 100644 --- a/src/ZODB/collaborations.txt +++ b/src/ZODB/collaborations.txt @@ -12,7 +12,7 @@ Participants - ``DB``: ``ZODB.db.DB`` - ``C``: ``ZODB.Connection.Connection`` -- ``S``: ``ZODB.FileStorage.FileStorage`` +- ``S``: ``ZODB.filestorage.FileStorage`` - ``T``: ``transaction.interfaces.ITransaction`` - ``TM``: ``transaction.interfaces.ITransactionManager`` - ``o1``, ``o2``, ...: pre-existing persistent objects @@ -71,7 +71,7 @@ Participants - ``DB``: ``ZODB.db.DB`` - ``C``: ``ZODB.Connection.Connection`` -- ``S``: ``ZODB.FileStorage.FileStorage`` +- ``S``: ``ZODB.filestorage.FileStorage`` - ``T``: ``transaction.interfaces.ITransaction`` - ``TM``: ``transaction.interfaces.ITransactionManager`` - ``o1``, ``o2``, ...: pre-existing persistent objects diff --git a/src/ZODB/config.py b/src/ZODB/config.py index 6adc6a6d4..e2b9d49a1 100644 --- a/src/ZODB/config.py +++ b/src/ZODB/config.py @@ -155,7 +155,7 @@ def open(self): class FileStorage(BaseConfig): def open(self): - from ZODB.FileStorage.FileStorage import FileStorage + from ZODB.filestorage import FileStorage config = self.config options = {} if getattr(config, 'packer', None): diff --git a/src/ZODB/db.py b/src/ZODB/db.py index 2aa3a1fdd..d71a660b3 100644 --- a/src/ZODB/db.py +++ b/src/ZODB/db.py @@ -399,7 +399,7 @@ def __init__(self, storage, references are allowed """ if isinstance(storage, basestring): - from ZODB.FileStorage.FileStorage import FileStorage + from ZODB.filestorage import FileStorage storage = FileStorage(storage, **storage_args) elif storage is None: from ZODB.MappingStorage import MappingStorage diff --git a/src/ZODB/filestorage/__init__.py b/src/ZODB/filestorage/__init__.py new file mode 100644 index 000000000..f443fe04b --- /dev/null +++ b/src/ZODB/filestorage/__init__.py @@ -0,0 +1,18 @@ +# this is a package + +from ._impl import FileStorage +from ._impl import TransactionRecord +from ._impl import FileIterator +from ._impl import Record +from ._impl import packed_version + + +# BBB Alias for compatibility +RecordIterator = TransactionRecord + + +# More BBB in sys.modules +from sys import modules +modules['ZODB.FileStorage'] = modules['ZODB.filestorage'] +modules['ZODB.FileStorage.FileStorage'] = modules['ZODB.filestorage._impl'] +del modules diff --git a/src/ZODB/FileStorage/FileStorage.py b/src/ZODB/filestorage/_impl.py similarity index 99% rename from src/ZODB/FileStorage/FileStorage.py rename to src/ZODB/filestorage/_impl.py index 4d5bdcf3d..a3407c21b 100644 --- a/src/ZODB/FileStorage/FileStorage.py +++ b/src/ZODB/filestorage/_impl.py @@ -20,11 +20,11 @@ from persistent.TimeStamp import TimeStamp from struct import pack, unpack from zc.lockfile import LockFile -from ZODB.FileStorage.format import CorruptedError, CorruptedDataError -from ZODB.FileStorage.format import FileStorageFormatter, DataHeader -from ZODB.FileStorage.format import TRANS_HDR, TRANS_HDR_LEN -from ZODB.FileStorage.format import TxnHeader, DATA_HDR, DATA_HDR_LEN -from ZODB.FileStorage.fspack import FileStoragePacker +from ZODB.filestorage.format import CorruptedError, CorruptedDataError +from ZODB.filestorage.format import FileStorageFormatter, DataHeader +from ZODB.filestorage.format import TRANS_HDR, TRANS_HDR_LEN +from ZODB.filestorage.format import TxnHeader, DATA_HDR, DATA_HDR_LEN +from ZODB.filestorage.fspack import FileStoragePacker from ZODB.fsIndex import fsIndex from ZODB import BaseStorage, ConflictResolution, POSException from ZODB.POSException import UndoError, POSKeyError, MultipleUndoErrors @@ -47,7 +47,7 @@ packed_version = "FS21" -logger = logging.getLogger('ZODB.FileStorage') +logger = logging.getLogger('ZODB.filestorage') def panic(message, *data): logger.critical(message, *data) diff --git a/src/ZODB/FileStorage/format.py b/src/ZODB/filestorage/format.py similarity index 99% rename from src/ZODB/FileStorage/format.py rename to src/ZODB/filestorage/format.py index 7e8d28b96..362edbdf9 100644 --- a/src/ZODB/FileStorage/format.py +++ b/src/ZODB/filestorage/format.py @@ -119,7 +119,7 @@ def __str__(self): assert struct.calcsize(TRANS_HDR) == TRANS_HDR_LEN assert struct.calcsize(DATA_HDR) == DATA_HDR_LEN -logger = logging.getLogger('ZODB.FileStorage.format') +logger = logging.getLogger('ZODB.filestorage.format') class FileStorageFormatter(object): """Mixin class that can read and write the low-level format.""" diff --git a/src/ZODB/FileStorage/fsdump.py b/src/ZODB/filestorage/fsdump.py similarity index 96% rename from src/ZODB/FileStorage/fsdump.py rename to src/ZODB/filestorage/fsdump.py index 514fb8679..4a4509fd5 100644 --- a/src/ZODB/FileStorage/fsdump.py +++ b/src/ZODB/filestorage/fsdump.py @@ -13,9 +13,9 @@ ############################################################################## import struct -from ZODB.FileStorage import FileIterator -from ZODB.FileStorage.format import TRANS_HDR, TRANS_HDR_LEN -from ZODB.FileStorage.format import DATA_HDR, DATA_HDR_LEN +from ZODB.filestorage import FileIterator +from ZODB.filestorage.format import TRANS_HDR, TRANS_HDR_LEN +from ZODB.filestorage.format import DATA_HDR, DATA_HDR_LEN from ZODB.TimeStamp import TimeStamp from ZODB.utils import u64, get_pickle_metadata diff --git a/src/ZODB/FileStorage/fsoids.py b/src/ZODB/filestorage/fsoids.py similarity index 98% rename from src/ZODB/FileStorage/fsoids.py rename to src/ZODB/filestorage/fsoids.py index 0f7aba03c..ebacb7e32 100644 --- a/src/ZODB/FileStorage/fsoids.py +++ b/src/ZODB/filestorage/fsoids.py @@ -12,7 +12,7 @@ # ############################################################################## -import ZODB.FileStorage +from ZODB.filestorage import FileIterator from ZODB.utils import get_pickle_metadata, p64, oid_repr, tid_repr from ZODB.serialize import get_refs from ZODB.TimeStamp import TimeStamp @@ -127,7 +127,7 @@ def run(self): # Maps oid of a reference to its module.class name. self._ref2name = {} - for txn in ZODB.FileStorage.FileIterator(self.path): + for txn in FileIterator(self.path): self._check_trec(txn) # Process next transaction record. diff --git a/src/ZODB/FileStorage/fspack.py b/src/ZODB/filestorage/fspack.py similarity index 99% rename from src/ZODB/FileStorage/fspack.py rename to src/ZODB/filestorage/fspack.py index 6b1b4d693..33323055c 100644 --- a/src/ZODB/FileStorage/fspack.py +++ b/src/ZODB/filestorage/fspack.py @@ -24,8 +24,8 @@ a backpointer after that time. """ -from ZODB.FileStorage.format import DataHeader, TRANS_HDR_LEN -from ZODB.FileStorage.format import FileStorageFormatter, CorruptedDataError +from ZODB.filestorage.format import DataHeader, TRANS_HDR_LEN +from ZODB.filestorage.format import FileStorageFormatter, CorruptedDataError from ZODB.utils import p64, u64, z64 import logging @@ -247,7 +247,7 @@ def buildPackIndex(self): if th.status == 'p': # Delayed import to cope with circular imports. # TODO: put exceptions in a separate module. - from ZODB.FileStorage.FileStorage import RedundantPackWarning + from ZODB.filestorage import RedundantPackWarning raise RedundantPackWarning( "The database has already been packed to a later time" " or no changes have been made since the last pack") diff --git a/src/ZODB/FileStorage/interfaces.py b/src/ZODB/filestorage/interfaces.py similarity index 100% rename from src/ZODB/FileStorage/interfaces.py rename to src/ZODB/filestorage/interfaces.py diff --git a/src/ZODB/FileStorage/iterator.test b/src/ZODB/filestorage/iterator.test similarity index 76% rename from src/ZODB/FileStorage/iterator.test rename to src/ZODB/filestorage/iterator.test index 4e3e17f93..dcd16f923 100644 --- a/src/ZODB/FileStorage/iterator.test +++ b/src/ZODB/filestorage/iterator.test @@ -17,7 +17,7 @@ We'll make some assertions about time, so we'll take it over: Commit a bunch of transactions: - >>> import ZODB.FileStorage, transaction + >>> import ZODB.filestorage, transaction >>> db = ZODB.DB('data.fs') >>> tids = [db.storage.lastTransaction()] >>> poss = [db.storage._pos] @@ -33,7 +33,7 @@ Deciding where to start By default, we start at the beginning: - >>> it = ZODB.FileStorage.FileIterator('data.fs') + >>> it = ZODB.filestorage.FileIterator('data.fs') >>> it.next().tid == tids[0] True @@ -51,60 +51,60 @@ logging: If we specify a start transaction, we'll scan forward or backward, as seems best and set the next record to that: - >>> it = ZODB.FileStorage.FileIterator('data.fs', tids[0]) + >>> it = ZODB.filestorage.FileIterator('data.fs', tids[0]) >>> it.next().tid == tids[0] True - >>> it = ZODB.FileStorage.FileIterator('data.fs', tids[1]) + >>> it = ZODB.filestorage.FileIterator('data.fs', tids[1]) Scan forward data.fs:4 looking for '\x03z\xbd\xd8\xd06\x9c\xcc' >>> it.next().tid == tids[1] True - >>> it = ZODB.FileStorage.FileIterator('data.fs', tids[30]) + >>> it = ZODB.filestorage.FileIterator('data.fs', tids[30]) Scan forward data.fs:4 looking for '\x03z\xbd\xd8\xdc\x96.\xcc' >>> it.next().tid == tids[30] True - >>> it = ZODB.FileStorage.FileIterator('data.fs', tids[70]) + >>> it = ZODB.filestorage.FileIterator('data.fs', tids[70]) Scan backward data.fs:117080 looking for '\x03z\xbd\xd8\xed\xa7>\xcc' >>> it.next().tid == tids[70] True - >>> it = ZODB.FileStorage.FileIterator('data.fs', tids[-2]) + >>> it = ZODB.filestorage.FileIterator('data.fs', tids[-2]) Scan backward data.fs:117080 looking for '\x03z\xbd\xd8\xfa\x06\xd0\xcc' >>> it.next().tid == tids[-2] True - >>> it = ZODB.FileStorage.FileIterator('data.fs', tids[-1]) + >>> it = ZODB.filestorage.FileIterator('data.fs', tids[-1]) >>> it.next().tid == tids[-1] True We can also supply a file position. This can speed up finding the starting point, or just pick up where another iterator left off: - >>> it = ZODB.FileStorage.FileIterator('data.fs', pos=poss[50]) + >>> it = ZODB.filestorage.FileIterator('data.fs', pos=poss[50]) >>> it.next().tid == tids[51] True - >>> it = ZODB.FileStorage.FileIterator('data.fs', tids[0], pos=4) + >>> it = ZODB.filestorage.FileIterator('data.fs', tids[0], pos=4) >>> it.next().tid == tids[0] True - >>> it = ZODB.FileStorage.FileIterator('data.fs', tids[-1], pos=poss[-2]) + >>> it = ZODB.filestorage.FileIterator('data.fs', tids[-1], pos=poss[-2]) >>> it.next().tid == tids[-1] True - >>> it = ZODB.FileStorage.FileIterator('data.fs', tids[50], pos=poss[50]) + >>> it = ZODB.filestorage.FileIterator('data.fs', tids[50], pos=poss[50]) Scan backward data.fs:35936 looking for '\x03z\xbd\xd8\xe5\x1e\xb6\xcc' >>> it.next().tid == tids[50] True - >>> it = ZODB.FileStorage.FileIterator('data.fs', tids[49], pos=poss[50]) + >>> it = ZODB.filestorage.FileIterator('data.fs', tids[49], pos=poss[50]) Scan backward data.fs:35936 looking for '\x03z\xbd\xd8\xe4\xb1|\xcc' >>> it.next().tid == tids[49] True - >>> it = ZODB.FileStorage.FileIterator('data.fs', tids[51], pos=poss[50]) + >>> it = ZODB.filestorage.FileIterator('data.fs', tids[51], pos=poss[50]) >>> it.next().tid == tids[51] True @@ -116,19 +116,19 @@ If a starting transaction is before the first transaction in the file, then the first transaction is returned. >>> from ZODB.utils import p64, u64 - >>> it = ZODB.FileStorage.FileIterator('data.fs', p64(u64(tids[0])-1)) + >>> it = ZODB.filestorage.FileIterator('data.fs', p64(u64(tids[0])-1)) >>> it.next().tid == tids[0] True If it is after the last transaction, then iteration be empty: - >>> it = ZODB.FileStorage.FileIterator('data.fs', p64(u64(tids[-1])+1)) + >>> it = ZODB.filestorage.FileIterator('data.fs', p64(u64(tids[-1])+1)) >>> list(it) [] Even if we write more transactions: - >>> it = ZODB.FileStorage.FileIterator('data.fs', p64(u64(tids[-1])+1)) + >>> it = ZODB.filestorage.FileIterator('data.fs', p64(u64(tids[-1])+1)) >>> for i in range(10): ... conn.root()[i] = conn.root().__class__() ... transaction.commit() diff --git a/src/ZODB/FileStorage/tests.py b/src/ZODB/filestorage/tests.py similarity index 88% rename from src/ZODB/FileStorage/tests.py rename to src/ZODB/filestorage/tests.py index 1955420a4..51625f169 100644 --- a/src/ZODB/FileStorage/tests.py +++ b/src/ZODB/filestorage/tests.py @@ -11,22 +11,18 @@ # FOR A PARTICULAR PURPOSE. # ############################################################################## -import doctest -import os -import time -import transaction import unittest -import ZODB.blob -import ZODB.FileStorage -import ZODB.tests.util def pack_keep_old(): """Should a copy of the database be kept? The pack_keep_old constructor argument controls whether a .old file (and .old directory for blobs is kept.) + >>> import os + >>> import time + >>> import transaction >>> from ZODB.db import DB - >>> from ZODB.FileStorage import FileStorage + >>> from ZODB.filestorage import FileStorage >>> from ZODB.blob import Blob >>> fs = FileStorage('data.fs', blob_dir='blobs') >>> db = DB(fs) @@ -95,8 +91,10 @@ def pack_with_repeated_blob_records(): fixed by the time you read this, but there might still be transactions in the wild that have duplicate records. + >>> import time + >>> import transaction >>> from ZODB.db import DB - >>> from ZODB.FileStorage import FileStorage + >>> from ZODB.filestorage import FileStorage >>> from ZODB.blob import Blob >>> fs = FileStorage('t', blob_dir='bobs') >>> db = DB(fs) @@ -132,8 +130,10 @@ def _save_index(): _save_index can fail for large indexes. + >>> import transaction >>> import ZODB.utils - >>> fs = ZODB.FileStorage.FileStorage('data.fs') + >>> from ZODB.filestorage import FileStorage + >>> fs = FileStorage('data.fs') >>> t = transaction.begin() >>> fs.tpc_begin(t) @@ -153,7 +153,7 @@ def _save_index(): >>> import logging >>> handler = logging.StreamHandler(sys.stdout) - >>> logger = logging.getLogger('ZODB.FileStorage') + >>> logger = logging.getLogger('ZODB.filestorage') >>> logger.setLevel(logging.DEBUG) >>> logger.addHandler(handler) >>> index, pos, tid = fs._restore_index() @@ -172,13 +172,12 @@ def _save_index(): def test_suite(): + import doctest + from ZODB.tests.util import setUp + from ZODB.tests.util import tearDown return unittest.TestSuite(( doctest.DocFileSuite( - 'zconfig.txt', 'iterator.test', - setUp=ZODB.tests.util.setUp, tearDown=ZODB.tests.util.tearDown, - ), - doctest.DocTestSuite( - setUp=ZODB.tests.util.setUp, tearDown=ZODB.tests.util.tearDown, - ), + 'zconfig.txt', 'iterator.test', setUp=setUp, tearDown=tearDown), + doctest.DocTestSuite(setUp=setUp, tearDown=tearDown), )) diff --git a/src/ZODB/FileStorage/zconfig.txt b/src/ZODB/filestorage/zconfig.txt similarity index 92% rename from src/ZODB/FileStorage/zconfig.txt rename to src/ZODB/filestorage/zconfig.txt index 5b7275b5b..9f1219d60 100644 --- a/src/ZODB/FileStorage/zconfig.txt +++ b/src/ZODB/filestorage/zconfig.txt @@ -93,7 +93,7 @@ read-only quota Maximum allowed size of the storage file. Operations which would cause the size of the storage to exceed the quota will - result in a ZODB.FileStorage.FileStorageQuotaError being + result in a ZODB.filestorage.FileStorageQuotaError being raised. >>> fs = ZODB.config.storageFromString(""" @@ -119,12 +119,12 @@ packer >>> def packer(storage, referencesf, stop, gc): ... print referencesf, storage is fs, gc, storage.pack_keep_old - >>> ZODB.FileStorage.config_demo_printing_packer = packer + >>> ZODB.filestorage.config_demo_printing_packer = packer >>> fs = ZODB.config.storageFromString(""" ... ... path my.fs - ... packer ZODB.FileStorage.config_demo_printing_packer + ... packer ZODB.filestorage.config_demo_printing_packer ... ... """) @@ -144,12 +144,12 @@ packer ... print repr(name), referencesf, storage is fs, gc, ... print storage.pack_keep_old ... return packer - >>> ZODB.FileStorage.config_demo_printing_packer_factory = packer_factory + >>> ZODB.filestorage.config_demo_printing_packer_factory = packer_factory >>> fs = ZODB.config.storageFromString(""" ... ... path my.fs - ... packer ZODB.FileStorage:config_demo_printing_packer_factory('bob ') + ... packer ZODB.filestorage:config_demo_printing_packer_factory('bob ') ... ... """) @@ -171,7 +171,7 @@ pack-gc >>> fs = ZODB.config.storageFromString(""" ... ... path my.fs - ... packer ZODB.FileStorage.config_demo_printing_packer + ... packer ZODB.filestorage.config_demo_printing_packer ... pack-gc false ... ... """) @@ -193,7 +193,7 @@ pack-keep-old >>> fs = ZODB.config.storageFromString(""" ... ... path my.fs - ... packer ZODB.FileStorage.config_demo_printing_packer + ... packer ZODB.filestorage.config_demo_printing_packer ... pack-keep-old false ... ... """) diff --git a/src/ZODB/fsrecover.py b/src/ZODB/fsrecover.py index d6b422ac2..f40c50892 100644 --- a/src/ZODB/fsrecover.py +++ b/src/ZODB/fsrecover.py @@ -80,10 +80,10 @@ sys.path.append('..') import ZODB -import ZODB.FileStorage from ZODB.utils import u64 -from ZODB.FileStorage import TransactionRecord -from ZODB.FileStorage.FileStorage import FileStorage +from ZODB.filestorage import TransactionRecord +from ZODB.filestorage import FileStorage +from ZODB.filestorage import packed_version from persistent.TimeStamp import TimeStamp @@ -266,7 +266,7 @@ def recover(inp, outp, verbose=0, partial=False, force=False, pack=None): die("%s exists" % outp) f = open(inp, "rb") - if f.read(4) != ZODB.FileStorage.packed_version: + if f.read(4) != packed_version: die("input is not a file storage") f.seek(0,2) diff --git a/src/ZODB/fstools.py b/src/ZODB/fstools.py index 51fd028ea..bfb2624e9 100644 --- a/src/ZODB/fstools.py +++ b/src/ZODB/fstools.py @@ -21,8 +21,8 @@ import cPickle import struct -from ZODB.FileStorage.format import TRANS_HDR, DATA_HDR, TRANS_HDR_LEN -from ZODB.FileStorage.format import DATA_HDR_LEN +from ZODB.filestorage.format import TRANS_HDR, DATA_HDR, TRANS_HDR_LEN +from ZODB.filestorage.format import DATA_HDR_LEN from ZODB.utils import u64 from persistent.TimeStamp import TimeStamp diff --git a/src/ZODB/scripts/analyze.py b/src/ZODB/scripts/analyze.py index 637b5fba8..35ce812ad 100755 --- a/src/ZODB/scripts/analyze.py +++ b/src/ZODB/scripts/analyze.py @@ -4,7 +4,7 @@ import pickle import sys -from ZODB.FileStorage import FileStorage +from ZODB.filestorage import FileStorage from cStringIO import StringIO class FakeError(Exception): diff --git a/src/ZODB/scripts/checkbtrees.py b/src/ZODB/scripts/checkbtrees.py index 0f1ced51a..ac6404be7 100755 --- a/src/ZODB/scripts/checkbtrees.py +++ b/src/ZODB/scripts/checkbtrees.py @@ -9,7 +9,7 @@ """ from ZODB.db import DB -from ZODB.FileStorag.FileStoragee import FileStorage +from ZODB.filestorage import FileStorage from BTrees.check import check # Set of oids we've already visited. Since the object structure is diff --git a/src/ZODB/scripts/fsoids.py b/src/ZODB/scripts/fsoids.py index c37cd4b00..747021e74 100644 --- a/src/ZODB/scripts/fsoids.py +++ b/src/ZODB/scripts/fsoids.py @@ -40,7 +40,7 @@ import sys -from ZODB.FileStorage.fsoids import Tracer +from ZODB.filestorage.fsoids import Tracer def usage(): print __doc__ diff --git a/src/ZODB/scripts/fsrefs.py b/src/ZODB/scripts/fsrefs.py index de9a9aeb9..3fbe7f6e1 100644 --- a/src/ZODB/scripts/fsrefs.py +++ b/src/ZODB/scripts/fsrefs.py @@ -65,7 +65,7 @@ import traceback -from ZODB.FileStorage import FileStorage +from ZODB.filestorage import FileStorage from ZODB.TimeStamp import TimeStamp from ZODB.utils import u64, oid_repr, get_pickle_metadata from ZODB.serialize import get_refs diff --git a/src/ZODB/scripts/netspace.py b/src/ZODB/scripts/netspace.py index 2fe413c50..d40e71496 100644 --- a/src/ZODB/scripts/netspace.py +++ b/src/ZODB/scripts/netspace.py @@ -9,7 +9,7 @@ """ from ZODB.db import DB -from ZODB.FileStorage import FileStorage +from ZODB.filestorage import FileStorage from ZODB.utils import U64, get_pickle_metadata from ZODB.serialize import referencesf diff --git a/src/ZODB/scripts/repozo.py b/src/ZODB/scripts/repozo.py index b1384ef06..e102b5bb0 100755 --- a/src/ZODB/scripts/repozo.py +++ b/src/ZODB/scripts/repozo.py @@ -85,7 +85,7 @@ import errno import getopt -from ZODB.FileStorage.FileStorage import FileStorage +from ZODB.filestorage import FileStorage program = sys.argv[0] diff --git a/src/ZODB/scripts/space.py b/src/ZODB/scripts/space.py index 9a75a05a0..9dd6d7ab2 100644 --- a/src/ZODB/scripts/space.py +++ b/src/ZODB/scripts/space.py @@ -9,7 +9,7 @@ Current limitations / simplifications: Ignores revisions and versions. """ -from ZODB.FileStorage import FileStorage +from ZODB.filestorage import FileStorage from ZODB.utils import U64, get_pickle_metadata def run(path, v=0): diff --git a/src/ZODB/scripts/tests/fstail.txt b/src/ZODB/scripts/tests/fstail.txt index b3f0c05e5..be64ee47c 100644 --- a/src/ZODB/scripts/tests/fstail.txt +++ b/src/ZODB/scripts/tests/fstail.txt @@ -7,7 +7,7 @@ transactions: We have to prepare a FileStorage first: - >>> from ZODB.FileStorage import FileStorage + >>> from ZODB.filestorage import FileStorage >>> from ZODB.db import DB >>> import transaction >>> from tempfile import mktemp diff --git a/src/ZODB/scripts/tests/referrers.txt b/src/ZODB/scripts/tests/referrers.txt index f36951c03..587bc6948 100644 --- a/src/ZODB/scripts/tests/referrers.txt +++ b/src/ZODB/scripts/tests/referrers.txt @@ -11,7 +11,7 @@ To see how this works, we'll create a small database: >>> import transaction >>> from persistent.mapping import PersistentMapping - >>> from ZODB.FileStorage import FileStorage + >>> from ZODB.filestorage import FileStorage >>> from ZODB.db import DB >>> import os, tempfile >>> dest = tempfile.mkdtemp() diff --git a/src/ZODB/scripts/tests/test_repozo.py b/src/ZODB/scripts/tests/test_repozo.py index a65d27478..4b74d1283 100644 --- a/src/ZODB/scripts/tests/test_repozo.py +++ b/src/ZODB/scripts/tests/test_repozo.py @@ -41,7 +41,7 @@ def __init__(self, dir): def getdb(self): from ZODB.db import DB - from ZODB.FileStorage.FileStorage import FileStorage + from ZODB.filestorage import FileStorage self._file_name = storage_filename = os.path.join(self.dir, 'Data.fs') storage = FileStorage(storage_filename) self.db = DB(storage) diff --git a/src/ZODB/tests/Corruption.py b/src/ZODB/tests/Corruption.py index 24937d292..e3af0e9c1 100644 --- a/src/ZODB/tests/Corruption.py +++ b/src/ZODB/tests/Corruption.py @@ -17,14 +17,14 @@ import random import stat -import ZODB.FileStorage -from StorageTestBase import StorageTestBase +from ZODB.filestorage import FileStorage +from ZODB.tests.StorageTestBase import StorageTestBase class FileStorageCorruptTests(StorageTestBase): def setUp(self): StorageTestBase.setUp(self) - self._storage = ZODB.FileStorage.FileStorage('Data.fs', create=1) + self._storage = FileStorage('Data.fs', create=1) def _do_stores(self): oids = [] @@ -52,7 +52,7 @@ def checkTruncatedIndex(self): f.truncate() f.close() - self._storage = ZODB.FileStorage.FileStorage('Data.fs') + self._storage = FileStorage('Data.fs') self._check_stores(oids) def checkCorruptedIndex(self): @@ -68,5 +68,5 @@ def checkCorruptedIndex(self): f.write('\000') f.close() - self._storage = ZODB.FileStorage.FileStorage('Data.fs') + self._storage = FileStorage('Data.fs') self._check_stores(oids) diff --git a/src/ZODB/tests/RecoveryStorage.py b/src/ZODB/tests/RecoveryStorage.py index d9936240a..eca2a26f8 100644 --- a/src/ZODB/tests/RecoveryStorage.py +++ b/src/ZODB/tests/RecoveryStorage.py @@ -93,7 +93,7 @@ def checkPackWithGCOnDestinationAfterRestore(self): raises(KeyError, self._dst.load, obj2._p_oid, '') def checkRestoreWithMultipleObjectsInUndoRedo(self): - from ZODB.FileStorage import FileStorage + from ZODB.filestorage import FileStorage # Undo creates backpointers in (at least) FileStorage. ZODB 3.2.1 # FileStorage._data_find() had an off-by-8 error, neglecting to diff --git a/src/ZODB/tests/blob_layout.txt b/src/ZODB/tests/blob_layout.txt index 5118621ba..74d84bb30 100644 --- a/src/ZODB/tests/blob_layout.txt +++ b/src/ZODB/tests/blob_layout.txt @@ -156,10 +156,10 @@ This function interacts with the automatic detection in the way, that an unmarked directory will be marked the first time when it is auto-guessed and the marker will be used in the future: ->>> import ZODB.FileStorage +>>> from ZODB.filestorage import FileStorage >>> from ZODB.blob import BlobStorage >>> datafs = 'data.fs' ->>> base_storage = ZODB.FileStorage.FileStorage(datafs) +>>> base_storage = FileStorage(datafs) >>> os.mkdir(blobs) >>> open(os.path.join(blobs, 'foo'), 'wb').write('foo') diff --git a/src/ZODB/tests/dangle.py b/src/ZODB/tests/dangle.py index 12cfee536..dec7ccceb 100755 --- a/src/ZODB/tests/dangle.py +++ b/src/ZODB/tests/dangle.py @@ -17,7 +17,7 @@ import time import transaction -from ZODB.FileStorage import FileStorage +from ZODB.filestorage import FileStorage from ZODB import DB from persistent import Persistent diff --git a/src/ZODB/tests/speed.py b/src/ZODB/tests/speed.py index ee4480ee8..15fd46e35 100644 --- a/src/ZODB/tests/speed.py +++ b/src/ZODB/tests/speed.py @@ -39,7 +39,7 @@ sys.path.insert(0, os.getcwd()) import ZODB.db -import ZODB.FileStorage +import ZODB.filestorage import persistent import transaction @@ -74,7 +74,7 @@ def main(args): s=__import__(s, globals(), globals(), ('__doc__',)) s=s.Storage else: - s=ZODB.FileStorage.FileStorage('zeo_speed.fs', create=1) + s=ZODB.filestorage.FileStorage('zeo_speed.fs', create=1) data=open(data).read() db=ZODB.db.DB(s, diff --git a/src/ZODB/tests/testDemoStorage.py b/src/ZODB/tests/testDemoStorage.py index 76903589f..d9e467d23 100644 --- a/src/ZODB/tests/testDemoStorage.py +++ b/src/ZODB/tests/testDemoStorage.py @@ -116,7 +116,7 @@ def _makeBaseStorage(self): class DemoStorageWrappedAroundFileStorage(_DemoStorageWrappedBase): def _makeBaseStorage(self): - from ZODB.FileStorage.FileStorage import FileStorage + from ZODB.filestorage import FileStorage return FileStorage('FileStorageTests.fs') class DemoStorageWrappedAroundHexMappingStorage(_DemoStorageWrappedBase): diff --git a/src/ZODB/tests/testFileStorage.py b/src/ZODB/tests/testFileStorage.py index 273eadfed..17ee808a9 100644 --- a/src/ZODB/tests/testFileStorage.py +++ b/src/ZODB/tests/testFileStorage.py @@ -54,7 +54,7 @@ class FileStorageTests( ): def open(self, **kwargs): - from ZODB.FileStorage.FileStorage import FileStorage + from ZODB.filestorage import FileStorage self._storage = FileStorage('FileStorageTests.fs', **kwargs) @@ -226,7 +226,7 @@ def testCorruptionInPack(self): import transaction from ZODB.db import DB from ZODB.utils import U64, p64 - from ZODB.FileStorage.format import CorruptedError + from ZODB.filestorage.format import CorruptedError from ZODB.serialize import referencesf db = DB(self._storage) @@ -298,7 +298,7 @@ def test_record_iternext(self): class FileStorageHexTests(FileStorageTests): def open(self, **kwargs): - from ZODB.FileStorage.FileStorage import FileStorage + from ZODB.filestorage import FileStorage from ZODB.tests.hexstorage import HexStorage self._storage = HexStorage( FileStorage('FileStorageTests.fs',**kwargs)) @@ -325,7 +325,7 @@ def open(self, **kwargs): class FileStorageRecoveryTest(StorageTestBase, RecoveryStorage,): def setUp(self): - from ZODB.FileStorage.FileStorage import FileStorage + from ZODB.filestorage import FileStorage StorageTestBase.setUp(self) self._storage = FileStorage("Source.fs", create=True) self._dst = FileStorage("Dest.fs", create=True) @@ -335,13 +335,13 @@ def tearDown(self): StorageTestBase.tearDown(self) def new_dest(self): - from ZODB.FileStorage.FileStorage import FileStorage + from ZODB.filestorage import FileStorage return FileStorage('Dest.fs') class FileStorageHexRecoveryTest(FileStorageRecoveryTest): def setUp(self): - from ZODB.FileStorage.FileStorage import FileStorage + from ZODB.filestorage import FileStorage from ZODB.tests.hexstorage import HexStorage StorageTestBase.setUp(self) self._storage = HexStorage( @@ -358,7 +358,7 @@ class FileStorageNoRestoreRecoveryTest(FileStorageRecoveryTest): @property def wo_restore(self): if self._wo_restore is None: - from ZODB.FileStorage.FileStorage import FileStorage + from ZODB.filestorage import FileStorage class FileStorageNoRestore(FileStorage): @property @@ -380,10 +380,23 @@ def testRestoreAcrossPack(self): pass +class BBBAliasTests(unittest.TestCase): + + def test_importing_ZODB_FileStorage_direct(self): + import ZODB.filestorage + from ZODB.FileStorage import FileStorage + self.assertTrue(FileStorage is ZODB.filestorage.FileStorage) + + def test_importing_ZODB_DB_via_aliased_module(self): + import ZODB.filestorage + from ZODB.FileStorage.FileStorage import FileStorage + self.assertTrue(FileStorage is ZODB.filestorage.FileStorage) + + class AnalyzeDotPyTest(StorageTestBase): def setUp(self): - from ZODB.FileStorage.FileStorage import FileStorage + from ZODB.filestorage import FileStorage StorageTestBase.setUp(self) self._storage = FileStorage("Source.fs", create=True) @@ -473,13 +486,13 @@ def timestamp(minutes): def testTimeTravelOnOpen(): """ >>> from ZODB.db import DB - >>> from ZODB.FileStorage.FileStorage import FileStorage + >>> from ZODB.filestorage import FileStorage >>> from zope.testing.loggingsupport import InstalledHandler Arrange to capture log messages -- they're an important part of this test! - >>> handler = InstalledHandler('ZODB.FileStorage') + >>> handler = InstalledHandler('ZODB.filestorage') Create a new file storage. @@ -561,7 +574,7 @@ def lastInvalidations(): >>> import transaction >>> from ZODB.db import DB - >>> from ZODB.FileStorage import FileStorage + >>> from ZODB.filestorage import FileStorage >>> fs = FileStorage('t.fs', create=True) >>> db = DB(fs) >>> conn = db.open() @@ -614,7 +627,7 @@ def deal_with_finish_failures(): >>> import transaction >>> from ZODB.db import DB - >>> from ZODB.FileStorage import FileStorage + >>> from ZODB.filestorage import FileStorage >>> fs = FileStorage('data.fs') >>> db = DB(fs) >>> conn = db.open() @@ -629,7 +642,7 @@ def deal_with_finish_failures(): >>> import zope.testing.loggingsupport >>> handler = zope.testing.loggingsupport.InstalledHandler( - ... 'ZODB.FileStorage') + ... 'ZODB.filestorage') >>> transaction.commit() Traceback (most recent call last): ... @@ -637,7 +650,7 @@ def deal_with_finish_failures(): >>> print handler - ZODB.FileStorage CRITICAL + ZODB.filestorage CRITICAL Failure in _finish. Closing. >>> handler.uninstall() @@ -664,7 +677,7 @@ def pack_with_open_blob_files(): >>> import transaction >>> from ZODB.db import DB - >>> from ZODB.FileStorage import FileStorage + >>> from ZODB.filestorage import FileStorage >>> fs = FileStorage('data.fs', blob_dir='blobs') >>> db = DB(fs) >>> tm1 = transaction.TransactionManager() @@ -701,7 +714,7 @@ def test_suite(): if os.environ.get('USE_ZOPE_TESTING_DOCTEST'): from zope.testing import doctest from zope.testing import setupstack - from ZODB.FileStorage.FileStorage import FileStorage + from ZODB.filestorage import FileStorage from ZODB.tests.Corruption import FileStorageCorruptTests from ZODB.tests.hexstorage import HexStorage from ZODB.tests.testblob import storage_reusable_suite @@ -715,6 +728,7 @@ def test_suite(): unittest.makeSuite(FileStorageNoRestoreRecoveryTest), unittest.makeSuite(FileStorageTestsWithBlobsEnabled), unittest.makeSuite(FileStorageHexTestsWithBlobsEnabled), + unittest.makeSuite(BBBAliasTests), unittest.makeSuite(AnalyzeDotPyTest), doctest.DocTestSuite(setUp=setupstack.setUpDirectory, tearDown=setupstack.tearDown), diff --git a/src/ZODB/tests/testRecover.py b/src/ZODB/tests/testRecover.py index 8bc479fdb..83f737229 100644 --- a/src/ZODB/tests/testRecover.py +++ b/src/ZODB/tests/testRecover.py @@ -24,7 +24,7 @@ class RecoverTest(utilTestCase): path = None def setUp(self): - from ZODB.FileStorage.FileStorage import FileStorage + from ZODB.filestorage import FileStorage utilTestCase.setUp(self) self.path = 'source.fs' self.storage = FileStorage(self.path) @@ -33,7 +33,7 @@ def setUp(self): self.recovered = None def tearDown(self): - from ZODB.FileStorage.FileStorage import FileStorage + from ZODB.filestorage import FileStorage self.storage.close() if self.recovered is not None: self.recovered.close() @@ -114,7 +114,7 @@ def testNoDamage(self): def testOneBlock(self): import os - from ZODB.FileStorage.FileStorage import FileStorage + from ZODB.filestorage import FileStorage for i in range(self.ITERATIONS): self.damage(1, 1024) output = self.recover() @@ -126,7 +126,7 @@ def testOneBlock(self): def testFourBlocks(self): import os - from ZODB.FileStorage.FileStorage import FileStorage + from ZODB.filestorage import FileStorage for i in range(self.ITERATIONS): self.damage(4, 512) output = self.recover() @@ -138,7 +138,7 @@ def testFourBlocks(self): def testBigBlock(self): import os - from ZODB.FileStorage.FileStorage import FileStorage + from ZODB.filestorage import FileStorage for i in range(self.ITERATIONS): self.damage(1, 32 * 1024) output = self.recover() @@ -152,7 +152,7 @@ def testBadTransaction(self): # Find transaction headers and blast them. import base64 import os - from ZODB.FileStorage.FileStorage import FileStorage + from ZODB.filestorage import FileStorage L = self.storage.undoLog() r = L[3] diff --git a/src/ZODB/tests/testZODB.py b/src/ZODB/tests/testZODB.py index edc3c7ce1..aae2dab6f 100644 --- a/src/ZODB/tests/testZODB.py +++ b/src/ZODB/tests/testZODB.py @@ -21,7 +21,7 @@ class ZODBTests(utilTestCase): def setUp(self): from ZODB.db import DB - from ZODB.FileStorage.FileStorage import FileStorage + from ZODB.filestorage import FileStorage utilTestCase.setUp(self) self._storage = FileStorage('ZODBTests.fs', create=1) self._db = DB(self._storage) diff --git a/src/ZODB/tests/test_db.py b/src/ZODB/tests/test_db.py index 7f1e9a275..20d5b6f09 100644 --- a/src/ZODB/tests/test_db.py +++ b/src/ZODB/tests/test_db.py @@ -152,7 +152,7 @@ def passing_a_file_name_to_DB(): >>> from ZODB.db import DB >>> db = DB('data.fs') >>> db.storage # doctest: +ELLIPSIS - >> os.path.exists('data.fs') True diff --git a/src/ZODB/tests/test_fsdump.py b/src/ZODB/tests/test_fsdump.py index 424bbbb21..6dd41082d 100644 --- a/src/ZODB/tests/test_fsdump.py +++ b/src/ZODB/tests/test_fsdump.py @@ -22,10 +22,10 @@ More imports. >>> import ZODB ->>> from ZODB.FileStorage import FileStorage +>>> from ZODB.filestorage import FileStorage >>> import transaction as txn >>> from BTrees.OOBTree import OOBTree ->>> from ZODB.FileStorage.fsdump import fsdump # we're testing this +>>> from ZODB.filestorage.fsdump import fsdump # we're testing this Create an empty FileStorage. diff --git a/src/ZODB/tests/testblob.py b/src/ZODB/tests/testblob.py index f6248522f..ebea248f2 100644 --- a/src/ZODB/tests/testblob.py +++ b/src/ZODB/tests/testblob.py @@ -682,7 +682,7 @@ def setUpBlobAdaptedFileStorage(test): _setUp(test) def create_storage(name='data', blob_dir=None): - from ZODB.FileStorage import FileStorage + from ZODB.filestorage import FileStorage from ZODB.blob import BlobStorage if blob_dir is None: blob_dir = '%s.bobs' % name @@ -769,7 +769,7 @@ def test_suite(): else: import doctest from zope.testing.renormalizing import RENormalizing - from ZODB.FileStorage import FileStorage + from ZODB.filestorage import FileStorage from ZODB.blob import BlobStorage from zope.testing.setupstack import tearDown diff --git a/src/ZODB/tests/testfsoids.py b/src/ZODB/tests/testfsoids.py index b7a5da9c0..2afc2c632 100644 --- a/src/ZODB/tests/testfsoids.py +++ b/src/ZODB/tests/testfsoids.py @@ -22,10 +22,10 @@ More imports. >>> import ZODB ->>> from ZODB.FileStorage import FileStorage +>>> from ZODB.filestorage import FileStorage >>> import transaction as txn >>> from BTrees.OOBTree import OOBTree ->>> from ZODB.FileStorage.fsoids import Tracer # we're testing this +>>> from ZODB.filestorage.fsoids import Tracer # we're testing this Create an empty FileStorage.