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.