Commit c7404cf1 authored by Maurits van Rees's avatar Maurits van Rees Committed by GitHub

Merge pull request #373 from zopefoundation/python311

Add support for Python 3.11
parents 0e72b8b1 54891f50
......@@ -29,6 +29,7 @@ jobs:
- ["3.8", "py38"]
- ["3.9", "py39"]
- ["3.10", "py310"]
- ["3.11", "py311"]
- ["pypy-2.7", "pypy"]
- ["pypy-3.7", "pypy3"]
- ["3.9", "docs"]
......@@ -41,6 +42,7 @@ jobs:
- { os: windows, config: ["pypy-2.7", "pypy"] }
runs-on: ${{ matrix.os }}-latest
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
name: ${{ matrix.os }}-${{ matrix.config[1] }}
steps:
- uses: actions/checkout@v2
......
......@@ -28,4 +28,5 @@ lib64
log/
parts/
pyvenv.cfg
testing.log
var/
......@@ -2,7 +2,7 @@
# https://github.com/zopefoundation/meta/tree/master/config/pure-python
[meta]
template = "pure-python"
commit-id = "15807bd13de45b79c7da560a377fe3f22cbc4338"
commit-id = "b4dd6f9ffd3d6a2cde7dc70512c62d4c7ed22cd6"
[python]
with-windows = true
......
......@@ -5,6 +5,8 @@
5.7.1 (unreleased)
==================
- Add support for Python 3.11.
5.7.0 (2022-03-17)
==================
......
......@@ -21,3 +21,14 @@ ignore =
docs/_build/html/*/*/*/*
docs/_build/html/*/*/*
docs/_build/html/*/*
[isort]
force_single_line = True
combine_as_imports = True
sections = FUTURE,STDLIB,THIRDPARTY,ZOPE,FIRSTPARTY,LOCALFOLDER
known_third_party = six, docutils, pkg_resources
known_zope =
known_first_party =
default_section = ZOPE
line_length = 79
lines_after_imports = 2
......@@ -11,7 +11,9 @@
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
from setuptools import setup, find_packages
from setuptools import find_packages
from setuptools import setup
version = '5.7.1.dev0'
......@@ -28,6 +30,7 @@ Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
Programming Language :: Python :: Implementation :: CPython
Programming Language :: Python :: Implementation :: PyPy
Topic :: Database
......
......@@ -18,19 +18,27 @@ its use is not recommended. It's still here for historical reasons.
"""
from __future__ import print_function
import time
import logging
from struct import pack as _structpack, unpack as _structunpack
import time
from struct import pack as _structpack
from struct import unpack as _structunpack
import zope.interface
from persistent.TimeStamp import TimeStamp
import ZODB.interfaces
from . import POSException, utils
from . import POSException
from . import utils
from ._compat import py2_hasattr
from .Connection import TransactionMetaData
from .utils import z64, oid_repr, byte_ord, byte_chr, load_current
from .UndoLogCompatible import UndoLogCompatible
from ._compat import py2_hasattr
from .utils import byte_chr
from .utils import byte_ord
from .utils import load_current
from .utils import oid_repr
from .utils import z64
log = logging.getLogger("ZODB.BaseStorage")
......
......@@ -13,19 +13,22 @@
##############################################################################
import logging
import six
import zope.interface
from ZODB.POSException import ConflictError
from ZODB.loglevels import BLATHER
from ZODB._compat import (
BytesIO, PersistentUnpickler, PersistentPickler, _protocol)
# Subtle: Python 2.x has pickle.PicklingError and cPickle.PicklingError,
# and these are unrelated classes! So we shouldn't use pickle.PicklingError,
# since on Python 2, ZODB._compat.pickle is cPickle.
from pickle import PicklingError
import six
import zope.interface
from ZODB._compat import BytesIO
from ZODB._compat import PersistentPickler
from ZODB._compat import PersistentUnpickler
from ZODB._compat import _protocol
from ZODB.loglevels import BLATHER
from ZODB.POSException import ConflictError
logger = logging.getLogger('ZODB.ConflictResolution')
......
......@@ -14,43 +14,55 @@
"""Database connection support
"""
from __future__ import print_function
import logging
import tempfile
import warnings
import os
import tempfile
import time
import warnings
from persistent import PickleCache
import six
import transaction
from persistent import PickleCache
# interfaces
from persistent.interfaces import IPersistentDataManager
from ZODB.interfaces import IConnection
from ZODB.interfaces import IBlobStorage
from ZODB.interfaces import IStorageTransactionMetaData
from ZODB.blob import Blob, rename_or_copy_blob, remove_committed_dir
from transaction.interfaces import ISavepointDataManager
from transaction.interfaces import IDataManagerSavepoint
from transaction.interfaces import ISavepointDataManager
from transaction.interfaces import ISynchronizer
from zope.interface import implementer
import transaction
import ZODB
from ZODB.blob import SAVEPOINT_SUFFIX
from ZODB.ExportImport import ExportImport
from ZODB import POSException
from ZODB.POSException import InvalidObjectReference, ConnectionStateError
from ZODB.POSException import ConflictError, ReadConflictError
from ZODB.POSException import Unsupported, ReadOnlyHistoryError
from ZODB.serialize import ObjectWriter, ObjectReader
from ZODB.utils import p64, u64, z64, oid_repr, positive_id
from ZODB import utils
import six
from ZODB.blob import SAVEPOINT_SUFFIX
from ZODB.blob import Blob
from ZODB.blob import remove_committed_dir
from ZODB.blob import rename_or_copy_blob
from ZODB.ExportImport import ExportImport
from ZODB.interfaces import IBlobStorage
from ZODB.interfaces import IConnection
from ZODB.interfaces import IStorageTransactionMetaData
from ZODB.POSException import ConflictError
from ZODB.POSException import ConnectionStateError
from ZODB.POSException import InvalidObjectReference
from ZODB.POSException import ReadConflictError
from ZODB.POSException import ReadOnlyHistoryError
from ZODB.POSException import Unsupported
from ZODB.serialize import ObjectReader
from ZODB.serialize import ObjectWriter
from ZODB.utils import oid_repr
from ZODB.utils import p64
from ZODB.utils import positive_id
from ZODB.utils import u64
from ZODB.utils import z64
from ._compat import dumps, loads, _protocol
from . import valuedoc
from ._compat import _protocol
from ._compat import dumps
from ._compat import loads
from .mvccadapter import HistoricalStorageAdapter
from . import valuedoc
global_reset_counter = 0
......
......@@ -15,29 +15,31 @@
"""
from __future__ import print_function
import sys
import logging
import datetime
import logging
import sys
import time
import warnings
import weakref
from itertools import chain
from persistent.TimeStamp import TimeStamp
import six
import transaction
from persistent.TimeStamp import TimeStamp
from zope.interface import implementer
import ZODB.serialize
from ZODB import utils
from ZODB import valuedoc
from ZODB.broken import find_global
from ZODB.Connection import Connection
from ZODB.Connection import TransactionMetaData
from ZODB.Connection import noop
from ZODB.interfaces import IDatabase
from ZODB.interfaces import IMVCCStorage
from ZODB.broken import find_global
from ZODB.utils import z64
from ZODB.Connection import Connection, TransactionMetaData, noop
import ZODB.serialize
from ZODB import valuedoc
logger = logging.getLogger('ZODB.DB')
......
......@@ -20,20 +20,24 @@ The base storage must not change.
"""
from __future__ import print_function
import os
import random
import weakref
import tempfile
import weakref
import zope.interface
import ZODB.BaseStorage
import ZODB.blob
import ZODB.interfaces
import ZODB.MappingStorage
import ZODB.POSException
import ZODB.utils
import zope.interface
from .ConflictResolution import ConflictResolvingStorage
from .utils import load_current, maxtid
from .utils import load_current
from .utils import maxtid
@zope.interface.implementer(
......
......@@ -19,12 +19,18 @@ from tempfile import TemporaryFile
import six
from ZODB._compat import BytesIO
from ZODB._compat import PersistentPickler
from ZODB._compat import Unpickler
from ZODB._compat import _protocol
from ZODB.blob import Blob
from ZODB.interfaces import IBlobStorage
from ZODB.POSException import ExportError
from ZODB.serialize import referencesf
from ZODB.utils import p64, u64, cp, mktemp
from ZODB._compat import PersistentPickler, Unpickler, BytesIO, _protocol
from ZODB.utils import cp
from ZODB.utils import mktemp
from ZODB.utils import p64
from ZODB.utils import u64
logger = logging.getLogger('ZODB.ExportImport')
......
......@@ -24,32 +24,38 @@ import time
from struct import pack
from struct import unpack
from persistent.TimeStamp import TimeStamp
from six import string_types as STRING_TYPES
from persistent.TimeStamp import TimeStamp
from zc.lockfile import LockFile
from zope.interface import alsoProvides
from zope.interface import implementer
from .. import utils
from ZODB._compat import FILESTORAGE_MAGIC
from ZODB._compat import Pickler
from ZODB._compat import _protocol
from ZODB._compat import decodebytes
from ZODB._compat import encodebytes
from ZODB._compat import loads
from ZODB.BaseStorage import BaseStorage
from ZODB.BaseStorage import DataRecord as _DataRecord
from ZODB.BaseStorage import TransactionRecord as _TransactionRecord
from ZODB.blob import BlobStorageMixin
from ZODB.blob import link_or_copy
from ZODB.blob import remove_committed
from ZODB.blob import remove_committed_dir
from ZODB.BaseStorage import BaseStorage
from ZODB.BaseStorage import DataRecord as _DataRecord
from ZODB.BaseStorage import TransactionRecord as _TransactionRecord
from ZODB.ConflictResolution import ConflictResolvingStorage
from ZODB.FileStorage.format import CorruptedDataError
from ZODB.FileStorage.format import CorruptedError
from ZODB.FileStorage.format import DATA_HDR
from ZODB.FileStorage.format import DATA_HDR_LEN
from ZODB.FileStorage.format import DataHeader
from ZODB.FileStorage.format import FileStorageFormatter
from ZODB.FileStorage.format import TRANS_HDR
from ZODB.FileStorage.format import TRANS_HDR_LEN
from ZODB.FileStorage.format import CorruptedDataError
from ZODB.FileStorage.format import CorruptedError
from ZODB.FileStorage.format import DataHeader
from ZODB.FileStorage.format import FileStorageFormatter
from ZODB.FileStorage.format import TxnHeader
from ZODB.FileStorage.fspack import FileStoragePacker
from ZODB.fsIndex import fsIndex
from ZODB.interfaces import IBlobStorageRestoreable
from ZODB.interfaces import IExternalGC
from ZODB.interfaces import IStorage
......@@ -65,7 +71,6 @@ from ZODB.POSException import StorageError
from ZODB.POSException import StorageSystemError
from ZODB.POSException import StorageTransactionError
from ZODB.POSException import UndoError
from ZODB.fsIndex import fsIndex
from ZODB.utils import as_bytes
from ZODB.utils import as_text
from ZODB.utils import cp
......@@ -74,12 +79,8 @@ from ZODB.utils import mktemp
from ZODB.utils import p64
from ZODB.utils import u64
from ZODB.utils import z64
from ZODB._compat import Pickler
from ZODB._compat import loads
from ZODB._compat import decodebytes
from ZODB._compat import encodebytes
from ZODB._compat import _protocol
from ZODB._compat import FILESTORAGE_MAGIC
from .. import utils
# Not all platforms have fsync
......
# this is a package
from ZODB.FileStorage.FileStorage import FileStorage, TransactionRecord
from ZODB.FileStorage.FileStorage import FileIterator, Record, packed_version
from ZODB.FileStorage.FileStorage import FileIterator
from ZODB.FileStorage.FileStorage import FileStorage
from ZODB.FileStorage.FileStorage import Record
from ZODB.FileStorage.FileStorage import TransactionRecord
from ZODB.FileStorage.FileStorage import packed_version
# BBB Alias for compatibility
......
......@@ -86,9 +86,11 @@
import logging
import struct
from ZODB.POSException import POSKeyError
from ZODB.utils import u64, oid_repr, as_bytes
from ZODB._compat import PY3
from ZODB.POSException import POSKeyError
from ZODB.utils import as_bytes
from ZODB.utils import oid_repr
from ZODB.utils import u64
class CorruptedError(Exception):
......
from __future__ import print_function
##############################################################################
#
# Copyright (c) 2003 Zope Foundation and Contributors.
......@@ -15,10 +16,13 @@ from __future__ import print_function
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.format import DATA_HDR
from ZODB.FileStorage.format import DATA_HDR_LEN
from ZODB.FileStorage.format import TRANS_HDR
from ZODB.FileStorage.format import TRANS_HDR_LEN
from ZODB.TimeStamp import TimeStamp
from ZODB.utils import u64, get_pickle_metadata
from ZODB.utils import get_pickle_metadata
from ZODB.utils import u64
def fsdump(path, file=None, with_offset=1):
......
......@@ -12,10 +12,15 @@
#
##############################################################################
from __future__ import print_function
import ZODB.FileStorage
from ZODB.utils import get_pickle_metadata, p64, oid_repr, tid_repr
from ZODB.serialize import get_refs
from ZODB.TimeStamp import TimeStamp
from ZODB.utils import get_pickle_metadata
from ZODB.utils import oid_repr
from ZODB.utils import p64
from ZODB.utils import tid_repr
# Extract module.class string from pickle.
......
......@@ -24,15 +24,20 @@ from the revision of the root at that time or if it is reachable from
a backpointer after that time.
"""
from ZODB.FileStorage.format import DataHeader, TRANS_HDR_LEN
from ZODB.FileStorage.format import FileStorageFormatter, CorruptedDataError
from ZODB.utils import p64, u64, z64
import binascii
import logging
import os
import ZODB.fsIndex
import ZODB.POSException
from ZODB.FileStorage.format import TRANS_HDR_LEN
from ZODB.FileStorage.format import CorruptedDataError
from ZODB.FileStorage.format import DataHeader
from ZODB.FileStorage.format import FileStorageFormatter
from ZODB.utils import p64
from ZODB.utils import u64
from ZODB.utils import z64
logger = logging.getLogger(__name__)
......
......@@ -15,13 +15,16 @@ import doctest
import os
import re
import time
import transaction
import unittest
import transaction
from zope.testing import renormalizing
import ZODB.blob
import ZODB.FileStorage
import ZODB.tests.util
from ZODB.Connection import TransactionMetaData
from zope.testing import renormalizing
checker = renormalizing.RENormalizing([
# Python 3 bytes add a "b".
......
......@@ -17,14 +17,16 @@ This storage provides an example implementation of a fairly full
storage without distracting storage details.
"""
import BTrees
import time
import BTrees
import zope.interface
import ZODB.BaseStorage
import ZODB.interfaces
import ZODB.POSException
import ZODB.TimeStamp
import ZODB.utils
import zope.interface
@zope.interface.implementer(
......
......@@ -15,13 +15,13 @@
$Id$"""
from ZODB.utils import oid_repr, readable_tid_repr
import transaction.interfaces
# BBB: We moved the two transactions to the transaction package
from transaction.interfaces import TransactionError # noqa: F401 import unused
from transaction.interfaces import TransactionFailedError # noqa: F401
import transaction.interfaces
from ZODB.utils import oid_repr
from ZODB.utils import readable_tid_repr
def _fmt_undo(oid, reason):
......
......@@ -12,13 +12,16 @@
#
##############################################################################
from ZODB.DB import DB, connection
import sys
from persistent import TimeStamp
from persistent import list
from persistent import mapping
from ZODB.DB import DB
from ZODB.DB import connection
# Backward compat for old imports.
sys.modules['ZODB.TimeStamp'] = sys.modules['persistent.TimeStamp']
sys.modules['ZODB.PersistentMapping'] = sys.modules['persistent.mapping']
......
......@@ -11,10 +11,13 @@
# FOR A PARTICULAR PURPOSE
#
##############################################################################
from zodbpickle import binary # noqa: F401 import unused
import sys
from six import PY3
from zodbpickle import binary # noqa: F401 import unused
IS_JYTHON = sys.platform.startswith('java')
_protocol = 3
......@@ -126,11 +129,17 @@ except ImportError:
try:
# Python 3.x
from base64 import decodebytes, encodebytes
from base64 import decodebytes
from base64 import encodebytes
except ImportError:
# Python 2.x
from base64 import decodestring as decodebytes # noqa: F401 import unused
from base64 import encodestring as encodebytes # noqa: F401 import unused
from base64 import decodestring as decodebytes
from base64 import encodestring as encodebytes
# I want to use 'noqa: F401 import unused' on the lines above, for flake8,
# but isort removes them. So mention the two imported functions here,
# so neither flake8 nor isort complains.
decodebytes, encodebytes
# Python 3.x: ``hasattr()`` swallows only AttributeError.
......
......@@ -24,18 +24,18 @@ import sys
import tempfile
import weakref
import zope.interface
import persistent
import zope.interface
import ZODB.interfaces
from ZODB.interfaces import BlobError
from ZODB import utils
from ZODB.POSException import POSKeyError
from ZODB._compat import PY3
from ZODB._compat import BytesIO
from ZODB._compat import PersistentUnpickler
from ZODB._compat import decodebytes
from ZODB._compat import ascii_bytes
from ZODB._compat import PY3
from ZODB._compat import decodebytes
from ZODB.interfaces import BlobError
from ZODB.POSException import POSKeyError
if PY3:
......
......@@ -23,6 +23,7 @@ import ZODB.interfaces
from ZODB._compat import IMPORT_MAPPING
from ZODB._compat import NAME_MAPPING
broken_cache = {}
......
......@@ -13,9 +13,12 @@
##############################################################################
"""Open database and storage from a configuration."""
import os
import ZConfig
import ZODB
try:
from cStringIO import StringIO
except ImportError:
......@@ -234,6 +237,7 @@ class ZEOClient(BaseConfig):
def open(self):
from ZEO.ClientStorage import ClientStorage
# config.server is a multikey of socket-connection-address values
# where the value is a socket family, address tuple.
L = [server.address for server in self.config.server]
......
......@@ -40,9 +40,10 @@
# integers.
import struct
import six
from BTrees.fsBTree import fsBucket
from BTrees.OOBTree import OOBTree
import six
from ZODB._compat import INT_TYPES
from ZODB._compat import Pickler
......
......@@ -53,6 +53,13 @@ Important: The ZODB package must be importable. You may need to adjust
"""
from __future__ import print_function
import getopt
import os
import sys
import time
from struct import unpack
# Algorithm:
#
# position to start of input
......@@ -65,11 +72,6 @@ from __future__ import print_function
# scan for transaction
# continue
import sys
import os
import getopt
import time
from struct import unpack
try:
import ZODB
......@@ -80,11 +82,12 @@ except ImportError:
sys.path.append('..')
import ZODB
from persistent.TimeStamp import TimeStamp
import ZODB.FileStorage
from ZODB.utils import u64, as_text
from ZODB.FileStorage import TransactionRecord
from persistent.TimeStamp import TimeStamp
from ZODB.utils import as_text
from ZODB.utils import u64
def die(mess='', show_docstring=False):
......
......@@ -20,11 +20,14 @@ Caution: This file needs to be kept in sync with FileStorage.py.
import struct
from ZODB.FileStorage.format import TRANS_HDR, DATA_HDR, TRANS_HDR_LEN
from persistent.TimeStamp import TimeStamp
from ZODB._compat import loads
from ZODB.FileStorage.format import DATA_HDR
from ZODB.FileStorage.format import DATA_HDR_LEN
from ZODB.FileStorage.format import TRANS_HDR
from ZODB.FileStorage.format import TRANS_HDR_LEN
from ZODB.utils import u64
from ZODB._compat import loads
from persistent.TimeStamp import TimeStamp
class TxnHeader(object):
......
......@@ -13,7 +13,8 @@
#
##############################################################################
from zope.interface import Interface, Attribute
from zope.interface import Attribute
from zope.interface import Interface
class IConnection(Interface):
......
......@@ -18,6 +18,7 @@ $Revision: 1.1 $
import logging
__all__ = ["BLATHER", "TRACE"]
# In the days of zLOG, there were 7 standard log levels, and ZODB/ZEO used
......
......@@ -9,8 +9,14 @@ also simplifies the implementation of the DB and Connection classes.
"""
import zope.interface
from . import interfaces, serialize, POSException
from .utils import p64, u64, Lock, oid_repr, tid_repr
from . import POSException
from . import interfaces
from . import serialize
from .utils import Lock
from .utils import oid_repr
from .utils import p64
from .utils import tid_repr
from .utils import u64
class Base(object):
......
......@@ -5,8 +5,9 @@ from __future__ import print_function
import sys
from ZODB._compat import BytesIO
from ZODB._compat import PersistentUnpickler
from ZODB.FileStorage import FileStorage
from ZODB._compat import PersistentUnpickler, BytesIO
class FakeError(Exception):
......
......@@ -7,9 +7,12 @@ Try to find all the BTrees in a Data.fs, call their _check() methods,
and run them through BTrees.check.check().
"""
from __future__ import print_function
from BTrees.check import check
import ZODB
from ZODB.FileStorage import FileStorage
from BTrees.check import check
# Set of oids we've already visited. Since the object structure is
# a general graph, this is needed to prevent unbounded paths in the
......
......@@ -62,14 +62,21 @@ revisions of objects; therefore fsrefs cannot find problems in versions or
in non-current revisions.
"""
from __future__ import print_function
import traceback
from BTrees.QQBTree import QQBTree
from ZODB.FileStorage import FileStorage
from ZODB.TimeStamp import TimeStamp
from ZODB.utils import u64, p64, oid_repr, get_pickle_metadata, load_current
from ZODB.serialize import get_refs
from ZODB.POSException import POSKeyError
from BTrees.QQBTree import QQBTree
from ZODB.serialize import get_refs
from ZODB.TimeStamp import TimeStamp
from ZODB.utils import get_pickle_metadata
from ZODB.utils import load_current
from ZODB.utils import oid_repr
from ZODB.utils import p64
from ZODB.utils import u64
# There's a problem with oid. 'data' is its pickle, and 'serial' its
# serial number. 'missing' is a list of (oid, class, reason) triples,
......@@ -98,8 +105,8 @@ def report(oid, data, serial, missing):
def main(path=None):
verbose = 0
if path is None:
import sys
import getopt
import sys
opts, args = getopt.getopt(sys.argv[1:], "v")
for k, v in opts:
......
#!/usr/bin/env python2
"""Print details statistics from fsdump output."""
from __future__ import print_function
import re
import sys
import six
from six.moves import filter
rx_txn = re.compile(r"tid=([0-9a-f]+).*size=(\d+)")
rx_data = re.compile(r"oid=([0-9a-f]+) size=(\d+) class=(\S+)")
......
......@@ -14,12 +14,14 @@
##############################################################################
"""Tool to dump the last few transactions from a FileStorage."""
from __future__ import print_function
from ZODB.fstools import prev_txn
import binascii
import getopt
import sys
from ZODB.fstools import prev_txn
try:
from hashlib import sha1
except ImportError:
......
......@@ -32,16 +32,18 @@ stores object pickles. Those errors will go undetected.
"""
from __future__ import print_function
# The implementation is based closely on the read_index() function in
# ZODB.FileStorage. If anything about the FileStorage layout changes,
# this file will need to be udpated.
import binascii
import struct
import sys
from ZODB._compat import FILESTORAGE_MAGIC
# The implementation is based closely on the read_index() function in
# ZODB.FileStorage. If anything about the FileStorage layout changes,
# this file will need to be udpated.
class FormatError(ValueError):
"""There is a problem with the format of the FileStorage."""
......
......@@ -3,13 +3,15 @@
Note: To run this test script fstest.py must be on your PYTHONPATH.
"""
from cStringIO import StringIO
import re
import struct
import ZODB.tests.util
import fstest
from fstest import FormatError, U64
from cStringIO import StringIO
from fstest import U64
from fstest import FormatError
import ZODB.tests.util
class TestCorruptedFS(ZODB.tests.util.TestCase):
......
......@@ -73,16 +73,18 @@ Positional arguments:
pairs. E.g. "name=full;frequency=3600"
"""
from __future__ import print_function
import re
import sys
import time
import getopt
import marshal
import profile
import re
import sys
import time
from persistent.timestamp import TimeStamp
from ZODB import utils
from ZODB import StorageTypes # XXX: This import does not exist
from ZODB import utils
PROGRAM = sys.argv[0]
......
......@@ -14,6 +14,7 @@
"""A script to migrate a blob directory into a different layout.
"""
from __future__ import print_function
import logging
import optparse
import os
......
......@@ -7,11 +7,15 @@ usage: netspace.py [-P | -v] data.fs
-v: print info for all objects, even if a traversal path isn't found
"""
from __future__ import print_function
from six.moves import filter
import ZODB
from ZODB.FileStorage import FileStorage
from ZODB.utils import U64, get_pickle_metadata, load_current
from ZODB.serialize import referencesf
from six.moves import filter
from ZODB.utils import U64
from ZODB.utils import get_pickle_metadata
from ZODB.utils import load_current
def find_paths(root, maxdist):
......@@ -100,8 +104,8 @@ def main(path):
def Main():
import sys
import getopt
import sys
global PACK
global VERBOSE
......
......@@ -85,19 +85,22 @@ Options for -V/--verify:
Verify file sizes only (skip md5 checksums).
"""
from __future__ import print_function
import re
import errno
import getopt
import gzip
import os
import re
import shutil
import sys
from six.moves import filter
from hashlib import md5
import gzip
import time
import errno
import getopt
from hashlib import md5
from six.moves import filter
from ZODB.FileStorage import FileStorage
program = sys.argv[0]
BACKUP = 1
......
......@@ -8,10 +8,14 @@ The current implementation only supports FileStorage.
Current limitations / simplifications: Ignores revisions and versions.
"""
from __future__ import print_function
from ZODB.FileStorage import FileStorage
from ZODB.utils import U64, get_pickle_metadata, load_current
import six
from ZODB.FileStorage import FileStorage
from ZODB.utils import U64
from ZODB.utils import get_pickle_metadata
from ZODB.utils import load_current
def run(path, v=0):
fs = FileStorage(path, read_only=1)
......@@ -40,8 +44,8 @@ def run(path, v=0):
def main():
import sys
import getopt
import sys
try:
opts, args = getopt.getopt(sys.argv[1:], "v")
except getopt.error as msg:
......
......@@ -14,9 +14,12 @@
import doctest
import re
import unittest
import ZODB.tests.util
import zope.testing.renormalizing
import ZODB.tests.util
checker = zope.testing.renormalizing.RENormalizing([
(re.compile(
r'[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]+'),
......
......@@ -15,10 +15,11 @@ import doctest
import re
import unittest
import ZODB
from zope.testing import setupstack
from zope.testing.renormalizing import RENormalizing
import ZODB
def test_fstest_verbose():
r"""
......
......@@ -12,14 +12,17 @@
#
##############################################################################
from __future__ import print_function
import unittest
import os
import sys
import unittest
from hashlib import md5
from io import BytesIO
from io import StringIO
import ZODB.tests.util # layer used at class scope
from io import BytesIO, StringIO
if str is bytes:
NativeStringIO = BytesIO
else:
......@@ -45,8 +48,8 @@ class OurDB(object):
_file_name = None
def __init__(self, dir):
from BTrees.OOBTree import OOBTree
import transaction
from BTrees.OOBTree import OOBTree
self.dir = dir
self.getdb()
conn = self.db.open()
......@@ -79,6 +82,7 @@ class OurDB(object):
def mutate(self):
# Make random mutations to the btree in the database.
import random
import transaction
tree = self.gettree()
for dummy in range(100):
......@@ -125,6 +129,7 @@ class Test_parseargs(unittest.TestCase):
def test_help(self):
from ZODB.scripts import repozo
# Note: can't mock sys.stdout in our setUp: if a test fails,
# zope.testrunner will happily print the traceback and failure message
# into our StringIO before running our tearDown.
......@@ -382,8 +387,9 @@ class Test_concat(OptionsTestBase, unittest.TestCase):
return concat(files, ofp)
def _makeFile(self, name, text, gzip_file=False):
from ZODB.scripts.repozo import _GzipCloser
import tempfile
from ZODB.scripts.repozo import _GzipCloser
if self._repository_directory is None:
self._repository_directory = tempfile.mkdtemp(prefix='zodb-test-')
fqn = os.path.join(self._repository_directory, name)
......@@ -712,8 +718,9 @@ class Test_do_full_backup(OptionsTestBase, unittest.TestCase):
def test_empty(self):
import struct
from ZODB.scripts.repozo import gen_filename
from ZODB.fsIndex import fsIndex
from ZODB.scripts.repozo import gen_filename
db = self._makeDB()
options = self._makeOptions(file=db._file_name,
gzip=False,
......@@ -754,8 +761,8 @@ class Test_do_incremental_backup(OptionsTestBase, unittest.TestCase):
def test_dont_overwrite_existing_file(self):
from ZODB.scripts.repozo import WouldOverwriteFiles
from ZODB.scripts.repozo import gen_filename
from ZODB.scripts.repozo import find_files
from ZODB.scripts.repozo import gen_filename
db = self._makeDB()
options = self._makeOptions(full=False,
file=db._file_name,
......@@ -771,8 +778,9 @@ class Test_do_incremental_backup(OptionsTestBase, unittest.TestCase):
def test_no_changes(self):
import struct
from ZODB.scripts.repozo import gen_filename
from ZODB.fsIndex import fsIndex
from ZODB.scripts.repozo import gen_filename
db = self._makeDB()
oldpos = db.pos
options = self._makeOptions(file=db._file_name,
......@@ -807,8 +815,9 @@ class Test_do_incremental_backup(OptionsTestBase, unittest.TestCase):
def test_w_changes(self):
import struct
from ZODB.scripts.repozo import gen_filename
from ZODB.fsIndex import fsIndex
from ZODB.scripts.repozo import gen_filename
db = self._makeDB()
oldpos = db.pos
options = self._makeOptions(file=db._file_name,
......@@ -958,6 +967,7 @@ class Test_do_recover(OptionsTestBase, unittest.TestCase):
def test_w_incr_backup_with_verify_sum_inconsistent(self):
import tempfile
from ZODB.scripts.repozo import VerificationFail
dd = self._data_directory = tempfile.mkdtemp(prefix='zodb-test-')
output = os.path.join(dd, 'Data.fs')
......@@ -975,6 +985,7 @@ class Test_do_recover(OptionsTestBase, unittest.TestCase):
def test_w_incr_backup_with_verify_size_inconsistent(self):
import tempfile
from ZODB.scripts.repozo import VerificationFail
dd = self._data_directory = tempfile.mkdtemp(prefix='zodb-test-')
output = os.path.join(dd, 'Data.fs')
......
......@@ -113,6 +113,7 @@ Usage: loadmail2 [options]
are equivalent
"""
from __future__ import print_function
import mailbox
import math
import os
......@@ -121,6 +122,7 @@ import re
import sys
import threading
import time
import transaction
......@@ -237,15 +239,16 @@ def setup(lib_python):
os.remove(os.path.join(lib_python, '..', '..', 'var', 'Data.fs'))
except: # noqa: E722 do not use bare 'except'
pass
import Zope2
import Products
import AccessControl.SecurityManagement
import Products
import Zope2
app = Zope2.app()
Products.ZCatalog.ZCatalog.manage_addZCatalog(app, 'cat', '')
from Products.ZCTextIndex.Lexicon import CaseNormalizer
from Products.ZCTextIndex.Lexicon import Splitter
from Products.ZCTextIndex.ZCTextIndex import PLexicon
from Products.ZCTextIndex.Lexicon import Splitter, CaseNormalizer
app.cat._setObject('lex',
PLexicon('lex', '', Splitter(), CaseNormalizer())
......@@ -833,9 +836,9 @@ def main(args=None):
def zetup(configfile_name):
from Zope.Startup.options import ZopeOptions
from Zope.Startup import handlers as h
from App import config
from Zope.Startup import handlers as h
from Zope.Startup.options import ZopeOptions
opts = ZopeOptions()
opts.configfile = configfile_name
opts.realize(args=[])
......
......@@ -136,11 +136,16 @@ A number of legacyforms are defined:
import logging
from persistent import Persistent
from persistent.wref import WeakRefMarker, WeakRef
from persistent.wref import WeakRef
from persistent.wref import WeakRefMarker
from ZODB import broken
from ZODB._compat import BytesIO
from ZODB._compat import PersistentPickler
from ZODB._compat import PersistentUnpickler
from ZODB._compat import _protocol
from ZODB._compat import binary
from ZODB.POSException import InvalidObjectReference
from ZODB._compat import PersistentPickler, PersistentUnpickler, BytesIO
from ZODB._compat import _protocol, binary
_oidtypes = bytes, type(None)
......
......@@ -18,18 +18,20 @@ http://www.zope.org/Documentation/Developer/Models/ZODB/ZODB_Architecture_Storag
All storages should be able to pass these tests.
"""
from ZODB import POSException
from ZODB.Connection import TransactionMetaData
from ZODB.tests.MinPO import MinPO
from ZODB.tests.StorageTestBase import zodb_unpickle, zodb_pickle
from ZODB.tests.StorageTestBase import ZERO
from ZODB.tests.racetest import RaceTests
import threading
import time
import zope.interface
import zope.interface.verify
from ZODB import POSException
from ZODB.Connection import TransactionMetaData
from ZODB.tests.MinPO import MinPO
from ZODB.tests.racetest import RaceTests
from ZODB.tests.StorageTestBase import ZERO
from ZODB.tests.StorageTestBase import zodb_pickle
from ZODB.tests.StorageTestBase import zodb_unpickle
from .. import utils
......
......@@ -13,12 +13,13 @@
##############################################################################
"""Tests for application-level conflict resolution."""
from ZODB import DB
from ZODB.Connection import TransactionMetaData
from ZODB.POSException import ConflictError, UndoError
from persistent import Persistent
from transaction import TransactionManager
from ZODB import DB
from ZODB.Connection import TransactionMetaData
from ZODB.POSException import ConflictError
from ZODB.POSException import UndoError
from ZODB.tests.StorageTestBase import zodb_pickle
......@@ -96,7 +97,8 @@ class ConflictResolvingStorage(object):
self.checkResolve(False)
def checkZClassesArentResolved(self):
from ZODB.ConflictResolution import find_global, BadClassName
from ZODB.ConflictResolution import BadClassName
from ZODB.ConflictResolution import find_global
self.assertRaises(BadClassName, find_global, '*foobar', ())
def checkBuggyResolve1(self):
......
......@@ -18,7 +18,6 @@ import random
import stat
import ZODB.FileStorage
from ZODB.utils import load_current
from .StorageTestBase import StorageTestBase
......
......@@ -18,7 +18,9 @@ all these tests.
"""
import sys
from time import time, sleep
from time import sleep
from time import time
from ZODB.tests.MinPO import MinPO
......
......@@ -18,13 +18,16 @@ all these tests.
"""
import ZODB.blob
from ZODB.Connection import TransactionMetaData
from ZODB.tests.MinPO import MinPO
from ZODB.tests.StorageTestBase import zodb_pickle, zodb_unpickle
from ZODB.tests.StorageTestBase import ZERO
from ZODB.utils import U64, p64, load_current
from ZODB.tests.StorageTestBase import zodb_pickle
from ZODB.tests.StorageTestBase import zodb_unpickle
from ZODB.utils import U64
from ZODB.utils import load_current
from ZODB.utils import p64
import ZODB.blob
try:
from itertools import izip as zip
......
......@@ -3,18 +3,20 @@ import sys
import threading
import time
from persistent.mapping import PersistentMapping
import six
import transaction
from persistent.mapping import PersistentMapping
import ZODB
from ZODB.Connection import TransactionMetaData
from ZODB.tests.StorageTestBase import zodb_pickle, zodb_unpickle
from ZODB.tests.MinPO import MinPO
from ZODB.POSException import ConflictError
from ZODB.tests.MinPO import MinPO
from ZODB.tests.StorageTestBase import zodb_pickle
from ZODB.tests.StorageTestBase import zodb_unpickle
from ZODB.utils import load_current
SHORT_DELAY = 0.01
......
......@@ -17,11 +17,12 @@ Each Connection has its own view of the database. Polling updates each
connection's view.
"""
import ZODB.utils
from zope.interface import implementer
import ZODB.POSException
import ZODB.utils
from ZODB.interfaces import IMVCCStorage
from ZODB.MappingStorage import MappingStorage
from zope.interface import implementer
@implementer(IMVCCStorage)
......
......@@ -17,23 +17,29 @@ from __future__ import print_function
import doctest
import time
import transaction
from persistent import Persistent
from persistent.mapping import PersistentMapping
import ZODB.interfaces
import ZODB.tests.util
from ZODB import DB
from ZODB.POSException import ConflictError, StorageError
from ZODB._compat import BytesIO
from ZODB._compat import PersistentPickler
from ZODB._compat import Pickler
from ZODB._compat import Unpickler
from ZODB._compat import _protocol
from ZODB._compat import loads
from ZODB.POSException import ConflictError
from ZODB.POSException import StorageError
from ZODB.serialize import referencesf
from ZODB.tests.MinPO import MinPO
from ZODB.tests.MTStorage import TestThread
from ZODB.tests.StorageTestBase import snooze
from ZODB._compat import (loads, PersistentPickler, Pickler, Unpickler,
BytesIO, _protocol)
import transaction
import ZODB.interfaces
import ZODB.tests.util
from ZODB.tests.util import time_monotonically_increases
from ZODB.utils import load_current
ZERO = b'\0'*8
......
......@@ -12,8 +12,8 @@
#
##############################################################################
from ZODB.Connection import TransactionMetaData
from ZODB.POSException import ReadOnlyError, Unsupported
from ZODB.POSException import ReadOnlyError
from ZODB.POSException import Unsupported
from ZODB.utils import load_current
......
......@@ -13,17 +13,18 @@
##############################################################################
"""More recovery and iterator tests."""
import time
import transaction
from ZODB.Connection import TransactionMetaData
from ZODB.tests.IteratorStorage import IteratorDeepCompare
from ZODB.tests.StorageTestBase import MinPO, snooze
from ZODB import DB
from ZODB.Connection import TransactionMetaData
from ZODB.serialize import referencesf
from ZODB.utils import load_current
from ZODB.tests.IteratorStorage import IteratorDeepCompare
from ZODB.tests.StorageTestBase import MinPO
from ZODB.tests.StorageTestBase import snooze
from ZODB.tests.util import time_monotonically_increases
import time
from ZODB.utils import load_current
class RecoveryStorage(IteratorDeepCompare):
......
......@@ -15,10 +15,14 @@
from ZODB.Connection import TransactionMetaData
from ZODB.tests.MinPO import MinPO
from ZODB.tests.StorageTestBase import zodb_unpickle, zodb_pickle, snooze
from ZODB.tests.StorageTestBase import ZERO
from ZODB.utils import p64, u64, load_current
from ZODB.tests.StorageTestBase import snooze
from ZODB.tests.StorageTestBase import zodb_pickle
from ZODB.tests.StorageTestBase import zodb_unpickle
from ZODB.tests.util import time_monotonically_increases
from ZODB.utils import load_current
from ZODB.utils import p64
from ZODB.utils import u64
class RevisionStorage(object):
......
......@@ -19,14 +19,19 @@ method _dostore() which performs a complete store transaction for a
single object revision.
"""
from __future__ import print_function
import sys
import time
import ZODB.tests.util
from ZODB._compat import BytesIO
from ZODB._compat import PersistentPickler
from ZODB._compat import Unpickler
from ZODB._compat import _protocol
from ZODB.Connection import TransactionMetaData
from ZODB.utils import u64, z64
from ZODB.tests.MinPO import MinPO
from ZODB._compat import PersistentPickler, Unpickler, BytesIO, _protocol
import ZODB.tests.util
from ZODB.utils import u64
from ZODB.utils import z64
ZERO = z64
......
......@@ -65,6 +65,7 @@ tested? Is it a general restriction?
from ZODB.Connection import TransactionMetaData
from ZODB.POSException import StorageTransactionError
OID = "\000" * 8
SERIALNO = "\000" * 8
TID = "\000" * 8
......
......@@ -19,18 +19,19 @@ import time
from six import PY3
from persistent import Persistent
import transaction
from persistent import Persistent
from ZODB import DB
from ZODB import POSException
from ZODB.Connection import TransactionMetaData
from ZODB.serialize import referencesf
from ZODB.utils import p64, load_current
from ZODB import DB
from ZODB.tests.MinPO import MinPO
from ZODB.tests.StorageTestBase import zodb_pickle, zodb_unpickle
from ZODB.tests.StorageTestBase import ZERO
from ZODB.tests.StorageTestBase import zodb_pickle
from ZODB.tests.StorageTestBase import zodb_unpickle
from ZODB.utils import load_current
from ZODB.utils import p64
class C(Persistent):
......
......@@ -18,11 +18,11 @@ from __future__ import print_function
import time
import transaction
from ZODB.FileStorage import FileStorage
from ZODB import DB
from persistent import Persistent
from ZODB import DB
from ZODB.FileStorage import FileStorage
class P(Persistent):
pass
......
......@@ -11,11 +11,14 @@
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
from binascii import hexlify
from binascii import unhexlify
import zope.interface
import ZODB.blob
import ZODB.interfaces
import ZODB.utils
import zope.interface
from binascii import hexlify, unhexlify
@zope.interface.implementer(ZODB.interfaces.IStorageWrapper)
......
......@@ -41,16 +41,21 @@ https://github.com/zopefoundation/ZODB/issues/290 and
https://github.com/zopefoundation/ZEO/issues/166.
"""
import transaction
from ZODB import DB, POSException
from ZODB.utils import tid_repr, at2before
from ZODB.tests.MinPO import MinPO
from ZODB.tests.util import with_high_concurrency, long_test
from zope.interface import Interface, implementer
import threading
from random import randint
import transaction
from zope.interface import Interface
from zope.interface import implementer
from ZODB import DB
from ZODB import POSException
from ZODB.tests.MinPO import MinPO
from ZODB.tests.util import long_test
from ZODB.tests.util import with_high_concurrency
from ZODB.utils import at2before
from ZODB.utils import tid_repr
class IModelSpec(Interface):
"""IModelSpec interface represents testing specification used by
......
from __future__ import print_function
import time
import string
import getopt
import os
import ZODB.FileStorage
import ZODB
import string
import sys
import transaction
import time
import persistent
import transaction
import ZODB
import ZODB.FileStorage
##############################################################################
#
# Copyright (c) 2001, 2002 Zope Foundation and Contributors.
......
......@@ -18,8 +18,8 @@ See ZODB/ActivityMonitor.py
$Id$
"""
import unittest
import time
import unittest
from ZODB.ActivityMonitor import ActivityMonitor
......
......@@ -14,16 +14,21 @@
"""Test broken-object suppport
"""
import os
import sys
import unittest
import persistent
import transaction
import os
if os.environ.get('USE_ZOPE_TESTING_DOCTEST'):
from zope.testing.doctest import DocTestSuite
else:
from doctest import DocTestSuite
from ZODB.tests.util import DB, checker
from ZODB.tests.util import DB
from ZODB.tests.util import checker
def test_integration():
......
......@@ -18,20 +18,22 @@ purposes. It acts like a memo for unpickling. It also keeps recent
objects in memory under the assumption that they may be used again.
"""
from persistent import Persistent
from persistent import PickleCache
from persistent.mapping import PersistentMapping
from ZODB.tests.MinPO import MinPO
from ZODB.utils import p64
import doctest
import gc
import sys
import threading
import transaction
import unittest
import transaction
from persistent import Persistent
from persistent import PickleCache
from persistent.mapping import PersistentMapping
import ZODB
import ZODB.MappingStorage
import ZODB.tests.util
from ZODB.tests.MinPO import MinPO
from ZODB.utils import p64
class CacheTestBase(ZODB.tests.util.TestCase):
......
......@@ -17,6 +17,7 @@ import tempfile
import unittest
import transaction
import ZODB.config
import ZODB.tests.util
from ZODB.POSException import ReadOnlyError
......
......@@ -14,25 +14,30 @@
"""Unit tests for the Connection class."""
from __future__ import print_function
from contextlib import contextmanager
import doctest
import re
import six
import sys
import unittest
from contextlib import contextmanager
import six
import transaction
from persistent import Persistent
from transaction import Transaction
from zope.interface.verify import verifyObject
from zope.testing import loggingsupport
from zope.testing import renormalizing
import ZODB.tests.util
from ZODB.config import databaseFromString
from ZODB.utils import p64, u64, z64
from persistent import Persistent
from zope.interface.verify import verifyObject
from zope.testing import loggingsupport, renormalizing
from ZODB.utils import p64
from ZODB.utils import u64
from ZODB.utils import z64
from .. import mvccadapter
checker = renormalizing.RENormalizing([
# Python 3 bytes add a "b".
(re.compile("b('.*?')"), r"\1"),
......
......@@ -12,12 +12,14 @@
#
##############################################################################
import doctest
import persistent.mapping
import re
import transaction
import unittest
import persistent.mapping
import transaction
from zope.testing import renormalizing
checker = renormalizing.RENormalizing([
# Python 3 bytes add a "b".
(re.compile("b('.*?')"), r"\1"),
......
......@@ -11,17 +11,20 @@
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
from six import PY2
from ZODB.tests.MinPO import MinPO
import doctest
import re
import time
import transaction
import unittest
from six import PY2
import transaction
from zope.testing import renormalizing
import ZODB
import ZODB.tests.util
from zope.testing import renormalizing
from ZODB.tests.MinPO import MinPO
checker = renormalizing.RENormalizing([
# Python 3 bytes add a "b".
......
......@@ -11,32 +11,34 @@
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
import os
from ZODB.DB import DB
from ZODB.tests import (
BasicStorage,
ConflictResolution,
HistoryStorage,
IteratorStorage,
MTStorage,
PackableStorage,
RevisionStorage,
StorageTestBase,
Synchronization,
)
from ZODB.tests import BasicStorage
from ZODB.tests import ConflictResolution
from ZODB.tests import HistoryStorage
from ZODB.tests import IteratorStorage
from ZODB.tests import MTStorage
from ZODB.tests import PackableStorage
from ZODB.tests import RevisionStorage
from ZODB.tests import StorageTestBase
from ZODB.tests import Synchronization
import os
if os.environ.get('USE_ZOPE_TESTING_DOCTEST'):
from zope.testing import doctest
else:
import doctest
import random
import transaction
import unittest
import transaction
import ZODB.DemoStorage
import ZODB.tests.hexstorage
import ZODB.tests.util
import ZODB.utils
from ZODB.utils import load_current
......
......@@ -12,6 +12,8 @@
#
##############################################################################
import os
if os.environ.get('USE_ZOPE_TESTING_DOCTEST'):
from zope.testing import doctest
else:
......@@ -19,24 +21,40 @@ else:
import sys
import unittest
import transaction
import zope.testing.setupstack
import ZODB.FileStorage
import ZODB.tests.hexstorage
import ZODB.tests.testblob
import zope.testing.setupstack
from ZODB import POSException
from ZODB import DB
from ZODB import POSException
from ZODB._compat import _protocol
from ZODB._compat import dump
from ZODB._compat import dumps
from ZODB.Connection import TransactionMetaData
from ZODB.fsIndex import fsIndex
from ZODB.utils import U64, p64, z64, load_current
from ZODB.tests import StorageTestBase, BasicStorage, TransactionalUndoStorage
from ZODB.tests import PackableStorage, Synchronization, ConflictResolution
from ZODB.tests import HistoryStorage, IteratorStorage, Corruption
from ZODB.tests import RevisionStorage, PersistentStorage, MTStorage
from ZODB.tests import ReadOnlyStorage, RecoveryStorage
from ZODB.tests.StorageTestBase import MinPO, zodb_pickle
from ZODB._compat import dump, dumps, _protocol
from ZODB.tests import BasicStorage
from ZODB.tests import ConflictResolution
from ZODB.tests import Corruption
from ZODB.tests import HistoryStorage
from ZODB.tests import IteratorStorage
from ZODB.tests import MTStorage
from ZODB.tests import PackableStorage
from ZODB.tests import PersistentStorage
from ZODB.tests import ReadOnlyStorage
from ZODB.tests import RecoveryStorage
from ZODB.tests import RevisionStorage
from ZODB.tests import StorageTestBase
from ZODB.tests import Synchronization
from ZODB.tests import TransactionalUndoStorage
from ZODB.tests.StorageTestBase import MinPO
from ZODB.tests.StorageTestBase import zodb_pickle
from ZODB.utils import U64
from ZODB.utils import load_current
from ZODB.utils import p64
from ZODB.utils import z64
from . import util
......@@ -153,9 +171,10 @@ class FileStorageTests(
# converted the fsIndex class from using a dictionary as its
# self._data attribute to using an OOBTree in its stead.
from ZODB.fsIndex import fsIndex
from BTrees.OOBTree import OOBTree
from ZODB.fsIndex import fsIndex
# Create some data, and remember the index.
for i in range(10):
self._dostore()
......@@ -446,7 +465,9 @@ class AnalyzeDotPyTest(StorageTestBase.StorageTestBase):
def checkanalyze(self):
import types
from BTrees.OOBTree import OOBTree
from ZODB.scripts import analyze
# Set up a module to act as a broken import
......@@ -515,6 +536,7 @@ def checkIncreasingTids(fs):
def timestamp(minutes):
import time
from persistent.TimeStamp import TimeStamp
t = time.time() + 60 * minutes
......
......@@ -14,24 +14,22 @@
import unittest
from persistent.mapping import PersistentMapping
import transaction
from persistent.mapping import PersistentMapping
import ZODB.blob
import ZODB.tests.testblob
from ZODB.Connection import TransactionMetaData
from ZODB.DB import DB
from ZODB.tests import BasicStorage
from ZODB.tests import HistoryStorage
from ZODB.tests import IteratorStorage
from ZODB.tests import MTStorage
from ZODB.tests import PackableStorage
from ZODB.tests import RevisionStorage
from ZODB.tests import StorageTestBase
from ZODB.tests import Synchronization
from ZODB.tests.MVCCMappingStorage import MVCCMappingStorage
import ZODB.blob
import ZODB.tests.testblob
from ZODB.tests import (
BasicStorage,
HistoryStorage,
IteratorStorage,
MTStorage,
PackableStorage,
RevisionStorage,
StorageTestBase,
Synchronization,
)
class MVCCTests(object):
......
......@@ -11,22 +11,19 @@
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
import unittest
from collections import namedtuple
import ZODB.MappingStorage
import unittest
import ZODB.tests.hexstorage
from ZODB.tests import (
BasicStorage,
HistoryStorage,
IteratorStorage,
MTStorage,
PackableStorage,
RevisionStorage,
StorageTestBase,
Synchronization,
)
from ZODB.tests import BasicStorage
from ZODB.tests import HistoryStorage
from ZODB.tests import IteratorStorage
from ZODB.tests import MTStorage
from ZODB.tests import PackableStorage
from ZODB.tests import RevisionStorage
from ZODB.tests import StorageTestBase
from ZODB.tests import Synchronization
class MappingStorageTests(
......
......@@ -15,10 +15,12 @@
"""
import unittest
from persistent.list import PersistentList
from six import PY2
from persistent.list import PersistentList
l0 = []
l1 = [0]
l2 = [0, 1]
......
......@@ -20,14 +20,15 @@ If the new code doesn't generate pickles that are consistent with the
old code, developers will have a hard time testing the new code.
"""
import unittest
import sys
import unittest
from six import PY2
import ZODB
from ZODB.Connection import TransactionMetaData
from ZODB.MappingStorage import MappingStorage
from six import PY2
# This pickle contains a persistent mapping pickle created from the
# old code.
......@@ -63,6 +64,7 @@ class PMTests(unittest.TestCase):
def checkBackwardCompat(self):
# Verify that the sanest of the ZODB 3.2 dotted paths still works.
from persistent.mapping import PersistentMapping as newPath
from ZODB.PersistentMapping import PersistentMapping as oldPath
self.assertTrue(oldPath is newPath)
......
......@@ -18,14 +18,15 @@ import random
import sys
import unittest
import transaction
from persistent.mapping import PersistentMapping
import ZODB
import ZODB.fsrecover
import ZODB.tests.util
from ZODB.FileStorage import FileStorage
from ZODB._compat import decodebytes
import ZODB.fsrecover
from ZODB.FileStorage import FileStorage
from persistent.mapping import PersistentMapping
import transaction
try:
import StringIO
......
......@@ -20,8 +20,11 @@ from persistent.wref import WeakRef
import ZODB.tests.util
from ZODB import serialize
from ZODB._compat import Pickler, PersistentUnpickler, BytesIO, _protocol
from ZODB._compat import IS_JYTHON
from ZODB._compat import BytesIO
from ZODB._compat import PersistentUnpickler
from ZODB._compat import Pickler
from ZODB._compat import _protocol
class PersistentObject(Persistent):
......@@ -222,6 +225,7 @@ def _functest_prep(fqn):
# run in separate process)
import transaction
from BTrees.OOBTree import OOBTree
from ZODB import DB
WORKING, FAILING = _working_failing_datetimes()
db = DB(fqn)
......
......@@ -16,11 +16,14 @@ import doctest
import random
import re
import unittest
from persistent import Persistent
from persistent import Persistent
from zope.testing import renormalizing
from ZODB.utils import U64, p64, u64
from ZODB._compat import loads
from ZODB.utils import U64
from ZODB.utils import p64
from ZODB.utils import u64
NUM = 100
......@@ -73,8 +76,8 @@ class TestUtils(unittest.TestCase):
# the pickle (and so also trying to import application module and
# class objects, which isn't a good idea on a ZEO server when avoidable).
def test_ConflictErrorDoesntImport(self):
from ZODB.serialize import ObjectWriter
from ZODB.POSException import ConflictError
from ZODB.serialize import ObjectWriter
from ZODB.tests.MinPO import MinPO
obj = MinPO()
......@@ -101,30 +104,30 @@ class TestUtils(unittest.TestCase):
self.fail("expected ConflictError, but no exception raised")
def test_get_pickle_metadata_w_protocol_0_class_pickle(self):
from ZODB.utils import get_pickle_metadata
from ZODB._compat import dumps
from ZODB.utils import get_pickle_metadata
pickle = dumps(ExampleClass, protocol=0)
self.assertEqual(get_pickle_metadata(pickle),
(__name__, ExampleClass.__name__))
def test_get_pickle_metadata_w_protocol_1_class_pickle(self):
from ZODB.utils import get_pickle_metadata
from ZODB._compat import dumps
from ZODB.utils import get_pickle_metadata
pickle = dumps(ExampleClass, protocol=1)
self.assertEqual(get_pickle_metadata(pickle),
(__name__, ExampleClass.__name__))
def test_get_pickle_metadata_w_protocol_2_class_pickle(self):
from ZODB.utils import get_pickle_metadata
from ZODB._compat import dumps
from ZODB.utils import get_pickle_metadata
pickle = dumps(ExampleClass, protocol=2)
self.assertEqual(get_pickle_metadata(pickle),
(__name__, ExampleClass.__name__))
def test_get_pickle_metadata_w_protocol_3_class_pickle(self):
from ZODB.utils import get_pickle_metadata
from ZODB._compat import dumps
from ZODB._compat import HIGHEST_PROTOCOL
from ZODB._compat import dumps
from ZODB.utils import get_pickle_metadata
if HIGHEST_PROTOCOL >= 3:
pickle = dumps(ExampleClass, protocol=3)
self.assertEqual(get_pickle_metadata(pickle),
......
......@@ -11,17 +11,18 @@
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
import unittest
import transaction
from BTrees.OOBTree import OOBTree
from persistent import Persistent
from persistent.mapping import PersistentMapping
from ZODB.POSException import TransactionFailedError
from BTrees.OOBTree import OOBTree
import transaction
import unittest
import ZODB
import ZODB.FileStorage
import ZODB.MappingStorage
import ZODB.tests.util
from ZODB.POSException import TransactionFailedError
class P(Persistent):
......
......@@ -14,7 +14,8 @@
import unittest
import warnings
from .._compat import dumps, loads
from .._compat import dumps
from .._compat import loads
from ..Connection import TransactionMetaData
......
......@@ -12,10 +12,12 @@
#
##############################################################################
"""Test behavior of Connection plus cPickleCache."""
import doctest
import transaction
from persistent import Persistent
from ZODB.config import databaseFromString
import transaction
import doctest
class RecalcitrantObject(Persistent):
......
......@@ -14,6 +14,7 @@
import doctest
import unittest
__test__ = dict(
cross_db_refs_to_blank_db_name="""
......
......@@ -67,12 +67,15 @@ Clean up.
>>> db.close()
""" # noqa: E501 line too long
import re
import doctest
import re
import zope.testing.setupstack
import ZODB.tests.util
from zope.testing import renormalizing
import ZODB.tests.util
checker = renormalizing.RENormalizing([
# Normalizing this makes diffs easier to read
(re.compile(r'\btid=[0-9a-f]+\b'), 'tid=...'),
......
import unittest
from ZODB.utils import z64, u64
import ZODB
from ZODB.utils import u64
from ZODB.utils import z64
from .MVCCMappingStorage import MVCCMappingStorage
......
......@@ -21,13 +21,14 @@ storage tests against the test storage.
import bisect
import unittest
from ZODB.BaseStorage import BaseStorage
from ZODB import POSException
from ZODB.utils import z64
from ZODB.tests import StorageTestBase
from ZODB.tests import BasicStorage, MTStorage, Synchronization
from ZODB.BaseStorage import BaseStorage
from ZODB.tests import BasicStorage
from ZODB.tests import MTStorage
from ZODB.tests import RevisionStorage
from ZODB.tests import StorageTestBase
from ZODB.tests import Synchronization
from ZODB.utils import z64
class Transaction(object):
......
......@@ -11,32 +11,34 @@
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
from ZODB.blob import Blob
from ZODB.blob import BushyLayout
from ZODB.DB import DB
from ZODB.FileStorage import FileStorage
from ZODB.tests.testConfig import ConfigTestBase
from ZODB._compat import Pickler, Unpickler, _protocol
import doctest
import os
import random
import re
import struct
import sys
import time
import transaction
import unittest
from io import BytesIO
import transaction
import ZConfig
import zope.testing.renormalizing
import ZODB.blob
import ZODB.interfaces
import ZODB.tests.IteratorStorage
import ZODB.tests.StorageTestBase
import ZODB.tests.util
import zope.testing.renormalizing
from ZODB._compat import Pickler
from ZODB._compat import Unpickler
from ZODB._compat import _protocol
from ZODB.blob import Blob
from ZODB.blob import BushyLayout
from ZODB.DB import DB
from ZODB.FileStorage import FileStorage
from ZODB.tests.testConfig import ConfigTestBase
from io import BytesIO
try:
file_type = file
......
......@@ -11,18 +11,20 @@
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
import manuel.doctest
import manuel.footnote
import doctest
import unittest
import manuel.capture
import manuel.doctest
import manuel.footnote
import manuel.testing
import persistent
import transaction
import unittest
import zope.testing.module
import ZODB.ConflictResolution
import ZODB.tests.util
import ZODB.POSException
import zope.testing.module
import ZODB.tests.util
def setUp(test):
......
......@@ -12,8 +12,10 @@
#
##############################################################################
import doctest
import persistent
import unittest
import persistent
import ZODB.tests.util
......
......@@ -11,10 +11,11 @@
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
from os.path import join
import os
import doctest
import os
import unittest
from os.path import join
import manuel.capture
import manuel.doctest
import manuel.testing
......
......@@ -15,11 +15,15 @@ import doctest
import random
import unittest
from ZODB.fsIndex import fsIndex
from ZODB.utils import p64, z64
from ZODB.tests.util import setUp, tearDown
import six
from ZODB.fsIndex import fsIndex
from ZODB.tests.util import setUp
from ZODB.tests.util import tearDown
from ZODB.utils import p64
from ZODB.utils import z64
try:
xrange
except NameError:
......
......@@ -176,6 +176,7 @@ from .util import checker as util_checker
from .util import setUp
from .util import tearDown
checker = renormalizing.RENormalizing([
# Normalizing this makes diffs easier to read
(re.compile(r'\btid 0x[0-9a-f]+\b'), 'tid 0x...'),
......
......@@ -14,6 +14,7 @@
import manuel.doctest
import manuel.footnote
import manuel.testing
import ZODB.tests.util
......
......@@ -422,6 +422,7 @@ import re
from zope.testing import renormalizing
checker = renormalizing.RENormalizing([
# Python 3 bytes add a "b".
(re.compile("b('.*?')"), r"\1"),
......
......@@ -13,8 +13,10 @@
##############################################################################
import doctest
import sys
import transaction
import unittest
import transaction
import ZODB.persistentclass
import ZODB.tests.util
......
......@@ -13,36 +13,41 @@
##############################################################################
"""Conventience function for creating test databases
"""
# BBB
from ZODB.MappingStorage import DB # noqa: F401 import unused
import atexit
import doctest
import os
import pdb
import persistent
import re
import runpy
import sys
import tempfile
import time
import transaction
import unittest
import warnings
import ZODB.utils
from ZODB.Connection import TransactionMetaData
import persistent
import transaction
import zope.testing.setupstack
from zope.testing import renormalizing
import ZODB.utils
from ZODB.Connection import TransactionMetaData
# BBB
from ZODB.MappingStorage import DB # noqa: F401 import unused
try:
from unittest import mock
except ImportError:
import mock
import six
import functools
from time import time as _real_time
from time import gmtime as _real_gmtime
from time import time as _real_time
import six
_current_time = _real_time()
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment