summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Howitz <mh@gocept.com>2022-08-05 07:49:05 +0200
committerGitHub <noreply@github.com>2022-08-05 07:49:05 +0200
commitd466d9e0a60f98a69657e3624b2cb8788c8a3da2 (patch)
tree448d5c05c36c39ae5587144c508fa5949a49c5b0
parent1282a4a8d65fc53d66b01fe81c0f4b5c14f3b2f1 (diff)
downloadzope-schema-d466d9e0a60f98a69657e3624b2cb8788c8a3da2.tar.gz
Fix tox lint run + isort imports. (#114)
-rw-r--r--.github/workflows/tests.yml11
-rw-r--r--.gitignore1
-rw-r--r--.meta.toml2
-rw-r--r--CONTRIBUTING.md23
-rw-r--r--MANIFEST.in1
-rw-r--r--setup.cfg11
-rw-r--r--setup.py4
-rw-r--r--src/zope/schema/__init__.py14
-rw-r--r--src/zope/schema/_bootstrapfields.py14
-rw-r--r--src/zope/schema/_bootstrapinterfaces.py1
-rw-r--r--src/zope/schema/_compat.py1
-rw-r--r--src/zope/schema/_field.py94
-rw-r--r--src/zope/schema/_schema.py3
-rw-r--r--src/zope/schema/accessors.py5
-rw-r--r--src/zope/schema/fieldproperty.py6
-rw-r--r--src/zope/schema/interfaces.py9
-rw-r--r--src/zope/schema/tests/__init__.py3
-rw-r--r--src/zope/schema/tests/states.py2
-rw-r--r--src/zope/schema/tests/test__bootstrapfields.py64
-rw-r--r--src/zope/schema/tests/test__bootstrapinterfaces.py1
-rw-r--r--src/zope/schema/tests/test__field.py42
-rw-r--r--src/zope/schema/tests/test_accessors.py7
-rw-r--r--src/zope/schema/tests/test_fieldproperty.py25
-rw-r--r--src/zope/schema/tests/test_interfaces.py21
-rw-r--r--src/zope/schema/tests/test_schema.py7
-rw-r--r--src/zope/schema/tests/test_states.py6
-rw-r--r--src/zope/schema/tests/test_vocabulary.py14
-rw-r--r--tox.ini18
28 files changed, 259 insertions, 151 deletions
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 3880d7f..f9f622d 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -20,7 +20,7 @@ jobs:
- ubuntu
config:
# [Python version, tox env]
- - ["3.8", "lint"]
+ - ["3.9", "lint"]
- ["2.7", "py27"]
- ["3.5", "py35"]
- ["3.6", "py36"]
@@ -28,12 +28,13 @@ jobs:
- ["3.8", "py38"]
- ["3.9", "py39"]
- ["3.10", "py310"]
- - ["pypy2", "pypy"]
- - ["pypy3", "pypy3"]
- - ["3.8", "docs"]
- - ["3.8", "coverage"]
+ - ["pypy-2.7", "pypy"]
+ - ["pypy-3.7", "pypy3"]
+ - ["3.9", "docs"]
+ - ["3.9", "coverage"]
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.config[1] }}
steps:
- uses: actions/checkout@v2
diff --git a/.gitignore b/.gitignore
index c724a76..1f321f5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -28,4 +28,5 @@ lib64
log/
parts/
pyvenv.cfg
+testing.log
var/
diff --git a/.meta.toml b/.meta.toml
index 14348a8..2e9b52d 100644
--- a/.meta.toml
+++ b/.meta.toml
@@ -2,7 +2,7 @@
# https://github.com/zopefoundation/meta/tree/master/config/pure-python
[meta]
template = "pure-python"
-commit-id = "cf84a7fa675ab233c640c6208423a700b8cc874d"
+commit-id = "ae61f414cfef4e129d275679c6a76dc67b1a2c11"
[python]
with-pypy = true
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..31d95f0
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,23 @@
+<!--
+Generated from:
+https://github.com/zopefoundation/meta/tree/master/config/pure-python
+-->
+# Contributing to zopefoundation projects
+
+The projects under the zopefoundation GitHub organization are open source and
+welcome contributions in different forms:
+
+* bug reports
+* code improvements and bug fixes
+* documentation improvements
+* pull request reviews
+
+For any changes in the repository besides trivial typo fixes you are required
+to sign the contributor agreement. See
+https://www.zope.dev/developer/becoming-a-committer.html for details.
+
+Please visit our [Developer
+Guidelines](https://www.zope.dev/developer/guidelines.html) if you'd like to
+contribute code changes and our [guidelines for reporting
+bugs](https://www.zope.dev/developer/reporting-bugs.html) if you want to file a
+bug report.
diff --git a/MANIFEST.in b/MANIFEST.in
index 421aed6..24cc0f4 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,5 +1,6 @@
# Generated from:
# https://github.com/zopefoundation/meta/tree/master/config/pure-python
+include *.md
include *.rst
include *.txt
include buildout.cfg
diff --git a/setup.cfg b/setup.cfg
index 28dd07c..2cc42ae 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -13,3 +13,14 @@ ignore =
docs/_build/html/_sources/*
docs/_build/doctest/*
docs/_static
+
+[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
diff --git a/setup.py b/setup.py
index 36d39fb..0256e1c 100644
--- a/setup.py
+++ b/setup.py
@@ -19,7 +19,9 @@
"""Setup for zope.schema package
"""
import os
-from setuptools import setup, find_packages
+
+from setuptools import find_packages
+from setuptools import setup
def read(*rnames):
diff --git a/src/zope/schema/__init__.py b/src/zope/schema/__init__.py
index 7991016..537f775 100644
--- a/src/zope/schema/__init__.py
+++ b/src/zope/schema/__init__.py
@@ -13,8 +13,10 @@
##############################################################################
"""Schema package constructor
"""
+from zope.schema._bootstrapinterfaces import NO_VALUE
# Field APIs
from zope.schema._field import ASCII
+from zope.schema._field import URI
from zope.schema._field import ASCIILine
from zope.schema._field import Bool
from zope.schema._field import Bytes
@@ -58,22 +60,18 @@ from zope.schema._field import TextLine
from zope.schema._field import Time
from zope.schema._field import Timedelta
from zope.schema._field import Tuple
-from zope.schema._field import URI
-
# Schema APIs
-from zope.schema._schema import getFields
-from zope.schema._schema import getFieldsInOrder
from zope.schema._schema import getFieldNames
from zope.schema._schema import getFieldNamesInOrder
-from zope.schema._schema import getValidationErrors
+from zope.schema._schema import getFields
+from zope.schema._schema import getFieldsInOrder
from zope.schema._schema import getSchemaValidationErrors
-
+from zope.schema._schema import getValidationErrors
# Acessor API
from zope.schema.accessors import accessors
-
# Error API
from zope.schema.interfaces import ValidationError
-from zope.schema._bootstrapinterfaces import NO_VALUE
+
__all__ = [
'ASCII',
diff --git a/src/zope/schema/_bootstrapfields.py b/src/zope/schema/_bootstrapfields.py
index 760ae3e..e54eb02 100644
--- a/src/zope/schema/_bootstrapfields.py
+++ b/src/zope/schema/_bootstrapfields.py
@@ -23,17 +23,16 @@ import threading
import unicodedata
from math import isinf
+from zope.event import notify
from zope.interface import Attribute
-from zope.interface import Invalid
from zope.interface import Interface
-from zope.interface import providedBy
+from zope.interface import Invalid
from zope.interface import implementer
+from zope.interface import providedBy
from zope.interface.interface import InterfaceClass
from zope.interface.interfaces import IInterface
from zope.interface.interfaces import IMethod
-from zope.event import notify
-
from zope.schema._bootstrapinterfaces import ConstraintNotSatisfied
from zope.schema._bootstrapinterfaces import IBeforeObjectAssignedEvent
from zope.schema._bootstrapinterfaces import IContextAwareDefaultFactory
@@ -41,8 +40,8 @@ from zope.schema._bootstrapinterfaces import IFromBytes
from zope.schema._bootstrapinterfaces import IFromUnicode
from zope.schema._bootstrapinterfaces import IValidatable
from zope.schema._bootstrapinterfaces import NotAContainer
-from zope.schema._bootstrapinterfaces import NotAnIterator
from zope.schema._bootstrapinterfaces import NotAnInterface
+from zope.schema._bootstrapinterfaces import NotAnIterator
from zope.schema._bootstrapinterfaces import RequiredMissing
from zope.schema._bootstrapinterfaces import SchemaNotCorrectlyImplemented
from zope.schema._bootstrapinterfaces import SchemaNotFullyImplemented
@@ -54,10 +53,9 @@ from zope.schema._bootstrapinterfaces import TooShort
from zope.schema._bootstrapinterfaces import TooSmall
from zope.schema._bootstrapinterfaces import ValidationError
from zope.schema._bootstrapinterfaces import WrongType
-
-from zope.schema._compat import text_type
-from zope.schema._compat import integer_types
from zope.schema._compat import PY2
+from zope.schema._compat import integer_types
+from zope.schema._compat import text_type
class _NotGiven(object):
diff --git a/src/zope/schema/_bootstrapinterfaces.py b/src/zope/schema/_bootstrapinterfaces.py
index 8bddae1..7bf45d5 100644
--- a/src/zope/schema/_bootstrapinterfaces.py
+++ b/src/zope/schema/_bootstrapinterfaces.py
@@ -21,6 +21,7 @@ from zope.interface.interfaces import IInterface
from zope.schema._messageid import _
+
# pylint:disable=inherit-non-class,keyword-arg-before-vararg,
# pylint:disable=no-self-argument
diff --git a/src/zope/schema/_compat.py b/src/zope/schema/_compat.py
index 51a4716..45512a1 100644
--- a/src/zope/schema/_compat.py
+++ b/src/zope/schema/_compat.py
@@ -1,5 +1,6 @@
import sys
+
PY3 = sys.version_info[0] >= 3
PY2 = not PY3
diff --git a/src/zope/schema/_field.py b/src/zope/schema/_field.py
index c5e8ba1..44f8880 100644
--- a/src/zope/schema/_field.py
+++ b/src/zope/schema/_field.py
@@ -21,21 +21,47 @@ except ImportError: # pragma: PY2
# Python 2
import collections as abc
-from datetime import datetime
+import re
from datetime import date
-from datetime import timedelta
+from datetime import datetime
from datetime import time
-import re
-
+from datetime import timedelta
from zope.interface import classImplements
from zope.interface import classImplementsFirst
-from zope.interface import implementer
from zope.interface import implementedBy
+from zope.interface import implementer
from zope.interface.interfaces import IInterface
-
+from zope.schema._bootstrapfields import Bool
+from zope.schema._bootstrapfields import Complex
+from zope.schema._bootstrapfields import Container # API import for __init__
+from zope.schema._bootstrapfields import Decimal
+from zope.schema._bootstrapfields import Field
+from zope.schema._bootstrapfields import Int
+from zope.schema._bootstrapfields import Integral
+from zope.schema._bootstrapfields import \
+ InvalidDecimalLiteral # noqa: reexport
+from zope.schema._bootstrapfields import Iterable
+from zope.schema._bootstrapfields import MinMaxLen
+from zope.schema._bootstrapfields import Number
+from zope.schema._bootstrapfields import Object
+from zope.schema._bootstrapfields import Orderable
+from zope.schema._bootstrapfields import Password
+from zope.schema._bootstrapfields import Rational
+from zope.schema._bootstrapfields import Real
+from zope.schema._bootstrapfields import Text
+from zope.schema._bootstrapfields import TextLine
+from zope.schema._bootstrapfields import _NotGiven
+from zope.schema._compat import PY3
+from zope.schema._compat import binary_type
+from zope.schema._compat import make_binary
+from zope.schema._compat import string_types
+from zope.schema._compat import text_type
+from zope.schema.fieldproperty import FieldProperty
from zope.schema.interfaces import IASCII
+from zope.schema.interfaces import IURI
+from zope.schema.interfaces import ConstraintNotSatisfied
from zope.schema.interfaces import IASCIILine
from zope.schema.interfaces import IBaseVocabulary
from zope.schema.interfaces import IBool
@@ -57,25 +83,29 @@ from zope.schema.interfaces import IFromBytes
from zope.schema.interfaces import IFromUnicode
from zope.schema.interfaces import IFrozenSet
from zope.schema.interfaces import IId
-from zope.schema.interfaces import IIterable
from zope.schema.interfaces import IInt
from zope.schema.interfaces import IIntegral
from zope.schema.interfaces import IInterfaceField
+from zope.schema.interfaces import IIterable
from zope.schema.interfaces import IList
-from zope.schema.interfaces import IMinMaxLen
from zope.schema.interfaces import IMapping
+from zope.schema.interfaces import IMinMaxLen
from zope.schema.interfaces import IMutableMapping
from zope.schema.interfaces import IMutableSequence
from zope.schema.interfaces import INativeString
from zope.schema.interfaces import INativeStringLine
-from zope.schema.interfaces import IObject
from zope.schema.interfaces import INumber
+from zope.schema.interfaces import InvalidDottedName
+from zope.schema.interfaces import InvalidId
+from zope.schema.interfaces import InvalidURI
+from zope.schema.interfaces import InvalidValue
+from zope.schema.interfaces import IObject
from zope.schema.interfaces import IPassword
from zope.schema.interfaces import IPythonIdentifier
-from zope.schema.interfaces import IReal
from zope.schema.interfaces import IRational
-from zope.schema.interfaces import ISet
+from zope.schema.interfaces import IReal
from zope.schema.interfaces import ISequence
+from zope.schema.interfaces import ISet
from zope.schema.interfaces import ISource
from zope.schema.interfaces import ISourceText
from zope.schema.interfaces import IText
@@ -83,49 +113,15 @@ from zope.schema.interfaces import ITextLine
from zope.schema.interfaces import ITime
from zope.schema.interfaces import ITimedelta
from zope.schema.interfaces import ITuple
-from zope.schema.interfaces import IURI
-
+from zope.schema.interfaces import NotAnInterface
+from zope.schema.interfaces import NotUnique
from zope.schema.interfaces import ValidationError
-from zope.schema.interfaces import InvalidValue
-from zope.schema.interfaces import WrongType
from zope.schema.interfaces import WrongContainedType
-from zope.schema.interfaces import NotUnique
-from zope.schema.interfaces import NotAnInterface
-from zope.schema.interfaces import InvalidURI
-from zope.schema.interfaces import InvalidId
-from zope.schema.interfaces import InvalidDottedName
-from zope.schema.interfaces import ConstraintNotSatisfied
-
-from zope.schema._bootstrapfields import Field
-from zope.schema._bootstrapfields import Complex
-from zope.schema._bootstrapfields import Container # API import for __init__
-from zope.schema._bootstrapfields import Iterable
-from zope.schema._bootstrapfields import Orderable
-from zope.schema._bootstrapfields import Text
-from zope.schema._bootstrapfields import TextLine
-from zope.schema._bootstrapfields import Bool
-from zope.schema._bootstrapfields import Int
-from zope.schema._bootstrapfields import Integral
-from zope.schema._bootstrapfields import Number
-from zope.schema._bootstrapfields import InvalidDecimalLiteral # noqa: reexport
-from zope.schema._bootstrapfields import Decimal
-from zope.schema._bootstrapfields import Password
-from zope.schema._bootstrapfields import Rational
-from zope.schema._bootstrapfields import Real
-from zope.schema._bootstrapfields import MinMaxLen
-from zope.schema._bootstrapfields import _NotGiven
-from zope.schema._bootstrapfields import Object
-from zope.schema.fieldproperty import FieldProperty
-from zope.schema.vocabulary import getVocabularyRegistry
+from zope.schema.interfaces import WrongType
from zope.schema.vocabulary import SimpleVocabulary
+from zope.schema.vocabulary import getVocabularyRegistry
-from zope.schema._compat import text_type
-from zope.schema._compat import string_types
-from zope.schema._compat import binary_type
-from zope.schema._compat import PY3
-from zope.schema._compat import make_binary
-
# Fix up bootstrap field types
Field.title = FieldProperty(IField['title'])
Field.description = FieldProperty(IField['description'])
diff --git a/src/zope/schema/_schema.py b/src/zope/schema/_schema.py
index bd9d780..b4010c1 100644
--- a/src/zope/schema/_schema.py
+++ b/src/zope/schema/_schema.py
@@ -14,10 +14,11 @@
"""Schema convenience functions
"""
-from zope.schema._bootstrapfields import get_validation_errors
from zope.schema._bootstrapfields import get_schema_validation_errors
+from zope.schema._bootstrapfields import get_validation_errors
from zope.schema._bootstrapfields import getFields
+
__all__ = [
'getFieldNames',
'getFields',
diff --git a/src/zope/schema/accessors.py b/src/zope/schema/accessors.py
index 257eb7b..1b67e2d 100644
--- a/src/zope/schema/accessors.py
+++ b/src/zope/schema/accessors.py
@@ -34,9 +34,10 @@ Read accessors function as access method specifications and as field
specifications. Write accessors are solely method specifications.
"""
-from zope.interface import providedBy, implementedBy
-from zope.interface.interface import Method
+from zope.interface import implementedBy
+from zope.interface import providedBy
from zope.interface.declarations import Declaration
+from zope.interface.interface import Method
class FieldReadAccessor(Method):
diff --git a/src/zope/schema/fieldproperty.py b/src/zope/schema/fieldproperty.py
index cf31382..1a9c928 100644
--- a/src/zope/schema/fieldproperty.py
+++ b/src/zope/schema/fieldproperty.py
@@ -14,14 +14,16 @@
"""Computed attributes based on schema fields
"""
-from copy import copy
import sys
+from copy import copy
+
import zope.schema
-from zope import interface
from zope import event
+from zope import interface
from zope.schema import interfaces
from zope.schema._bootstrapinterfaces import NO_VALUE
+
_marker = object()
diff --git a/src/zope/schema/interfaces.py b/src/zope/schema/interfaces.py
index 266bd20..809ca19 100644
--- a/src/zope/schema/interfaces.py
+++ b/src/zope/schema/interfaces.py
@@ -20,7 +20,6 @@ from zope.interface import Interface
from zope.interface.common.mapping import IEnumerableMapping
from zope.interface.interfaces import IInterface
-
from zope.schema._bootstrapfields import Bool
from zope.schema._bootstrapfields import Complex
from zope.schema._bootstrapfields import Decimal
@@ -33,7 +32,6 @@ from zope.schema._bootstrapfields import Rational
from zope.schema._bootstrapfields import Real
from zope.schema._bootstrapfields import Text
from zope.schema._bootstrapfields import TextLine
-
# Import from _bootstrapinterfaces only because other packages will expect
# to find these interfaces here.
from zope.schema._bootstrapinterfaces import ConstraintNotSatisfied
@@ -41,8 +39,8 @@ from zope.schema._bootstrapinterfaces import IBeforeObjectAssignedEvent
from zope.schema._bootstrapinterfaces import IContextAwareDefaultFactory
from zope.schema._bootstrapinterfaces import IFromBytes
from zope.schema._bootstrapinterfaces import IFromUnicode
-from zope.schema._bootstrapinterfaces import IValidatable
from zope.schema._bootstrapinterfaces import InvalidValue
+from zope.schema._bootstrapinterfaces import IValidatable
from zope.schema._bootstrapinterfaces import LenOutOfBounds
from zope.schema._bootstrapinterfaces import NotAContainer
from zope.schema._bootstrapinterfaces import NotAnInterface
@@ -61,11 +59,10 @@ from zope.schema._bootstrapinterfaces import TooSmall
from zope.schema._bootstrapinterfaces import ValidationError
from zope.schema._bootstrapinterfaces import WrongContainedType
from zope.schema._bootstrapinterfaces import WrongType
-
from zope.schema._compat import PY3
-
from zope.schema._messageid import _
+
__all__ = [
# Exceptions
'ConstraintNotSatisfied',
@@ -1091,7 +1088,7 @@ class IVocabularyFactory(Interface):
"""
def __call__(context):
- """The *context* provides a location that the vocabulary can make use of.
+ """The *context* provides a location that vocabulary can make use of.
"""
diff --git a/src/zope/schema/tests/__init__.py b/src/zope/schema/tests/__init__.py
index f6718f0..46a4c7e 100644
--- a/src/zope/schema/tests/__init__.py
+++ b/src/zope/schema/tests/__init__.py
@@ -3,9 +3,10 @@
import re
-from zope.schema._compat import PY3
from zope.testing import renormalizing
+from zope.schema._compat import PY3
+
def _make_transforms(patterns):
return [(re.compile(pattern), repl) for pattern, repl in patterns]
diff --git a/src/zope/schema/tests/states.py b/src/zope/schema/tests/states.py
index dc3ca70..c7815d5 100644
--- a/src/zope/schema/tests/states.py
+++ b/src/zope/schema/tests/states.py
@@ -15,8 +15,10 @@
"""
from zope.interface import implementer
+
from zope.schema import interfaces
+
# This table is based on information from the United States Postal Service:
# http://www.usps.com/ncsc/lookups/abbreviations.html#states
_states = {
diff --git a/src/zope/schema/tests/test__bootstrapfields.py b/src/zope/schema/tests/test__bootstrapfields.py
index 5994d39..d903ba0 100644
--- a/src/zope/schema/tests/test__bootstrapfields.py
+++ b/src/zope/schema/tests/test__bootstrapfields.py
@@ -13,8 +13,9 @@
##############################################################################
import decimal
import doctest
-import unittest
import unicodedata
+import unittest
+
# pylint:disable=protected-access,inherit-non-class,blacklisted-name
# pylint:disable=attribute-defined-outside-init
@@ -64,8 +65,8 @@ class InterfaceConformanceTestsMixin(object):
self.assertIs(self._getTargetInterface(), implemented.__sro__[1])
def test_implements_consistent__sro__(self):
- from zope.interface import ro
from zope.interface import implementedBy
+ from zope.interface import ro
__traceback_info__ = implementedBy(self._getTargetClass()).__sro__
self.assertTrue(
ro.is_consistent(implementedBy(self._getTargetClass())))
@@ -379,8 +380,9 @@ class DefaultPropertyTests(unittest.TestCase):
def test___get___w_defaultFactory_w_ICAF_w_check(self):
from zope.interface import directlyProvides
- from zope.schema._bootstrapinterfaces \
- import IContextAwareDefaultFactory
+
+ from zope.schema._bootstrapinterfaces import \
+ IContextAwareDefaultFactory
_checked = []
def _check(inst, value):
@@ -476,7 +478,9 @@ class FieldTests(EqualityTestsMixin,
""")
)
- field = self._makeOne(title=u'A title', description=u"""Multiline description.
+ field = self._makeOne(
+ title=u'A title',
+ description=u"""Multiline description.
Some lines have leading whitespace.
@@ -506,6 +510,7 @@ class FieldTests(EqualityTestsMixin,
# The exact value of the description is preserved,
# allowing for MessageID objects.
import textwrap
+
from zope.i18nmessageid import MessageFactory
msg_factory = MessageFactory('zope')
@@ -1225,15 +1230,15 @@ class NumberTests(EqualityTestsMixin,
return INumber
def test_class_conforms_to_iface(self):
- from zope.schema._bootstrapinterfaces import IFromUnicode
from zope.schema._bootstrapinterfaces import IFromBytes
+ from zope.schema._bootstrapinterfaces import IFromUnicode
verifyClass = super(NumberTests, self).test_class_conforms_to_iface()
verifyClass(IFromUnicode, self._getTargetClass())
verifyClass(IFromBytes, self._getTargetClass())
def test_instance_conforms_to_iface(self):
- from zope.schema._bootstrapinterfaces import IFromUnicode
from zope.schema._bootstrapinterfaces import IFromBytes
+ from zope.schema._bootstrapinterfaces import IFromUnicode
verifyObject = (
super(NumberTests, self).test_instance_conforms_to_iface())
verifyObject(IFromUnicode, self._makeOne())
@@ -1440,8 +1445,9 @@ class ObjectTests(EqualityTestsMixin,
def _makeCycles(self):
from zope.interface import Interface
from zope.interface import implementer
- from zope.schema import Object
+
from zope.schema import List
+ from zope.schema import Object
from zope.schema._messageid import _
class IUnit(Interface):
@@ -1486,11 +1492,13 @@ class ObjectTests(EqualityTestsMixin,
def test_class_conforms_to_IObject(self):
from zope.interface.verify import verifyClass
+
from zope.schema.interfaces import IObject
verifyClass(IObject, self._getTargetClass())
def test_instance_conforms_to_IObject(self):
from zope.interface.verify import verifyObject
+
from zope.schema.interfaces import IObject
verifyObject(IObject, self._makeOne())
@@ -1514,8 +1522,8 @@ class ObjectTests(EqualityTestsMixin,
objf.validate(object()) # doesn't raise
def test__validate_w_value_not_providing_schema(self):
- from zope.schema.interfaces import SchemaNotProvided
from zope.schema._bootstrapfields import Text
+ from zope.schema.interfaces import SchemaNotProvided
schema = self._makeSchema(foo=Text(), bar=Text())
objf = self._makeOne(schema)
bad_value = object()
@@ -1529,9 +1537,10 @@ class ObjectTests(EqualityTestsMixin,
def test__validate_w_value_providing_schema_but_missing_fields(self):
from zope.interface import implementer
- from zope.schema.interfaces import SchemaNotFullyImplemented
- from zope.schema.interfaces import SchemaNotCorrectlyImplemented
+
from zope.schema._bootstrapfields import Text
+ from zope.schema.interfaces import SchemaNotCorrectlyImplemented
+ from zope.schema.interfaces import SchemaNotFullyImplemented
schema = self._makeSchema(foo=Text(), bar=Text())
@implementer(schema)
@@ -1576,11 +1585,12 @@ class ObjectTests(EqualityTestsMixin,
def test__validate_w_value_providing_schema_but_invalid_fields(self):
from zope.interface import implementer
- from zope.schema.interfaces import SchemaNotCorrectlyImplemented
- from zope.schema.interfaces import RequiredMissing
- from zope.schema.interfaces import WrongType
+
from zope.schema._bootstrapfields import Text
from zope.schema._compat import text_type
+ from zope.schema.interfaces import RequiredMissing
+ from zope.schema.interfaces import SchemaNotCorrectlyImplemented
+ from zope.schema.interfaces import WrongType
schema = self._makeSchema(foo=Text(), bar=Text())
@implementer(schema)
@@ -1617,6 +1627,7 @@ class ObjectTests(EqualityTestsMixin,
def test__validate_w_value_providing_schema(self):
from zope.interface import implementer
+
from zope.schema._bootstrapfields import Text
from zope.schema._field import Choice
@@ -1691,9 +1702,10 @@ class ObjectTests(EqualityTestsMixin,
def test_set_emits_IBOAE(self):
from zope.event import subscribers
from zope.interface import implementer
- from zope.schema.interfaces import IBeforeObjectAssignedEvent
+
from zope.schema._bootstrapfields import Text
from zope.schema._field import Choice
+ from zope.schema.interfaces import IBeforeObjectAssignedEvent
schema = self._makeSchema(
foo=Text(),
@@ -1722,6 +1734,7 @@ class ObjectTests(EqualityTestsMixin,
def test_set_allows_IBOAE_subscr_to_replace_value(self):
from zope.event import subscribers
from zope.interface import implementer
+
from zope.schema._bootstrapfields import Text
from zope.schema._field import Choice
@@ -1756,12 +1769,13 @@ class ObjectTests(EqualityTestsMixin,
self.assertEqual(log[-1].context, inst)
def test_validates_invariants_by_default(self):
- from zope.interface import invariant
from zope.interface import Interface
- from zope.interface import implementer
from zope.interface import Invalid
- from zope.schema import Text
+ from zope.interface import implementer
+ from zope.interface import invariant
+
from zope.schema import Bytes
+ from zope.schema import Text
class ISchema(Interface):
@@ -1840,15 +1854,18 @@ class ObjectTests(EqualityTestsMixin,
def test_bound_field_of_collection_with_choice(self):
# https://github.com/zopefoundation/zope.schema/issues/17
- from zope.interface import Interface, implementer
from zope.interface import Attribute
+ from zope.interface import Interface
+ from zope.interface import implementer
- from zope.schema import Choice, Object, Set
+ from zope.schema import Choice
+ from zope.schema import Object
+ from zope.schema import Set
from zope.schema.fieldproperty import FieldProperty
- from zope.schema.interfaces import IContextSourceBinder
- from zope.schema.interfaces import WrongContainedType
from zope.schema.interfaces import ConstraintNotSatisfied
+ from zope.schema.interfaces import IContextSourceBinder
from zope.schema.interfaces import SchemaNotCorrectlyImplemented
+ from zope.schema.interfaces import WrongContainedType
from zope.schema.vocabulary import SimpleVocabulary
@implementer(IContextSourceBinder)
@@ -1946,8 +1963,9 @@ class DummyInst(object):
def test_suite():
- import zope.schema._bootstrapfields
from zope.testing.renormalizing import IGNORE_EXCEPTION_MODULE_IN_PYTHON2
+
+ import zope.schema._bootstrapfields
suite = unittest.defaultTestLoader.loadTestsFromName(__name__)
suite.addTests(doctest.DocTestSuite(
zope.schema._bootstrapfields,
diff --git a/src/zope/schema/tests/test__bootstrapinterfaces.py b/src/zope/schema/tests/test__bootstrapinterfaces.py
index 385fa1c..f7bdc56 100644
--- a/src/zope/schema/tests/test__bootstrapinterfaces.py
+++ b/src/zope/schema/tests/test__bootstrapinterfaces.py
@@ -13,6 +13,7 @@
##############################################################################
import unittest
+
try:
compare = cmp
except NameError:
diff --git a/src/zope/schema/tests/test__field.py b/src/zope/schema/tests/test__field.py
index e7864a5..5f25bb5 100644
--- a/src/zope/schema/tests/test__field.py
+++ b/src/zope/schema/tests/test__field.py
@@ -17,11 +17,11 @@ import unittest
from zope.schema.tests.test__bootstrapfields import EqualityTestsMixin
from zope.schema.tests.test__bootstrapfields import LenTestsMixin
+from zope.schema.tests.test__bootstrapfields import NumberTests
from zope.schema.tests.test__bootstrapfields import OrderableMissingValueMixin
from zope.schema.tests.test__bootstrapfields import OrderableTestsMixin
from zope.schema.tests.test__bootstrapfields import WrongTypeTestsMixin
-from zope.schema.tests.test__bootstrapfields import NumberTests
# pylint:disable=protected-access
# pylint:disable=too-many-lines
@@ -43,8 +43,8 @@ class BytesTests(EqualityTestsMixin,
return IBytes
def _getTargetInterfaces(self):
- from zope.schema.interfaces import IFromUnicode
from zope.schema.interfaces import IFromBytes
+ from zope.schema.interfaces import IFromUnicode
return [self._getTargetInterface(), IFromUnicode, IFromBytes]
def test_validate_wrong_types(self):
@@ -160,8 +160,8 @@ class BytesLineTests(EqualityTestsMixin,
return IBytesLine
def _getTargetInterfaces(self):
- from zope.schema.interfaces import IFromUnicode
from zope.schema.interfaces import IFromBytes
+ from zope.schema.interfaces import IFromUnicode
return [self._getTargetInterface(), IFromUnicode, IFromBytes]
def test_validate_wrong_types(self):
@@ -440,6 +440,7 @@ class TimedeltaTests(OrderableMissingValueMixin,
def test_validate_required(self):
from datetime import timedelta
+
from zope.schema.interfaces import RequiredMissing
field = self._makeOne()
field.validate(timedelta(minutes=15))
@@ -477,6 +478,7 @@ class TimeTests(OrderableMissingValueMixin,
def test_validate_required(self):
from datetime import time
+
from zope.schema.interfaces import RequiredMissing
field = self._makeOne()
field.validate(time(12, 15, 37))
@@ -585,8 +587,9 @@ class ChoiceTests(EqualityTestsMixin,
def test_bind_w_voc_not_ICSB(self):
from zope.interface import implementer
- from zope.schema.interfaces import ISource
+
from zope.schema.interfaces import IBaseVocabulary
+ from zope.schema.interfaces import ISource
@implementer(IBaseVocabulary)
@implementer(ISource)
@@ -601,6 +604,7 @@ class ChoiceTests(EqualityTestsMixin,
def test_bind_w_voc_is_ICSB(self):
from zope.interface import implementer
+
from zope.schema.interfaces import IContextSourceBinder
from zope.schema.interfaces import ISource
@@ -623,6 +627,7 @@ class ChoiceTests(EqualityTestsMixin,
def test_bind_w_voc_is_ICSB_but_not_ISource(self):
from zope.interface import implementer
+
from zope.schema.interfaces import IContextSourceBinder
@implementer(IContextSourceBinder)
@@ -750,6 +755,7 @@ class ChoiceTests(EqualityTestsMixin,
def test__validate_source_is_ICSB_unbound(self):
from zope.interface import implementer
+
from zope.schema.interfaces import IContextSourceBinder
@implementer(IContextSourceBinder)
@@ -762,8 +768,9 @@ class ChoiceTests(EqualityTestsMixin,
def test__validate_source_is_ICSB_bound(self):
from zope.interface import implementer
- from zope.schema.interfaces import IContextSourceBinder
+
from zope.schema.interfaces import ConstraintNotSatisfied
+ from zope.schema.interfaces import IContextSourceBinder
from zope.schema.tests.test_vocabulary import _makeSampleVocabulary
@implementer(IContextSourceBinder)
@@ -795,8 +802,8 @@ class URITests(EqualityTestsMixin,
return IURI
def _getTargetInterfaces(self):
- from zope.schema.interfaces import IFromUnicode
from zope.schema.interfaces import IFromBytes
+ from zope.schema.interfaces import IFromUnicode
return [self._getTargetInterface(), IFromUnicode, IFromBytes]
def test_validate_wrong_types(self):
@@ -868,8 +875,8 @@ class PythonIdentifierTests(EqualityTestsMixin,
return PythonIdentifier
def _getTargetInterfaces(self):
- from zope.schema.interfaces import IFromUnicode
from zope.schema.interfaces import IFromBytes
+ from zope.schema.interfaces import IFromUnicode
return [self._getTargetInterface(), IFromUnicode, IFromBytes]
def _getTargetInterface(self):
@@ -917,8 +924,8 @@ class DottedNameTests(EqualityTestsMixin,
return IDottedName
def _getTargetInterfaces(self):
- from zope.schema.interfaces import IFromUnicode
from zope.schema.interfaces import IFromBytes
+ from zope.schema.interfaces import IFromUnicode
return [self._getTargetInterface(), IFromUnicode, IFromBytes]
def test_ctor_defaults(self):
@@ -1042,8 +1049,8 @@ class IdTests(EqualityTestsMixin,
return IId
def _getTargetInterfaces(self):
- from zope.schema.interfaces import IFromUnicode
from zope.schema.interfaces import IFromBytes
+ from zope.schema.interfaces import IFromUnicode
return [self._getTargetInterface(), IFromUnicode, IFromBytes]
def test_validate_wrong_types(self):
@@ -1127,9 +1134,10 @@ class InterfaceFieldTests(EqualityTestsMixin,
return IInterfaceField
def test_validate_wrong_types(self):
- from zope.interface.interfaces import IInterface
from datetime import date
+ from zope.interface.interfaces import IInterface
+
field = self._makeOne()
self.assertAllRaiseWrongType(
field,
@@ -1158,6 +1166,7 @@ class InterfaceFieldTests(EqualityTestsMixin,
def test_validate_required(self):
from zope.interface import Interface
+
from zope.schema.interfaces import RequiredMissing
class DummyInterface(Interface):
@@ -1258,9 +1267,9 @@ class CollectionTests(EqualityTestsMixin,
self.assertEqual(bound.unique, True)
def test__validate_wrong_contained_type(self):
+ from zope.schema._bootstrapfields import Text
from zope.schema.interfaces import WrongContainedType
from zope.schema.interfaces import WrongType
- from zope.schema._bootstrapfields import Text
text = Text()
absc = self._makeOne(text)
with self.assertRaises(WrongContainedType) as exc:
@@ -1275,9 +1284,9 @@ class CollectionTests(EqualityTestsMixin,
self.assertIs(wct.errors[0].expected_type, text._type)
def test__validate_miss_uniqueness(self):
+ from zope.schema._bootstrapfields import Text
from zope.schema.interfaces import NotUnique
from zope.schema.interfaces import WrongType
- from zope.schema._bootstrapfields import Text
text = Text()
absc = self._makeOne(text, True)
@@ -1568,9 +1577,9 @@ class MappingTests(EqualityTestsMixin,
self.assertRaises(RequiredMissing, field.validate, None)
def test_validate_invalid_key_type(self):
+ from zope.schema._bootstrapfields import Int
from zope.schema.interfaces import WrongContainedType
from zope.schema.interfaces import WrongType
- from zope.schema._bootstrapfields import Int
field = self._makeOne(key_type=Int())
field.validate({})
field.validate({1: 'b', 2: 'd'})
@@ -1587,9 +1596,9 @@ class MappingTests(EqualityTestsMixin,
self.assertIs(field.key_type._type, wct.errors[0].expected_type)
def test_validate_invalid_value_type(self):
+ from zope.schema._bootstrapfields import Int
from zope.schema.interfaces import WrongContainedType
from zope.schema.interfaces import WrongType
- from zope.schema._bootstrapfields import Int
field = self._makeOne(value_type=Int())
field.validate({})
field.validate({'b': 1, 'd': 2})
@@ -1727,8 +1736,8 @@ class NativeStringTests(EqualityTestsMixin,
return INativeString
def _getTargetInterfaces(self):
- from zope.schema.interfaces import IFromUnicode
from zope.schema.interfaces import IFromBytes
+ from zope.schema.interfaces import IFromUnicode
return [self._getTargetInterface(), IFromUnicode, IFromBytes]
def test_fromBytes(self):
@@ -1756,8 +1765,8 @@ class NativeStringLineTests(EqualityTestsMixin,
return INativeStringLine
def _getTargetInterfaces(self):
- from zope.schema.interfaces import IFromUnicode
from zope.schema.interfaces import IFromBytes
+ from zope.schema.interfaces import IFromUnicode
return [self._getTargetInterface(), IFromUnicode, IFromBytes]
def test_fromBytes(self):
@@ -1790,6 +1799,7 @@ class StrippedNativeStringLineTests(NativeStringLineTests):
def _makeSampleVocabulary():
from zope.interface import implementer
+
from zope.schema.interfaces import IVocabulary
@implementer(IVocabulary)
diff --git a/src/zope/schema/tests/test_accessors.py b/src/zope/schema/tests/test_accessors.py
index 74bd0a2..531fe47 100644
--- a/src/zope/schema/tests/test_accessors.py
+++ b/src/zope/schema/tests/test_accessors.py
@@ -15,6 +15,7 @@
"""
import unittest
+
# pylint:disable=inherit-non-class
@@ -41,6 +42,7 @@ class FieldReadAccessorTests(unittest.TestCase):
def test_ctor_created_inside_interface(self):
from zope.interface import Interface
+
from zope.schema import Text
field = Text(title=u'Hmm')
@@ -63,6 +65,7 @@ class FieldReadAccessorTests(unittest.TestCase):
from zope.interface import providedBy
from zope.interface.interfaces import IAttribute
from zope.interface.interfaces import IMethod
+
from zope.schema import Text
# When wrapping a field that provides stuff,
@@ -170,6 +173,7 @@ class FieldReadAccessorTests(unittest.TestCase):
def test_set_readonly(self):
from zope.interface import Interface
+
from zope.schema import Text
field = Text(readonly=True)
@@ -257,6 +261,7 @@ class FieldWriteAccessorTests(unittest.TestCase):
def test_ctor_created_inside_interface(self):
from zope.interface import Interface
+
from zope.schema import Text
field = Text(title=u'Hmm')
@@ -290,6 +295,7 @@ class Test_accessors(unittest.TestCase):
def test_w_only_read_accessor(self):
from zope.interface import Interface
+
from zope.schema import Text
field = Text(title=u'Hmm', readonly=True)
@@ -310,6 +316,7 @@ class Test_accessors(unittest.TestCase):
def test_w_read_and_write_accessors(self):
from zope.interface import Interface
+
from zope.schema import Text
field = Text(title=u'Hmm')
diff --git a/src/zope/schema/tests/test_fieldproperty.py b/src/zope/schema/tests/test_fieldproperty.py
index d5d090b..492d258 100644
--- a/src/zope/schema/tests/test_fieldproperty.py
+++ b/src/zope/schema/tests/test_fieldproperty.py
@@ -266,11 +266,12 @@ class FieldPropertyTests(_Base, _Integration):
self.assertEqual(_validated, ['123'])
def test_field_event(self):
- from zope.schema import Text
- from zope.interface.verify import verifyObject
from zope.event import subscribers
- from zope.schema.interfaces import IFieldUpdatedEvent
+ from zope.interface.verify import verifyObject
+
+ from zope.schema import Text
from zope.schema.fieldproperty import FieldUpdatedEvent
+ from zope.schema.interfaces import IFieldUpdatedEvent
log = []
subscribers.append(log.append)
self.assertEqual(log, [])
@@ -300,11 +301,12 @@ class FieldPropertyTests(_Base, _Integration):
self.assertEqual(event.object, marker)
def test_field_event_update(self):
- from zope.schema import Text
- from zope.interface.verify import verifyObject
from zope.event import subscribers
- from zope.schema.interfaces import IFieldUpdatedEvent
+ from zope.interface.verify import verifyObject
+
+ from zope.schema import Text
from zope.schema.fieldproperty import FieldUpdatedEvent
+ from zope.schema.interfaces import IFieldUpdatedEvent
field = Text(
__name__='testing',
description=u'DESCRIPTION',
@@ -588,9 +590,9 @@ class FieldPropertyStoredThroughFieldTests(_Base, _Integration):
self.assertRaises(ValueError, setattr, foo, 'testing', '123')
def test_field_event_update(self):
- from zope.schema import Text
-
from zope.event import subscribers
+
+ from zope.schema import Text
from zope.schema.fieldproperty import FieldUpdatedEvent
field = Text(
__name__='testing',
@@ -619,9 +621,9 @@ class FieldPropertyStoredThroughFieldTests(_Base, _Integration):
def test_field_event(self):
# fieldproperties are everywhere including in field themselfs
# so event are triggered
- from zope.schema import Text
-
from zope.event import subscribers
+
+ from zope.schema import Text
from zope.schema.fieldproperty import FieldUpdatedEvent
log = []
subscribers.append(log.append)
@@ -648,6 +650,7 @@ class FieldPropertyStoredThroughFieldTests(_Base, _Integration):
def _getSchema():
from zope.interface import Interface
+
from zope.schema import Bytes
from zope.schema import Float
from zope.schema import Text
@@ -666,8 +669,8 @@ class CreateFieldPropertiesTests(unittest.TestCase):
"""Testing ..fieldproperty.createFieldProperties."""
def test_creates_fieldproperties_on_class(self):
- from zope.schema.fieldproperty import createFieldProperties
from zope.schema.fieldproperty import FieldProperty
+ from zope.schema.fieldproperty import createFieldProperties
schema = _getSchema()
class Dummy(object):
diff --git a/src/zope/schema/tests/test_interfaces.py b/src/zope/schema/tests/test_interfaces.py
index ecfb561..249776f 100644
--- a/src/zope/schema/tests/test_interfaces.py
+++ b/src/zope/schema/tests/test_interfaces.py
@@ -22,11 +22,11 @@ class Test__is_field(unittest.TestCase):
self.assertEqual(self._callFUT(object()), False)
def test_w_normal_fields(self):
- from zope.schema import Text
from zope.schema import Bytes
- from zope.schema import Int
- from zope.schema import Float
from zope.schema import Decimal
+ from zope.schema import Float
+ from zope.schema import Int
+ from zope.schema import Text
self.assertEqual(self._callFUT(Text()), True)
self.assertEqual(self._callFUT(Bytes()), True)
self.assertEqual(self._callFUT(Int()), True)
@@ -35,6 +35,7 @@ class Test__is_field(unittest.TestCase):
def test_w_explicitly_provided(self):
from zope.interface import directlyProvides
+
from zope.schema.interfaces import IField
class Foo(object):
@@ -62,11 +63,11 @@ class Test__fields(unittest.TestCase):
self.assertEqual(self._callFUT([object()]), False)
def test_w_fields(self):
- from zope.schema import Text
from zope.schema import Bytes
- from zope.schema import Int
- from zope.schema import Float
from zope.schema import Decimal
+ from zope.schema import Float
+ from zope.schema import Int
+ from zope.schema import Text
self.assertEqual(self._callFUT([Text()]), True)
self.assertEqual(self._callFUT([Bytes()]), True)
self.assertEqual(self._callFUT([Int()]), True)
@@ -78,11 +79,11 @@ class Test__fields(unittest.TestCase):
)
def test_w_mixed(self):
- from zope.schema import Text
from zope.schema import Bytes
- from zope.schema import Int
- from zope.schema import Float
from zope.schema import Decimal
+ from zope.schema import Float
+ from zope.schema import Int
+ from zope.schema import Text
self.assertEqual(self._callFUT([Text(), 0]), False)
self.assertEqual(
self._callFUT([Text(), Bytes(), Int(), Float(), Decimal(), 0]),
@@ -93,6 +94,7 @@ class Test__fields(unittest.TestCase):
"""If class Bool is used as a schema itself, it must not be required.
"""
from zope.schema.interfaces import IBool
+
# treat IBool as schema with fields
field = IBool.get("required")
self.assertFalse(field.required)
@@ -101,6 +103,7 @@ class Test__fields(unittest.TestCase):
"""If class Bool is used as a schema itself, it must default to False
"""
from zope.schema.interfaces import IBool
+
# treat IBool as schema with fields
field = IBool.get("default")
self.assertFalse(field.default)
diff --git a/src/zope/schema/tests/test_schema.py b/src/zope/schema/tests/test_schema.py
index e19dfeb..6172abe 100644
--- a/src/zope/schema/tests/test_schema.py
+++ b/src/zope/schema/tests/test_schema.py
@@ -19,6 +19,7 @@ import unittest
def _makeSchema():
from zope.interface import Interface
+
from zope.schema import Bytes
class ISchemaTest(Interface):
@@ -160,6 +161,7 @@ class Test_getValidationErrors(unittest.TestCase):
def test_schema_with_field_errors(self):
from zope.interface import Interface
+
from zope.schema import Text
from zope.schema.interfaces import SchemaNotFullyImplemented
@@ -209,8 +211,8 @@ class Test_getSchemaValidationErrors(unittest.TestCase):
return getSchemaValidationErrors(schema, object)
def test_schema_wo_fields(self):
- from zope.interface import Interface
from zope.interface import Attribute
+ from zope.interface import Interface
class INoFields(Interface):
def method():
@@ -222,6 +224,7 @@ class Test_getSchemaValidationErrors(unittest.TestCase):
def test_schema_with_fields_ok(self):
from zope.interface import Interface
+
from zope.schema import Text
class IWithFields(Interface):
@@ -237,6 +240,7 @@ class Test_getSchemaValidationErrors(unittest.TestCase):
def test_schema_with_missing_field(self):
from zope.interface import Interface
+
from zope.schema import Text
from zope.schema.interfaces import SchemaNotFullyImplemented
@@ -253,6 +257,7 @@ class Test_getSchemaValidationErrors(unittest.TestCase):
def test_schema_with_invalid_field(self):
from zope.interface import Interface
+
from zope.schema import Int
from zope.schema.interfaces import TooSmall
diff --git a/src/zope/schema/tests/test_states.py b/src/zope/schema/tests/test_states.py
index 7b81cc1..bc1d7a5 100644
--- a/src/zope/schema/tests/test_states.py
+++ b/src/zope/schema/tests/test_states.py
@@ -19,9 +19,9 @@ import unittest
class StateSelectionTest(unittest.TestCase):
def setUp(self):
+ from zope.schema.tests.states import StateVocabulary
from zope.schema.vocabulary import _clear
from zope.schema.vocabulary import getVocabularyRegistry
- from zope.schema.tests.states import StateVocabulary
_clear()
vr = getVocabularyRegistry()
vr.register("states", StateVocabulary)
@@ -33,6 +33,7 @@ class StateSelectionTest(unittest.TestCase):
def _makeSchema(self):
from zope.interface import Interface
+
from zope.schema import Choice
from zope.schema.tests.states import StateVocabulary
@@ -63,6 +64,7 @@ class StateSelectionTest(unittest.TestCase):
def test_default_presentation(self):
from zope.interface.verify import verifyObject
+
from zope.schema.interfaces import IVocabulary
schema = self._makeSchema()
field = schema.getDescriptionFor("state1")
@@ -72,6 +74,7 @@ class StateSelectionTest(unittest.TestCase):
def test_contains(self):
from zope.interface.verify import verifyObject
+
from zope.schema.interfaces import IVocabulary
from zope.schema.tests.states import StateVocabulary
vocab = StateVocabulary()
@@ -91,6 +94,7 @@ class StateSelectionTest(unittest.TestCase):
def test_prebound_vocabulary(self):
from zope.interface.verify import verifyObject
+
from zope.schema.interfaces import IVocabulary
schema = self._makeSchema()
field = schema.getDescriptionFor("state3")
diff --git a/src/zope/schema/tests/test_vocabulary.py b/src/zope/schema/tests/test_vocabulary.py
index eef246b..24383df 100644
--- a/src/zope/schema/tests/test_vocabulary.py
+++ b/src/zope/schema/tests/test_vocabulary.py
@@ -27,11 +27,13 @@ class SimpleTermTests(unittest.TestCase):
def test_class_conforms_to_ITokenizedTerm(self):
from zope.interface.verify import verifyClass
+
from zope.schema.interfaces import ITokenizedTerm
verifyClass(ITokenizedTerm, self._getTargetClass())
def test_instance_conforms_to_ITokenizedTerm(self):
from zope.interface.verify import verifyObject
+
from zope.schema.interfaces import ITokenizedTerm
verifyObject(ITokenizedTerm, self._makeOne('VALUE'))
@@ -116,16 +118,19 @@ class SimpleVocabularyTests(unittest.TestCase):
def test_class_conforms_to_IVocabularyTokenized(self):
from zope.interface.verify import verifyClass
+
from zope.schema.interfaces import IVocabularyTokenized
verifyClass(IVocabularyTokenized, self._getTargetClass())
def test_instance_conforms_to_IVocabularyTokenized(self):
from zope.interface.verify import verifyObject
+
from zope.schema.interfaces import IVocabularyTokenized
verifyObject(IVocabularyTokenized, self._makeOne(()))
def test_ctor_additional_interfaces(self):
from zope.interface import Interface
+
from zope.schema.vocabulary import SimpleTerm
class IStupid(Interface):
@@ -146,6 +151,7 @@ class SimpleVocabularyTests(unittest.TestCase):
def test_fromValues(self):
from zope.interface import Interface
+
from zope.schema.interfaces import ITokenizedTerm
class IStupid(Interface):
@@ -162,6 +168,7 @@ class SimpleVocabularyTests(unittest.TestCase):
def test_fromItems(self):
from zope.interface import Interface
+
from zope.schema.interfaces import ITokenizedTerm
class IStupid(Interface):
@@ -179,6 +186,7 @@ class SimpleVocabularyTests(unittest.TestCase):
def test_fromItems_triples(self):
from zope.interface import Interface
+
from zope.schema.interfaces import ITitledTokenizedTerm
class IStupid(Interface):
@@ -363,8 +371,9 @@ class TreeVocabularyTests(unittest.TestCase):
self.assertTrue(ITitledTokenizedTerm.providedBy(term))
def test_implementation(self):
- from zope.interface.verify import verifyObject
from zope.interface.common.mapping import IEnumerableMapping
+ from zope.interface.verify import verifyObject
+
from zope.schema.interfaces import ITreeVocabulary
from zope.schema.interfaces import IVocabulary
from zope.schema.interfaces import IVocabularyTokenized
@@ -689,8 +698,8 @@ class RegistryTests(unittest.TestCase):
_clear()
def test_setVocabularyRegistry(self):
- from zope.schema.vocabulary import setVocabularyRegistry
from zope.schema.vocabulary import getVocabularyRegistry
+ from zope.schema.vocabulary import setVocabularyRegistry
r = _makeDummyRegistry()
setVocabularyRegistry(r)
self.assertTrue(getVocabularyRegistry() is r)
@@ -706,6 +715,7 @@ class RegistryTests(unittest.TestCase):
def _makeSampleVocabulary():
from zope.interface import implementer
+
from zope.schema.interfaces import IVocabulary
class SampleTerm(object):
diff --git a/tox.ini b/tox.ini
index 099c616..5addfe0 100644
--- a/tox.ini
+++ b/tox.ini
@@ -29,15 +29,25 @@ extras =
[testenv:lint]
basepython = python3
skip_install = true
+commands =
+ isort --check-only --diff {toxinidir}/src {toxinidir}/setup.py
+ flake8 src setup.py
+ check-manifest
+ check-python-versions
deps =
- flake8
check-manifest
check-python-versions >= 0.19.1
wheel
+ flake8
+ isort
+
+[testenv:isort-apply]
+basepython = python3
+commands_pre =
+deps =
+ isort
commands =
- flake8 src setup.py
- check-manifest
- check-python-versions
+ isort {toxinidir}/src {toxinidir}/setup.py []
[testenv:docs]
basepython = python3