diff --git a/src/_zkapauthorizer/_base64.py b/src/_zkapauthorizer/_base64.py
index fe020e4e01ae74ccacf8a1b755c2726a2c52e9f7..473cb41cdaee3d4174dffcf7cc1ade7e5b63ac10 100644
--- a/src/_zkapauthorizer/_base64.py
+++ b/src/_zkapauthorizer/_base64.py
@@ -16,21 +16,11 @@
 This module implements base64 encoding-related functionality.
 """
 
-from __future__ import (
-    absolute_import,
-)
+from __future__ import absolute_import
 
-from re import (
-    compile as _compile,
-)
-
-from binascii import (
-    Error,
-)
-
-from base64 import (
-    b64decode as _b64decode,
-)
+from base64 import b64decode as _b64decode
+from binascii import Error
+from re import compile as _compile
 
 _b64decode_validator = _compile(b"^[A-Za-z0-9-_]*={0,2}$")
 
diff --git a/src/_zkapauthorizer/_plugin.py b/src/_zkapauthorizer/_plugin.py
index 66a5f4383eed55024796a54afa24bd82b61890b3..cf331c6986e88adbb9a9e5349b714fc18eae7f66 100644
--- a/src/_zkapauthorizer/_plugin.py
+++ b/src/_zkapauthorizer/_plugin.py
@@ -18,75 +18,31 @@ Tahoe-LAFS.
 """
 
 import random
-from weakref import (
-    WeakValueDictionary,
-)
-from datetime import (
-    datetime,
-    timedelta,
-)
-from functools import (
-    partial,
-)
+from datetime import datetime, timedelta
+from functools import partial
+from weakref import WeakValueDictionary
 
 import attr
-
-from zope.interface import (
-    implementer,
-)
-
-from twisted.logger import (
-    Logger,
-)
-from twisted.python.filepath import (
-    FilePath,
-)
-from twisted.internet.defer import (
-    succeed,
-)
-
-from allmydata.interfaces import (
-    IFoolscapStoragePlugin,
-    IAnnounceableStorageServer,
-)
-from allmydata.node import (
-    MissingConfigEntry,
-)
-from allmydata.client import (
-    _Client,
-)
-from challenge_bypass_ristretto import (
-    SigningKey,
-)
-
-from .api import (
-    ZKAPAuthorizerStorageServer,
-    ZKAPAuthorizerStorageClient,
-)
-
-from .model import (
-    VoucherStore,
-)
-
-from .resource import (
-    from_configuration as resource_from_configuration,
-)
-from .storage_common import (
-    BYTES_PER_PASS,
-    get_configured_pass_value,
-)
-from .controller import (
-    get_redeemer,
-)
-from .spending import (
-    SpendingController,
-)
-
+from allmydata.client import _Client
+from allmydata.interfaces import IAnnounceableStorageServer, IFoolscapStoragePlugin
+from allmydata.node import MissingConfigEntry
+from challenge_bypass_ristretto import SigningKey
+from twisted.internet.defer import succeed
+from twisted.logger import Logger
+from twisted.python.filepath import FilePath
+from zope.interface import implementer
+
+from .api import ZKAPAuthorizerStorageClient, ZKAPAuthorizerStorageServer
+from .controller import get_redeemer
 from .lease_maintenance import (
     SERVICE_NAME,
     lease_maintenance_service,
     maintain_leases_from_root,
 )
+from .model import VoucherStore
+from .resource import from_configuration as resource_from_configuration
+from .spending import SpendingController
+from .storage_common import BYTES_PER_PASS, get_configured_pass_value
 
 _log = Logger()
 
@@ -260,9 +216,7 @@ def _create_maintenance_service(reactor, node_config, client_node):
     def get_now():
         return datetime.utcfromtimestamp(reactor.seconds())
 
-    from twisted.plugins.zkapauthorizer import (
-        storage_server,
-    )
+    from twisted.plugins.zkapauthorizer import storage_server
 
     store = storage_server._get_store(node_config)
 
diff --git a/src/_zkapauthorizer/_stack.py b/src/_zkapauthorizer/_stack.py
index 518db3744b857b57eeb6423cdf6864e2bfc89b07..c6d553371b9e064583f2cc28bcc976236b5c9a51 100644
--- a/src/_zkapauthorizer/_stack.py
+++ b/src/_zkapauthorizer/_stack.py
@@ -12,16 +12,10 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-from contextlib import (
-    contextmanager,
-)
+from contextlib import contextmanager
 
 try:
-    from resource import (
-        RLIMIT_STACK,
-        getrlimit,
-        setrlimit,
-    )
+    from resource import RLIMIT_STACK, getrlimit, setrlimit
 except ImportError:
     # Not available on Windows, unfortunately.
     RLIMIT_STACK = object()
diff --git a/src/_zkapauthorizer/_storage_client.py b/src/_zkapauthorizer/_storage_client.py
index df88decffd1a48928f801b9a19a7a52110148eb0..a52e18b49c2017662585ece9b81798cbf72d8c29 100644
--- a/src/_zkapauthorizer/_storage_client.py
+++ b/src/_zkapauthorizer/_storage_client.py
@@ -20,55 +20,29 @@ This is the client part of a storage access protocol.  The server part is
 implemented in ``_storage_server.py``.
 """
 
-from __future__ import (
-    absolute_import,
-)
+from __future__ import absolute_import
 
-from functools import (
-    partial,
-    wraps,
-)
+from functools import partial, wraps
 
 import attr
-from attr.validators import (
-    provides,
-)
-
-from zope.interface import (
-    implementer,
-)
-
-from eliot.twisted import (
-    inline_callbacks,
-)
-
-from twisted.internet.interfaces import (
-    IReactorTime,
-)
-from twisted.python.reflect import (
-    namedAny,
-)
-from twisted.internet.defer import (
-    returnValue,
-)
-from allmydata.interfaces import (
-    IStorageServer,
-)
-
-from .eliot import (
-    SIGNATURE_CHECK_FAILED,
-    CALL_WITH_PASSES,
-)
-
+from allmydata.interfaces import IStorageServer
+from attr.validators import provides
+from eliot.twisted import inline_callbacks
+from twisted.internet.defer import returnValue
+from twisted.internet.interfaces import IReactorTime
+from twisted.python.reflect import namedAny
+from zope.interface import implementer
+
+from .eliot import CALL_WITH_PASSES, SIGNATURE_CHECK_FAILED
 from .storage_common import (
     MorePassesRequired,
+    add_lease_message,
+    allocate_buckets_message,
+    get_required_new_passes_for_mutable_write,
+    has_writes,
     pass_value_attribute,
     required_passes,
-    allocate_buckets_message,
-    add_lease_message,
     slot_testv_and_readv_and_writev_message,
-    has_writes,
-    get_required_new_passes_for_mutable_write,
 )
 
 
diff --git a/src/_zkapauthorizer/_storage_server.py b/src/_zkapauthorizer/_storage_server.py
index 626870c3c883089eb2be597d9655f53d374f67d4..85149180aad1d4ecfe32237e280780d30a9e8c7a 100644
--- a/src/_zkapauthorizer/_storage_server.py
+++ b/src/_zkapauthorizer/_storage_server.py
@@ -21,91 +21,39 @@ This is the server part of a storage access protocol.  The client part is
 implemented in ``_storage_client.py``.
 """
 
-from __future__ import (
-    absolute_import,
-)
-
-from struct import (
-    unpack,
-    calcsize,
-)
-
-from errno import (
-    ENOENT,
-)
+from __future__ import absolute_import
 
-from functools import (
-    partial,
-)
+from datetime import timedelta
+from errno import ENOENT
+from functools import partial
+from os import listdir, stat
+from os.path import join
+from struct import calcsize, unpack
 
-from os.path import (
-    join,
-)
-from os import (
-    listdir,
-    stat,
-)
-from datetime import (
-    timedelta,
-)
 import attr
-from attr.validators import (
-    provides,
-    instance_of,
-)
-
-from zope.interface import (
-    implementer_only,
-)
-from foolscap.api import (
-    Referenceable,
-)
-from foolscap.ipb import (
-    IReferenceable,
-    IRemotelyCallable,
-)
-from allmydata.interfaces import (
-    RIStorageServer,
-)
-from allmydata.storage.common import (
-    storage_index_to_dir,
-)
-from allmydata.util.base32 import (
-    b2a,
-)
-from challenge_bypass_ristretto import (
-    TokenPreimage,
-    VerificationSignature,
-    SigningKey,
-)
-
-from twisted.internet.defer import (
-    Deferred,
-)
-from twisted.python.reflect import (
-    namedAny,
-)
-from twisted.internet.interfaces import (
-    IReactorTime,
-)
-
-from eliot import (
-    start_action,
-)
-
-from .foolscap import (
-    ShareStat,
-    RIPrivacyPassAuthorizedStorageServer,
-)
+from allmydata.interfaces import RIStorageServer
+from allmydata.storage.common import storage_index_to_dir
+from allmydata.util.base32 import b2a
+from attr.validators import instance_of, provides
+from challenge_bypass_ristretto import SigningKey, TokenPreimage, VerificationSignature
+from eliot import start_action
+from foolscap.api import Referenceable
+from foolscap.ipb import IReferenceable, IRemotelyCallable
+from twisted.internet.defer import Deferred
+from twisted.internet.interfaces import IReactorTime
+from twisted.python.reflect import namedAny
+from zope.interface import implementer_only
+
+from .foolscap import RIPrivacyPassAuthorizedStorageServer, ShareStat
 from .storage_common import (
     MorePassesRequired,
+    add_lease_message,
+    allocate_buckets_message,
+    get_required_new_passes_for_mutable_write,
+    has_writes,
     pass_value_attribute,
     required_passes,
-    allocate_buckets_message,
-    add_lease_message,
     slot_testv_and_readv_and_writev_message,
-    has_writes,
-    get_required_new_passes_for_mutable_write,
 )
 
 # See allmydata/storage/mutable.py
@@ -752,17 +700,12 @@ def get_stat(sharepath):
             return stat_bucket
 
 
+from foolscap.ipb import ISlicer
+from foolscap.referenceable import ReferenceableSlicer
+
 # I don't understand why this is required.
 # ZKAPAuthorizerStorageServer is-a Referenceable.  It seems like
 # the built in adapter should take care of this case.
-from twisted.python.components import (
-    registerAdapter,
-)
-from foolscap.referenceable import (
-    ReferenceableSlicer,
-)
-from foolscap.ipb import (
-    ISlicer,
-)
+from twisted.python.components import registerAdapter
 
 registerAdapter(ReferenceableSlicer, ZKAPAuthorizerStorageServer, ISlicer)
diff --git a/src/_zkapauthorizer/api.py b/src/_zkapauthorizer/api.py
index 70e4725e5c89d503e6973e2b708cecede48bcd66..d020b6cac5a4501f843be79f5e39b08b27c12d1e 100644
--- a/src/_zkapauthorizer/api.py
+++ b/src/_zkapauthorizer/api.py
@@ -20,17 +20,7 @@ __all__ = [
     "ZKAPAuthorizer",
 ]
 
-from .storage_common import (
-    MorePassesRequired,
-)
-from ._storage_server import (
-    LeaseRenewalRequired,
-    ZKAPAuthorizerStorageServer,
-)
-from ._storage_client import (
-    ZKAPAuthorizerStorageClient,
-)
-
-from ._plugin import (
-    ZKAPAuthorizer,
-)
+from ._plugin import ZKAPAuthorizer
+from ._storage_client import ZKAPAuthorizerStorageClient
+from ._storage_server import LeaseRenewalRequired, ZKAPAuthorizerStorageServer
+from .storage_common import MorePassesRequired
diff --git a/src/_zkapauthorizer/configutil.py b/src/_zkapauthorizer/configutil.py
index c8c955a17db38bbec0d5eabd0a641ddce3ecf58f..2df26fc6d8257e950f7ea29d2a51d61ad31ea16f 100644
--- a/src/_zkapauthorizer/configutil.py
+++ b/src/_zkapauthorizer/configutil.py
@@ -16,12 +16,7 @@
 Basic utilities related to the Tahoe configuration file.
 """
 
-from __future__ import (
-    division,
-    absolute_import,
-    print_function,
-    unicode_literals,
-)
+from __future__ import absolute_import, division, print_function, unicode_literals
 
 
 def _merge_dictionaries(dictionaries):
diff --git a/src/_zkapauthorizer/controller.py b/src/_zkapauthorizer/controller.py
index 881acb4a2ca2b5de3b628e8e89a21b90ce4ae4a9..62d65c89b447578dc28068a6a569148c16844c3f 100644
--- a/src/_zkapauthorizer/controller.py
+++ b/src/_zkapauthorizer/controller.py
@@ -17,90 +17,38 @@ This module implements controllers (in the MVC sense) for the web interface
 for the client side of the storage plugin.
 """
 
-from __future__ import (
-    absolute_import,
-)
-
-from sys import (
-    exc_info,
-)
-from operator import (
-    setitem,
-    delitem,
-)
-from functools import (
-    partial,
-)
-from json import (
-    dumps,
-    loads,
-)
-from datetime import (
-    timedelta,
-)
-from base64 import (
-    b64encode,
-    b64decode,
-)
-from hashlib import (
-    sha256,
-)
+from __future__ import absolute_import
 
-import attr
-
-from zope.interface import (
-    Interface,
-    implementer,
-)
-
-from twisted.python.reflect import (
-    namedAny,
-)
-from twisted.logger import (
-    Logger,
-)
-from twisted.python.url import (
-    URL,
-)
-from twisted.internet.defer import (
-    Deferred,
-    succeed,
-    fail,
-    inlineCallbacks,
-    returnValue,
-)
-from twisted.internet.task import (
-    LoopingCall,
-)
-from twisted.web.client import (
-    Agent,
-)
-from treq import (
-    content,
-)
-from treq.client import (
-    HTTPClient,
-)
+from base64 import b64decode, b64encode
+from datetime import timedelta
+from functools import partial
+from hashlib import sha256
+from json import dumps, loads
+from operator import delitem, setitem
+from sys import exc_info
 
+import attr
 import challenge_bypass_ristretto
-
-from ._base64 import (
-    urlsafe_b64decode,
-)
-from ._stack import (
-    less_limited_stack,
-)
-
-from .model import (
-    RandomToken,
-    UnblindedToken,
-    Voucher,
-    Pass,
-    Pending as model_Pending,
-    Unpaid as model_Unpaid,
-    Redeeming as model_Redeeming,
-    Error as model_Error,
-)
+from treq import content
+from treq.client import HTTPClient
+from twisted.internet.defer import Deferred, fail, inlineCallbacks, returnValue, succeed
+from twisted.internet.task import LoopingCall
+from twisted.logger import Logger
+from twisted.python.reflect import namedAny
+from twisted.python.url import URL
+from twisted.web.client import Agent
+from zope.interface import Interface, implementer
+
+from ._base64 import urlsafe_b64decode
+from ._stack import less_limited_stack
+from .model import Error as model_Error
+from .model import Pass
+from .model import Pending as model_Pending
+from .model import RandomToken
+from .model import Redeeming as model_Redeeming
+from .model import UnblindedToken
+from .model import Unpaid as model_Unpaid
+from .model import Voucher
 
 RETRY_INTERVAL = timedelta(milliseconds=1000)
 
diff --git a/src/_zkapauthorizer/eliot.py b/src/_zkapauthorizer/eliot.py
index 1cd64008f3bfc1b1a8670d67c496660c4d8824f0..8f607d8a0e66e7605ff4d66cd5640d759bba3cdb 100644
--- a/src/_zkapauthorizer/eliot.py
+++ b/src/_zkapauthorizer/eliot.py
@@ -16,15 +16,9 @@
 Eliot field, message, and action definitions for ZKAPAuthorizer.
 """
 
-from __future__ import (
-    absolute_import,
-)
+from __future__ import absolute_import
 
-from eliot import (
-    Field,
-    MessageType,
-    ActionType,
-)
+from eliot import ActionType, Field, MessageType
 
 PRIVACYPASS_MESSAGE = Field(
     u"message",
diff --git a/src/_zkapauthorizer/foolscap.py b/src/_zkapauthorizer/foolscap.py
index efe98fab4a9502750433033a178836a71de662f9..20ba99fde74bfcf6f0a3f92281867887864c0d1c 100644
--- a/src/_zkapauthorizer/foolscap.py
+++ b/src/_zkapauthorizer/foolscap.py
@@ -17,32 +17,13 @@ Definitions related to the Foolscap-based protocol used by ZKAPAuthorizer
 to communicate between storage clients and servers.
 """
 
-from __future__ import (
-    absolute_import,
-)
+from __future__ import absolute_import
 
 import attr
-
-from foolscap.constraint import (
-    ByteStringConstraint,
-)
-from foolscap.api import (
-    Any,
-    DictOf,
-    ListOf,
-    Copyable,
-    RemoteCopy,
-)
-from foolscap.remoteinterface import (
-    RemoteMethodSchema,
-    RemoteInterface,
-)
-
-from allmydata.interfaces import (
-    StorageIndex,
-    RIStorageServer,
-    Offset,
-)
+from allmydata.interfaces import Offset, RIStorageServer, StorageIndex
+from foolscap.api import Any, Copyable, DictOf, ListOf, RemoteCopy
+from foolscap.constraint import ByteStringConstraint
+from foolscap.remoteinterface import RemoteInterface, RemoteMethodSchema
 
 
 @attr.s
diff --git a/src/_zkapauthorizer/lease_maintenance.py b/src/_zkapauthorizer/lease_maintenance.py
index 57b6091f8d3a238379c06a2127a63956be6ab990..8858c91b85e42017a92131d41691cf5f69fd35fa 100644
--- a/src/_zkapauthorizer/lease_maintenance.py
+++ b/src/_zkapauthorizer/lease_maintenance.py
@@ -17,55 +17,26 @@ This module implements a service which periodically spends ZKAPs to
 refresh leases on all shares reachable from a root.
 """
 
-from functools import (
-    partial,
-)
-from datetime import (
-    datetime,
-    timedelta,
-)
-from errno import (
-    ENOENT,
-)
-import attr
-
-from zope.interface import (
-    implementer,
-)
-
-from aniso8601 import (
-    parse_datetime,
-)
-
-from twisted.internet.defer import (
-    inlineCallbacks,
-    maybeDeferred,
-)
-from twisted.application.service import (
-    Service,
-)
-from twisted.python.log import (
-    err,
-)
+from datetime import datetime, timedelta
+from errno import ENOENT
+from functools import partial
 
-from allmydata.interfaces import (
-    IDirectoryNode,
-    IFilesystemNode,
-)
+import attr
+from allmydata.interfaces import IDirectoryNode, IFilesystemNode
 from allmydata.util.hashutil import (
-    file_renewal_secret_hash,
+    bucket_cancel_secret_hash,
     bucket_renewal_secret_hash,
     file_cancel_secret_hash,
-    bucket_cancel_secret_hash,
-)
-
-from .controller import (
-    bracket,
-)
-
-from .model import (
-    ILeaseMaintenanceObserver,
+    file_renewal_secret_hash,
 )
+from aniso8601 import parse_datetime
+from twisted.application.service import Service
+from twisted.internet.defer import inlineCallbacks, maybeDeferred
+from twisted.python.log import err
+from zope.interface import implementer
+
+from .controller import bracket
+from .model import ILeaseMaintenanceObserver
 
 SERVICE_NAME = u"lease maintenance service"
 
diff --git a/src/_zkapauthorizer/model.py b/src/_zkapauthorizer/model.py
index 5e2d3441277c914d052b5db480ff02889964677a..27e2fe947ebbf01d329022d72353c6b072aedca8 100644
--- a/src/_zkapauthorizer/model.py
+++ b/src/_zkapauthorizer/model.py
@@ -17,59 +17,26 @@ This module implements models (in the MVC sense) for the client side of
 the storage plugin.
 """
 
-from functools import (
-    wraps,
-)
-from json import (
-    loads,
-    dumps,
-)
-from datetime import (
-    datetime,
-)
-from zope.interface import (
-    Interface,
-    implementer,
-)
-
-from sqlite3 import (
-    OperationalError,
-    connect as _connect,
-)
+from datetime import datetime
+from functools import wraps
+from json import dumps, loads
+from sqlite3 import OperationalError
+from sqlite3 import connect as _connect
 
 import attr
+from aniso8601 import parse_datetime as _parse_datetime
+from twisted.logger import Logger
+from twisted.python.filepath import FilePath
+from zope.interface import Interface, implementer
 
-from aniso8601 import (
-    parse_datetime as _parse_datetime,
-)
-from twisted.logger import (
-    Logger,
-)
-from twisted.python.filepath import (
-    FilePath,
-)
-
-from ._base64 import (
-    urlsafe_b64decode,
-)
-
-from .validators import (
-    is_base64_encoded,
-    has_length,
-    greater_than,
-)
-
+from ._base64 import urlsafe_b64decode
+from .schema import get_schema_upgrades, get_schema_version, run_schema_upgrades
 from .storage_common import (
-    pass_value_attribute,
     get_configured_pass_value,
+    pass_value_attribute,
     required_passes,
 )
-
-from .schema import (
-    get_schema_version,
-    get_schema_upgrades,
-    run_schema_upgrades,
-)
+from .validators import greater_than, has_length, is_base64_encoded
 
 
 def parse_datetime(s, **kw):
diff --git a/src/_zkapauthorizer/pricecalculator.py b/src/_zkapauthorizer/pricecalculator.py
index 296d0ad3c4b46010bdd31e639bcd303db21c5d3f..f37e0d7e66aa8e69de13601af14f4fa56324b79a 100644
--- a/src/_zkapauthorizer/pricecalculator.py
+++ b/src/_zkapauthorizer/pricecalculator.py
@@ -29,10 +29,7 @@ calculator).
 
 import attr
 
-from .storage_common import (
-    required_passes,
-    share_size_for_data,
-)
+from .storage_common import required_passes, share_size_for_data
 
 
 @attr.s
diff --git a/src/_zkapauthorizer/private.py b/src/_zkapauthorizer/private.py
index 81eb58b91d0af2ed0df98abc7157aa1638f9cc4b..535c00203840ce36eaa3c4e0a9c13cf6d261dd02 100644
--- a/src/_zkapauthorizer/private.py
+++ b/src/_zkapauthorizer/private.py
@@ -10,52 +10,7 @@ Support code for applying token-based HTTP authorization rules to a
 Twisted Web resource hierarchy.
 """
 
-from __future__ import (
-    print_function,
-    unicode_literals,
-    absolute_import,
-    division,
-)
-
-import attr
-
-from zope.interface import (
-    implementer,
-)
-
-from twisted.python.failure import (
-    Failure,
-)
-from twisted.internet.defer import (
-    succeed,
-    fail,
-)
-from twisted.cred.credentials import (
-    ICredentials,
-)
-from twisted.cred.portal import (
-    IRealm,
-    Portal,
-)
-from twisted.cred.checkers import (
-    ANONYMOUS,
-)
-from twisted.cred.error import (
-    UnauthorizedLogin,
-)
-from twisted.web.iweb import (
-    ICredentialFactory,
-)
-from twisted.web.resource import (
-    IResource,
-)
-from twisted.web.guard import (
-    HTTPAuthSessionWrapper,
-)
-
-from cryptography.hazmat.primitives.constant_time import (
-    bytes_eq,
-)
+from __future__ import absolute_import, division, print_function, unicode_literals
 
 # https://github.com/twisted/nevow/issues/106 may affect this code but if so
 # then the hotfix Tahoe-LAFS applies should deal with it.
@@ -64,6 +19,18 @@ from cryptography.hazmat.primitives.constant_time import (
 # public but we do want to make sure that hotfix is applied.  This seems like
 # an alright compromise.
 import allmydata.web.private as awp
+import attr
+from cryptography.hazmat.primitives.constant_time import bytes_eq
+from twisted.cred.checkers import ANONYMOUS
+from twisted.cred.credentials import ICredentials
+from twisted.cred.error import UnauthorizedLogin
+from twisted.cred.portal import IRealm, Portal
+from twisted.internet.defer import fail, succeed
+from twisted.python.failure import Failure
+from twisted.web.guard import HTTPAuthSessionWrapper
+from twisted.web.iweb import ICredentialFactory
+from twisted.web.resource import IResource
+from zope.interface import implementer
 
 del awp
 
diff --git a/src/_zkapauthorizer/resource.py b/src/_zkapauthorizer/resource.py
index 18225e928cfa05a7dc81f1e6221740acaebe090b..7b81c26579e36108a2a369271841a6f355f528b2 100644
--- a/src/_zkapauthorizer/resource.py
+++ b/src/_zkapauthorizer/resource.py
@@ -21,63 +21,27 @@ vouchers for fresh tokens.
 In the future it should also allow users to read statistics about token usage.
 """
 
-from sys import (
-    maxint,
-)
-from itertools import (
-    islice,
-)
-from json import (
-    loads,
-    load,
-    dumps,
-)
-from zope.interface import (
-    Attribute,
-)
-from twisted.logger import (
-    Logger,
-)
-from twisted.web.http import (
-    BAD_REQUEST,
-)
-from twisted.web.server import (
-    NOT_DONE_YET,
-)
-from twisted.web.resource import (
-    IResource,
-    ErrorPage,
-    NoResource,
-    Resource,
-)
-
-from . import (
-    __version__ as _zkapauthorizer_version,
-)
-
-from ._base64 import (
-    urlsafe_b64decode,
-)
-
+from itertools import islice
+from json import dumps, load, loads
+from sys import maxint
+
+from twisted.logger import Logger
+from twisted.web.http import BAD_REQUEST
+from twisted.web.resource import ErrorPage, IResource, NoResource, Resource
+from twisted.web.server import NOT_DONE_YET
+from zope.interface import Attribute
+
+from . import __version__ as _zkapauthorizer_version
+from ._base64 import urlsafe_b64decode
+from .controller import PaymentController, get_redeemer
+from .pricecalculator import PriceCalculator
+from .private import create_private_tree
 from .storage_common import (
+    get_configured_allowed_public_keys,
+    get_configured_lease_duration,
+    get_configured_pass_value,
     get_configured_shares_needed,
     get_configured_shares_total,
-    get_configured_pass_value,
-    get_configured_lease_duration,
-    get_configured_allowed_public_keys,
-)
-
-from .pricecalculator import (
-    PriceCalculator,
-)
-
-from .controller import (
-    PaymentController,
-    get_redeemer,
-)
-
-from .private import (
-    create_private_tree,
 )
 
 # The number of tokens to submit with a voucher redemption.
diff --git a/src/_zkapauthorizer/schema.py b/src/_zkapauthorizer/schema.py
index 40c79ea41d4584b9c46fb2f73b053c4cb381f2a6..9fe72b695f76f3c3d7bed9628499f45be4e98f8d 100644
--- a/src/_zkapauthorizer/schema.py
+++ b/src/_zkapauthorizer/schema.py
@@ -12,9 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-from __future__ import (
-    unicode_literals,
-)
+from __future__ import unicode_literals
 
 """
 This module defines the database schema used by the model interface.
diff --git a/src/_zkapauthorizer/spending.py b/src/_zkapauthorizer/spending.py
index 49a693a438aaa11a5b270cb794aabe27e1848e18..19b96ecb1f597e0ddbe26e1840853c6af7b0ef64 100644
--- a/src/_zkapauthorizer/spending.py
+++ b/src/_zkapauthorizer/spending.py
@@ -16,20 +16,10 @@
 A module for logic controlling the manner in which ZKAPs are spent.
 """
 
-from zope.interface import (
-    Interface,
-    Attribute,
-    implementer,
-)
-
 import attr
+from zope.interface import Attribute, Interface, implementer
 
-from .eliot import (
-    GET_PASSES,
-    SPENT_PASSES,
-    INVALID_PASSES,
-    RESET_PASSES,
-)
+from .eliot import GET_PASSES, INVALID_PASSES, RESET_PASSES, SPENT_PASSES
 
 
 class IPassGroup(Interface):
diff --git a/src/_zkapauthorizer/storage_common.py b/src/_zkapauthorizer/storage_common.py
index 85051327a5fdfb5b576cfaaf28a08720b79d9461..9af2a922fda5ce161a02294438842a3f3f27e5c3 100644
--- a/src/_zkapauthorizer/storage_common.py
+++ b/src/_zkapauthorizer/storage_common.py
@@ -16,27 +16,15 @@
 Functionality shared between the storage client and server.
 """
 
-from __future__ import (
-    division,
-)
+from __future__ import division
 
-from base64 import (
-    b64encode,
-)
+from base64 import b64encode
 
 import attr
+from pyutil.mathutil import div_ceil
 
-from .validators import (
-    greater_than,
-)
-
-from .eliot import (
-    MUTABLE_PASSES_REQUIRED,
-)
-
-from pyutil.mathutil import (
-    div_ceil,
-)
+from .eliot import MUTABLE_PASSES_REQUIRED
+from .validators import greater_than
 
 
 @attr.s(frozen=True, str=True)
diff --git a/src/_zkapauthorizer/tests/__init__.py b/src/_zkapauthorizer/tests/__init__.py
index 6b2e7df4628ca47cd6186d709c19266c425d2273..313d67dc92c15224f147dd97e1a229a127bb95df 100644
--- a/src/_zkapauthorizer/tests/__init__.py
+++ b/src/_zkapauthorizer/tests/__init__.py
@@ -24,10 +24,7 @@ def _configure_hypothesis():
     """
     from os import environ
 
-    from hypothesis import (
-        HealthCheck,
-        settings,
-    )
+    from hypothesis import HealthCheck, settings
 
     base = dict(
         suppress_health_check=[
diff --git a/src/_zkapauthorizer/tests/_exception.py b/src/_zkapauthorizer/tests/_exception.py
index a91f2fbf569526893cddae201909a83ae915a910..35dd0b73af4cb3e71fc650082bae5f2df8706a45 100644
--- a/src/_zkapauthorizer/tests/_exception.py
+++ b/src/_zkapauthorizer/tests/_exception.py
@@ -22,13 +22,8 @@ __all__ = [
 
 import sys
 
-from testtools.matchers import (
-    Matcher,
-    Mismatch,
-)
-from testtools.content import (
-    TracebackContent,
-)
+from testtools.content import TracebackContent
+from testtools.matchers import Matcher, Mismatch
 
 
 def _is_exception(exc):
diff --git a/src/_zkapauthorizer/tests/eliot.py b/src/_zkapauthorizer/tests/eliot.py
index 710737d948cc4e069d12c265277e95dee569e133..ba010cf2b51b709f19abfa18e1e0023fa1a38418 100644
--- a/src/_zkapauthorizer/tests/eliot.py
+++ b/src/_zkapauthorizer/tests/eliot.py
@@ -16,26 +16,14 @@
 Eliot testing helpers.
 """
 
-from __future__ import (
-    absolute_import,
-)
-
-from functools import (
-    wraps,
-)
-
-from unittest import (
-    SkipTest,
-)
-
-from eliot import (
-    MemoryLogger,
-)
-
-from eliot.testing import (
-    swap_logger,
-    check_for_errors,
-)
+from __future__ import absolute_import
+
+from functools import wraps
+from unittest import SkipTest
+
+from eliot import MemoryLogger
+from eliot.testing import check_for_errors, swap_logger
+
 
 # validate_logging and capture_logging copied from Eliot around 1.11.  We
 # can't upgrade past 1.7 because we're not Python 3 compatible.
diff --git a/src/_zkapauthorizer/tests/fixtures.py b/src/_zkapauthorizer/tests/fixtures.py
index 3b554f2a1a4cf722d620ac3d0c93538914e62d46..3a4e4155fb8cbf4f19c36bd6f0e29c22b2ad79bc 100644
--- a/src/_zkapauthorizer/tests/fixtures.py
+++ b/src/_zkapauthorizer/tests/fixtures.py
@@ -16,41 +16,19 @@
 Common fixtures to let the test suite focus on application logic.
 """
 
-from __future__ import (
-    absolute_import,
-)
+from __future__ import absolute_import
 
-from base64 import (
-    b64encode,
-)
+from base64 import b64encode
 
 import attr
-
-from fixtures import (
-    Fixture,
-    TempDir,
-)
-
-from twisted.python.filepath import (
-    FilePath,
-)
-from twisted.internet.task import (
-    Clock,
-)
 from allmydata import __version__ as allmydata_version
-from allmydata.storage.server import (
-    StorageServer,
-)
-
-from ..model import (
-    VoucherStore,
-    open_and_initialize,
-    memory_connect,
-)
-from ..controller import (
-    DummyRedeemer,
-    PaymentController,
-)
+from allmydata.storage.server import StorageServer
+from fixtures import Fixture, TempDir
+from twisted.internet.task import Clock
+from twisted.python.filepath import FilePath
+
+from ..controller import DummyRedeemer, PaymentController
+from ..model import VoucherStore, memory_connect, open_and_initialize
 
 
 @attr.s
diff --git a/src/_zkapauthorizer/tests/foolscap.py b/src/_zkapauthorizer/tests/foolscap.py
index 93ba2142e6de4ddd0fcebd268ce270f2fa3ce5bf..3a984bea163fd4c567812556f8229508c0cb8a2d 100644
--- a/src/_zkapauthorizer/tests/foolscap.py
+++ b/src/_zkapauthorizer/tests/foolscap.py
@@ -16,35 +16,14 @@
 Testing helpers related to Foolscap.
 """
 
-from __future__ import (
-    absolute_import,
-)
-
-from zope.interface import (
-    implementer,
-)
+from __future__ import absolute_import
 
 import attr
-
-from twisted.internet.defer import (
-    succeed,
-    fail,
-)
-
-from foolscap.api import (
-    RemoteInterface,
-    Referenceable,
-    Copyable,
-    Any,
-)
-from foolscap.copyable import (
-    ICopyable,
-    CopyableSlicer,
-)
-
-from allmydata.interfaces import (
-    RIStorageServer,
-)
+from allmydata.interfaces import RIStorageServer
+from foolscap.api import Any, Copyable, Referenceable, RemoteInterface
+from foolscap.copyable import CopyableSlicer, ICopyable
+from twisted.internet.defer import fail, succeed
+from zope.interface import implementer
 
 
 class RIStub(RemoteInterface):
diff --git a/src/_zkapauthorizer/tests/json.py b/src/_zkapauthorizer/tests/json.py
index 3ffc724f73a30870354be71cee88b8c8fb5e99e2..b8aa7c74548cf3f9a744dcf0cd44bc03c7afb689 100644
--- a/src/_zkapauthorizer/tests/json.py
+++ b/src/_zkapauthorizer/tests/json.py
@@ -16,13 +16,9 @@
 A better JSON module.
 """
 
-from __future__ import (
-    absolute_import,
-)
+from __future__ import absolute_import
 
-from json import (
-    loads as _loads,
-)
+from json import loads as _loads
 
 
 def loads(data):
diff --git a/src/_zkapauthorizer/tests/matchers.py b/src/_zkapauthorizer/tests/matchers.py
index 18fb3ea7fc5cc169e098ba0f74a0906c3a63d104..4bfe7362bcfa96eb3198cb7ef6cc0ca3b0e9ea90 100644
--- a/src/_zkapauthorizer/tests/matchers.py
+++ b/src/_zkapauthorizer/tests/matchers.py
@@ -25,37 +25,27 @@ __all__ = [
     "leases_current",
 ]
 
-from datetime import (
-    datetime,
-)
+from datetime import datetime
 
 import attr
-
 from testtools.matchers import (
-    Matcher,
-    Mismatch,
-    ContainsDict,
+    AfterPreprocessing,
+    AllMatch,
     Always,
+    ContainsDict,
+    Equals,
+    GreaterThan,
+    LessThan,
+    Matcher,
     MatchesAll,
     MatchesAny,
     MatchesStructure,
-    GreaterThan,
-    LessThan,
-    Equals,
-    AfterPreprocessing,
-    AllMatch,
-)
-from testtools.twistedsupport import (
-    succeeded,
-)
-
-from treq import (
-    content,
+    Mismatch,
 )
+from testtools.twistedsupport import succeeded
+from treq import content
 
-from ._exception import (
-    raises,
-)
+from ._exception import raises
 
 
 @attr.s
diff --git a/src/_zkapauthorizer/tests/privacypass.py b/src/_zkapauthorizer/tests/privacypass.py
index d678fa5b1c313ca757b8c627bdc9f60b39abe756..a3820b0924ec3f6fa812141dd004c18599fbbc47 100644
--- a/src/_zkapauthorizer/tests/privacypass.py
+++ b/src/_zkapauthorizer/tests/privacypass.py
@@ -16,14 +16,9 @@
 Ristretto-flavored PrivacyPass helpers for the test suite.
 """
 
-from __future__ import (
-    absolute_import,
-)
+from __future__ import absolute_import
 
-from challenge_bypass_ristretto import (
-    BatchDLEQProof,
-    PublicKey,
-)
+from challenge_bypass_ristretto import BatchDLEQProof, PublicKey
 
 
 def make_passes(signing_key, for_message, random_tokens):
diff --git a/src/_zkapauthorizer/tests/storage_common.py b/src/_zkapauthorizer/tests/storage_common.py
index 88df0ae5abcf82f82747ac38c76eb44b37d13253..c28cff6a4aceee2f6059e3fae735b0926b0bb4f6 100644
--- a/src/_zkapauthorizer/tests/storage_common.py
+++ b/src/_zkapauthorizer/tests/storage_common.py
@@ -16,53 +16,20 @@
 ``allmydata.storage``-related helpers shared across the test suite.
 """
 
-from functools import (
-    partial,
-)
-
-from os import (
-    SEEK_CUR,
-)
-from struct import (
-    pack,
-)
-
-from itertools import (
-    islice,
-)
+from functools import partial
+from itertools import islice
+from os import SEEK_CUR
+from struct import pack
 
 import attr
-
-from zope.interface import (
-    implementer,
-)
-
-from twisted.python.filepath import (
-    FilePath,
-)
-
-from challenge_bypass_ristretto import (
-    RandomToken,
-)
-
-from .strategies import (
-    # Not really a strategy...
-    bytes_for_share,
-)
-
-from .privacypass import (
-    make_passes,
-)
-
-from ..model import (
-    NotEnoughTokens,
-    Pass,
-)
-
-from ..spending import (
-    IPassFactory,
-    PassGroup,
-)
+from challenge_bypass_ristretto import RandomToken
+from twisted.python.filepath import FilePath
+from zope.interface import implementer
+
+from ..model import NotEnoughTokens, Pass
+from ..spending import IPassFactory, PassGroup
+from .privacypass import make_passes
+from .strategies import bytes_for_share  # Not really a strategy...
 
 # Hard-coded in Tahoe-LAFS
 LEASE_INTERVAL = 60 * 60 * 24 * 31
diff --git a/src/_zkapauthorizer/tests/strategies.py b/src/_zkapauthorizer/tests/strategies.py
index 74f4e598881ca49a894593542ef196747b70b009..567c94405e6aac2009255ead776784e22ab95bad 100644
--- a/src/_zkapauthorizer/tests/strategies.py
+++ b/src/_zkapauthorizer/tests/strategies.py
@@ -16,77 +16,48 @@
 Hypothesis strategies for property testing.
 """
 
-from base64 import (
-    b64encode,
-    urlsafe_b64encode,
-)
-from datetime import (
-    datetime,
-)
-from urllib import (
-    quote,
-)
+from base64 import b64encode, urlsafe_b64encode
+from datetime import datetime
+from urllib import quote
 
 import attr
-
-from zope.interface import (
-    implementer,
-)
-
+from allmydata.client import config_from_string
+from allmydata.interfaces import HASH_SIZE, IDirectoryNode, IFilesystemNode
 from hypothesis.strategies import (
-    one_of,
-    sampled_from,
-    just,
-    none,
     binary,
+    builds,
     characters,
-    text,
-    integers,
-    sets,
-    lists,
-    tuples,
+    datetimes,
     dictionaries,
     fixed_dictionaries,
-    builds,
-    datetimes,
+    integers,
+    just,
+    lists,
+    none,
+    one_of,
     recursive,
+    sampled_from,
+    sets,
+    text,
+    tuples,
 )
+from twisted.internet.defer import succeed
+from twisted.internet.task import Clock
+from twisted.web.test.requesthelper import DummyRequest
+from zope.interface import implementer
 
-from twisted.internet.defer import (
-    succeed,
-)
-from twisted.internet.task import (
-    Clock,
-)
-from twisted.web.test.requesthelper import (
-    DummyRequest,
-)
-
-from allmydata.interfaces import (
-    IFilesystemNode,
-    IDirectoryNode,
-    HASH_SIZE,
-)
-
-from allmydata.client import (
-    config_from_string,
-)
-
+from ..configutil import config_string_from_sections
 from ..model import (
+    DoubleSpend,
+    Error,
     Pass,
+    Pending,
     RandomToken,
+    Redeemed,
+    Redeeming,
     UnblindedToken,
-    Voucher,
-    Pending,
-    DoubleSpend,
     Unpaid,
-    Error,
-    Redeeming,
-    Redeemed,
-)
-
-from ..configutil import (
-    config_string_from_sections,
+    Voucher,
 )
 
 # Sizes informed by
diff --git a/src/_zkapauthorizer/tests/test_base64.py b/src/_zkapauthorizer/tests/test_base64.py
index b699a9a8b8916611ba72533b1e6b8433f6e69ed5..d91bbacd065acc75295c5b0bc8b2d67d790bc2f3 100644
--- a/src/_zkapauthorizer/tests/test_base64.py
+++ b/src/_zkapauthorizer/tests/test_base64.py
@@ -16,31 +16,16 @@
 Tests for ``_zkapauthorizer._base64``.
 """
 
-from __future__ import (
-    absolute_import,
-)
-
-from base64 import (
-    urlsafe_b64encode,
-)
-
-from testtools import (
-    TestCase,
-)
-from testtools.matchers import (
-    Equals,
-)
-
-from hypothesis import (
-    given,
-)
-from hypothesis.strategies import (
-    binary,
-)
-
-from .._base64 import (
-    urlsafe_b64decode,
-)
+from __future__ import absolute_import
+
+from base64 import urlsafe_b64encode
+
+from hypothesis import given
+from hypothesis.strategies import binary
+from testtools import TestCase
+from testtools.matchers import Equals
+
+from .._base64 import urlsafe_b64decode
 
 
 class Base64Tests(TestCase):
diff --git a/src/_zkapauthorizer/tests/test_client_resource.py b/src/_zkapauthorizer/tests/test_client_resource.py
index 55d31f1b6fb38938081dfff32b58a1a7bde2e205..954ad66d0dcf99d73bff11e75d443b2d1345dfad 100644
--- a/src/_zkapauthorizer/tests/test_client_resource.py
+++ b/src/_zkapauthorizer/tests/test_client_resource.py
@@ -17,178 +17,97 @@ Tests for the web resource provided by the client part of the Tahoe-LAFS
 plugin.
 """
 
-from __future__ import (
-    absolute_import,
-)
-
-import attr
+from __future__ import absolute_import
 
-from .._base64 import (
-    urlsafe_b64decode,
-)
+from datetime import datetime
+from io import BytesIO
+from json import dumps
+from urllib import quote
 
-from datetime import (
-    datetime,
-)
-from json import (
-    dumps,
-)
-from io import (
-    BytesIO,
-)
-from urllib import (
-    quote,
-)
-
-from testtools import (
-    TestCase,
+import attr
+from allmydata.client import config_from_string
+from aniso8601 import parse_datetime
+from fixtures import TempDir
+from hypothesis import given, note
+from hypothesis.strategies import (
+    binary,
+    builds,
+    datetimes,
+    dictionaries,
+    fixed_dictionaries,
+    integers,
+    just,
+    lists,
+    none,
+    one_of,
+    sampled_from,
+    text,
+    tuples,
 )
+from testtools import TestCase
+from testtools.content import text_content
 from testtools.matchers import (
-    MatchesStructure,
-    MatchesAll,
-    MatchesAny,
-    MatchesPredicate,
+    AfterPreprocessing,
     AllMatch,
-    HasLength,
-    IsInstance,
+    Always,
     ContainsDict,
-    AfterPreprocessing,
     Equals,
-    Always,
     GreaterThan,
+    HasLength,
     Is,
+    IsInstance,
+    MatchesAll,
+    MatchesAny,
+    MatchesPredicate,
+    MatchesStructure,
 )
-from testtools.twistedsupport import (
-    CaptureTwistedLogs,
-    succeeded,
-)
-from testtools.content import (
-    text_content,
-)
-
-from aniso8601 import (
-    parse_datetime,
-)
-
-from fixtures import (
-    TempDir,
-)
-
-from hypothesis import (
-    given,
-    note,
-)
-from hypothesis.strategies import (
-    one_of,
-    none,
-    just,
-    fixed_dictionaries,
-    sampled_from,
-    lists,
-    integers,
-    binary,
-    text,
-    datetimes,
-    builds,
-    tuples,
-    dictionaries,
-)
-
-from twisted.python.filepath import (
-    FilePath,
-)
-from twisted.internet.defer import (
-    Deferred,
-    maybeDeferred,
-    gatherResults,
-)
-from twisted.internet.task import (
-    Cooperator,
-    Clock,
-)
-from twisted.web.http import (
-    OK,
-    UNAUTHORIZED,
-    NOT_FOUND,
-    BAD_REQUEST,
-    NOT_IMPLEMENTED,
-)
-from twisted.web.http_headers import (
-    Headers,
-)
-from twisted.web.resource import (
-    IResource,
-    getChildForRequest,
-)
-from twisted.web.client import (
-    FileBodyProducer,
-    readBody,
-)
-
-from treq.testing import (
-    RequestTraversalAgent,
-)
-
-from allmydata.client import (
-    config_from_string,
-)
-
-from .. import (
-    __version__ as zkapauthorizer_version,
-)
-
+from testtools.twistedsupport import CaptureTwistedLogs, succeeded
+from treq.testing import RequestTraversalAgent
+from twisted.internet.defer import Deferred, gatherResults, maybeDeferred
+from twisted.internet.task import Clock, Cooperator
+from twisted.python.filepath import FilePath
+from twisted.web.client import FileBodyProducer, readBody
+from twisted.web.http import BAD_REQUEST, NOT_FOUND, NOT_IMPLEMENTED, OK, UNAUTHORIZED
+from twisted.web.http_headers import Headers
+from twisted.web.resource import IResource, getChildForRequest
+
+from .. import __version__ as zkapauthorizer_version
+from .._base64 import urlsafe_b64decode
+from ..configutil import config_string_from_sections
 from ..model import (
-    Voucher,
-    Redeeming,
-    Redeemed,
     DoubleSpend,
-    Unpaid,
     Error,
+    Redeemed,
+    Redeeming,
+    Unpaid,
+    Voucher,
     VoucherStore,
     memory_connect,
 )
-from ..resource import (
-    NUM_TOKENS,
-    from_configuration,
-    get_token_count,
-)
-
-from ..pricecalculator import (
-    PriceCalculator,
-)
-from ..configutil import (
-    config_string_from_sections,
-)
-
+from ..pricecalculator import PriceCalculator
+from ..resource import NUM_TOKENS, from_configuration, get_token_count
 from ..storage_common import (
-    required_passes,
-    get_configured_pass_value,
-    get_configured_lease_duration,
     get_configured_allowed_public_keys,
+    get_configured_lease_duration,
+    get_configured_pass_value,
+    required_passes,
 )
-
+from .json import loads
+from .matchers import Provides, between, matches_response
 from .strategies import (
-    direct_tahoe_configs,
-    tahoe_configs,
-    client_unpaidredeemer_configurations,
+    api_auth_tokens,
     client_doublespendredeemer_configurations,
     client_dummyredeemer_configurations,
-    client_nonredeemer_configurations,
     client_errorredeemer_configurations,
-    unblinded_tokens,
-    vouchers,
-    requests,
+    client_nonredeemer_configurations,
+    client_unpaidredeemer_configurations,
+    direct_tahoe_configs,
     request_paths,
-    api_auth_tokens,
+    requests,
     share_parameters,
-)
-from .matchers import (
-    Provides,
-    matches_response,
-    between,
-)
-from .json import (
-    loads,
+    tahoe_configs,
+    unblinded_tokens,
+    vouchers,
 )
 
 TRANSIENT_ERROR = u"something went wrong, who knows what"
diff --git a/src/_zkapauthorizer/tests/test_controller.py b/src/_zkapauthorizer/tests/test_controller.py
index 21fb0937adf5302b0c5df87d70511c18f15a34da..c063eb093f5516fe899916aac1fa38df2381d927 100644
--- a/src/_zkapauthorizer/tests/test_controller.py
+++ b/src/_zkapauthorizer/tests/test_controller.py
@@ -16,138 +16,77 @@
 Tests for ``_zkapauthorizer.controller``.
 """
 
-from __future__ import (
-    absolute_import,
-    division,
-)
+from __future__ import absolute_import, division
 
-from json import (
-    loads,
-    dumps,
-)
-from functools import (
-    partial,
-)
-from datetime import (
-    datetime,
-    timedelta,
-)
-from zope.interface import (
-    implementer,
-)
-from testtools import (
-    TestCase,
-)
-from testtools.content import (
-    text_content,
-)
-from testtools.matchers import (
-    Always,
-    Equals,
-    MatchesAll,
-    AllMatch,
-    IsInstance,
-    HasLength,
-    AfterPreprocessing,
-    MatchesStructure,
-)
-from testtools.twistedsupport import (
-    succeeded,
-    has_no_result,
-    failed,
-)
-
-from hypothesis import (
-    given,
-    assume,
-)
-from hypothesis.strategies import (
-    integers,
-    datetimes,
-    lists,
-    sampled_from,
-    randoms,
-)
-from twisted.python.url import (
-    URL,
-)
-from twisted.internet.defer import (
-    fail,
-)
-from twisted.internet.task import (
-    Clock,
-)
-from twisted.web.iweb import (
-    IAgent,
-)
-from twisted.web.resource import (
-    ErrorPage,
-    Resource,
-)
-from twisted.web.http_headers import (
-    Headers,
-)
-from twisted.web.http import (
-    UNSUPPORTED_MEDIA_TYPE,
-    BAD_REQUEST,
-    INTERNAL_SERVER_ERROR,
-)
-from treq.testing import (
-    StubTreq,
-)
+from datetime import datetime, timedelta
+from functools import partial
+from json import dumps, loads
 
 from challenge_bypass_ristretto import (
-    SecurityException,
-    PublicKey,
-    BlindedToken,
     BatchDLEQProof,
+    BlindedToken,
+    PublicKey,
+    SecurityException,
     TokenPreimage,
     VerificationSignature,
     random_signing_key,
 )
+from hypothesis import assume, given
+from hypothesis.strategies import datetimes, integers, lists, randoms, sampled_from
+from testtools import TestCase
+from testtools.content import text_content
+from testtools.matchers import (
+    AfterPreprocessing,
+    AllMatch,
+    Always,
+    Equals,
+    HasLength,
+    IsInstance,
+    MatchesAll,
+    MatchesStructure,
+)
+from testtools.twistedsupport import failed, has_no_result, succeeded
+from treq.testing import StubTreq
+from twisted.internet.defer import fail
+from twisted.internet.task import Clock
+from twisted.python.url import URL
+from twisted.web.http import BAD_REQUEST, INTERNAL_SERVER_ERROR, UNSUPPORTED_MEDIA_TYPE
+from twisted.web.http_headers import Headers
+from twisted.web.iweb import IAgent
+from twisted.web.resource import ErrorPage, Resource
+from zope.interface import implementer
 
 from ..controller import (
-    IRedeemer,
-    NonRedeemer,
-    DummyRedeemer,
+    AlreadySpent,
     DoubleSpendRedeemer,
-    UnpaidRedeemer,
-    RistrettoRedeemer,
+    DummyRedeemer,
     IndexedRedeemer,
-    RecordingRedeemer,
+    IRedeemer,
+    NonRedeemer,
     PaymentController,
+    RecordingRedeemer,
+    RistrettoRedeemer,
     UnexpectedResponse,
-    AlreadySpent,
     Unpaid,
+    UnpaidRedeemer,
     token_count_for_group,
 )
-
-from ..model import (
-    UnblindedToken,
-    Pending as model_Pending,
-    Redeeming as model_Redeeming,
-    DoubleSpend as model_DoubleSpend,
-    Redeemed as model_Redeemed,
-    Unpaid as model_Unpaid,
-)
-
+from ..model import DoubleSpend as model_DoubleSpend
+from ..model import Pending as model_Pending
+from ..model import Redeemed as model_Redeemed
+from ..model import Redeeming as model_Redeeming
+from ..model import UnblindedToken
+from ..model import Unpaid as model_Unpaid
+from .fixtures import ConfiglessMemoryVoucherStore, TemporaryVoucherStore
+from .matchers import Provides, between, raises
 from .strategies import (
+    clocks,
+    dummy_ristretto_keys,
+    redemption_group_counts,
     tahoe_configs,
-    vouchers,
-    voucher_objects,
     voucher_counters,
-    redemption_group_counts,
-    dummy_ristretto_keys,
-    clocks,
-)
-from .matchers import (
-    Provides,
-    raises,
-    between,
-)
-from .fixtures import (
-    TemporaryVoucherStore,
-    ConfiglessMemoryVoucherStore,
+    voucher_objects,
+    vouchers,
 )
 
 
diff --git a/src/_zkapauthorizer/tests/test_foolscap.py b/src/_zkapauthorizer/tests/test_foolscap.py
index c62fb10f87b7116b6a1ecac90d448261728518d7..3a313b879aa720caf31b20ce97b191d9289e1424 100644
--- a/src/_zkapauthorizer/tests/test_foolscap.py
+++ b/src/_zkapauthorizer/tests/test_foolscap.py
@@ -16,70 +16,29 @@
 Tests for Foolscap-related test helpers.
 """
 
-from __future__ import (
-    absolute_import,
-)
-
-from fixtures import (
-    Fixture,
-)
-from testtools import (
-    TestCase,
-)
+from __future__ import absolute_import
+
+from fixtures import Fixture
+from foolscap.api import Any, RemoteInterface, Violation
+from foolscap.furl import decode_furl
+from foolscap.pb import Tub
+from foolscap.referenceable import RemoteReferenceOnly, RemoteReferenceTracker
+from hypothesis import given
+from hypothesis.strategies import just, one_of
+from testtools import TestCase
 from testtools.matchers import (
-    Equals,
-    MatchesAll,
     AfterPreprocessing,
     Always,
+    Equals,
     IsInstance,
+    MatchesAll,
 )
-from testtools.twistedsupport import (
-    succeeded,
-    failed,
-)
-
-from twisted.trial.unittest import (
-    TestCase as TrialTestCase,
-)
-from twisted.internet.defer import (
-    inlineCallbacks,
-)
-
-from foolscap.api import (
-    Violation,
-    RemoteInterface,
-    Any,
-)
-from foolscap.furl import (
-    decode_furl,
-)
-from foolscap.pb import (
-    Tub,
-)
-from foolscap.referenceable import (
-    RemoteReferenceTracker,
-    RemoteReferenceOnly,
-)
-
-from hypothesis import (
-    given,
-)
-from hypothesis.strategies import (
-    one_of,
-    just,
-)
-
-from .foolscap import (
-    RIStub,
-    Echoer,
-    LocalRemote,
-    BrokenCopyable,
-    DummyReferenceable,
-)
+from testtools.twistedsupport import failed, succeeded
+from twisted.internet.defer import inlineCallbacks
+from twisted.trial.unittest import TestCase as TrialTestCase
 
-from ..foolscap import (
-    ShareStat,
-)
+from ..foolscap import ShareStat
+from .foolscap import BrokenCopyable, DummyReferenceable, Echoer, LocalRemote, RIStub
 
 
 class IHasSchema(RemoteInterface):
diff --git a/src/_zkapauthorizer/tests/test_lease_maintenance.py b/src/_zkapauthorizer/tests/test_lease_maintenance.py
index d13dd635c2e70de97220ab309ce4b59829780b70..2a8743dda3fbf6298f316928f093dd3ce3df5b64 100644
--- a/src/_zkapauthorizer/tests/test_lease_maintenance.py
+++ b/src/_zkapauthorizer/tests/test_lease_maintenance.py
@@ -16,105 +16,55 @@
 Tests for ``_zkapauthorizer.lease_maintenance``.
 """
 
-from __future__ import (
-    absolute_import,
-    unicode_literals,
-)
+from __future__ import absolute_import, unicode_literals
 
-from datetime import (
-    datetime,
-    timedelta,
-)
+from datetime import datetime, timedelta
 
 import attr
-
-from zope.interface import (
-    implementer,
-)
-
-from testtools import (
-    TestCase,
-)
-from testtools.matchers import (
-    Is,
-    Equals,
-    Always,
-    HasLength,
-    MatchesAll,
-    AllMatch,
-    AfterPreprocessing,
-)
-from testtools.twistedsupport import (
-    succeeded,
-)
-from fixtures import (
-    TempDir,
-)
-from hypothesis import (
-    given,
-    note,
-)
+from allmydata.client import SecretHolder
+from allmydata.interfaces import IServer, IStorageBroker
+from allmydata.util.hashutil import CRYPTO_VAL_SIZE
+from fixtures import TempDir
+from hypothesis import given, note
 from hypothesis.strategies import (
-    builds,
     binary,
+    builds,
+    composite,
+    dictionaries,
+    floats,
     integers,
+    just,
     lists,
-    floats,
-    dictionaries,
     randoms,
-    composite,
-    just,
-)
-
-from twisted.python.filepath import (
-    FilePath,
-)
-from twisted.internet.task import (
-    Clock,
-)
-from twisted.internet.defer import (
-    succeed,
-    maybeDeferred,
-)
-from twisted.application.service import (
-    IService,
-)
-
-from allmydata.util.hashutil import (
-    CRYPTO_VAL_SIZE,
-)
-from allmydata.client import (
-    SecretHolder,
-)
-from allmydata.interfaces import (
-    IStorageBroker,
-    IServer,
-)
-
-from ..foolscap import (
-    ShareStat,
-)
-
-from .matchers import (
-    Provides,
-    between,
-    leases_current,
 )
-from .strategies import (
-    storage_indexes,
-    clocks,
-    leaf_nodes,
-    node_hierarchies,
+from testtools import TestCase
+from testtools.matchers import (
+    AfterPreprocessing,
+    AllMatch,
+    Always,
+    Equals,
+    HasLength,
+    Is,
+    MatchesAll,
 )
-
+from testtools.twistedsupport import succeeded
+from twisted.application.service import IService
+from twisted.internet.defer import maybeDeferred, succeed
+from twisted.internet.task import Clock
+from twisted.python.filepath import FilePath
+from zope.interface import implementer
+
+from ..foolscap import ShareStat
 from ..lease_maintenance import (
-    NoopMaintenanceObserver,
     MemoryMaintenanceObserver,
+    NoopMaintenanceObserver,
     lease_maintenance_service,
     maintain_leases_from_root,
-    visit_storage_indexes_from_root,
     renew_leases,
+    visit_storage_indexes_from_root,
 )
+from .matchers import Provides, between, leases_current
+from .strategies import clocks, leaf_nodes, node_hierarchies, storage_indexes
 
 
 def interval_means():
diff --git a/src/_zkapauthorizer/tests/test_matchers.py b/src/_zkapauthorizer/tests/test_matchers.py
index a2df351b87637e1147c1b0851153c7f5ae17f408..e34bb8ab63f8c98d0dc1b63aaab26d9f45589119 100644
--- a/src/_zkapauthorizer/tests/test_matchers.py
+++ b/src/_zkapauthorizer/tests/test_matchers.py
@@ -16,27 +16,13 @@
 Tests for ``_zkapauthorizer.tests.matchers``.
 """
 
-from __future__ import (
-    absolute_import,
-)
-
-from zope.interface import (
-    Interface,
-    implementer,
-)
-
-from testtools import (
-    TestCase,
-)
-from testtools.matchers import (
-    Not,
-    Is,
-)
-
-from .matchers import (
-    Provides,
-    returns,
-)
+from __future__ import absolute_import
+
+from testtools import TestCase
+from testtools.matchers import Is, Not
+from zope.interface import Interface, implementer
+
+from .matchers import Provides, returns
 
 
 class IX(Interface):
diff --git a/src/_zkapauthorizer/tests/test_model.py b/src/_zkapauthorizer/tests/test_model.py
index dbff95faf7f84a39d5368afa0eb412609074808a..bff6a608515b62e430e8d7b3af69849f7d7f1365 100644
--- a/src/_zkapauthorizer/tests/test_model.py
+++ b/src/_zkapauthorizer/tests/test_model.py
@@ -17,101 +17,69 @@
 Tests for ``_zkapauthorizer.model``.
 """
 
-from __future__ import (
-    absolute_import,
-)
+from __future__ import absolute_import
 
-from os import (
-    mkdir,
-)
-from errno import (
-    EACCES,
-)
-from datetime import (
-    datetime,
-    timedelta,
-)
+from datetime import datetime, timedelta
+from errno import EACCES
+from os import mkdir
+from unittest import skipIf
 
-from unittest import (
-    skipIf,
-)
-
-from testtools import (
-    TestCase,
-)
-from testtools.matchers import (
-    Always,
-    HasLength,
-    AfterPreprocessing,
-    MatchesStructure,
-    MatchesAll,
-    Equals,
-    Raises,
-    IsInstance,
-)
-from testtools.twistedsupport import (
-    succeeded,
-)
-
-from fixtures import (
-    TempDir,
-)
-
-from hypothesis import (
-    note,
-    given,
-    assume,
-)
+from fixtures import TempDir
+from hypothesis import assume, given, note
 from hypothesis.stateful import (
     RuleBasedStateMachine,
-    rule,
-    precondition,
     invariant,
+    precondition,
+    rule,
     run_state_machine_as_test,
 )
 from hypothesis.strategies import (
-    data,
     booleans,
-    lists,
-    tuples,
+    data,
     datetimes,
-    timedeltas,
     integers,
+    lists,
     randoms,
+    timedeltas,
+    tuples,
 )
-
-from twisted.python.runtime import (
-    platform,
+from testtools import TestCase
+from testtools.matchers import (
+    AfterPreprocessing,
+    Always,
+    Equals,
+    HasLength,
+    IsInstance,
+    MatchesAll,
+    MatchesStructure,
+    Raises,
 )
+from testtools.twistedsupport import succeeded
+from twisted.python.runtime import platform
 
 from ..model import (
-    StoreOpenError,
+    DoubleSpend,
+    LeaseMaintenanceActivity,
     NotEnoughTokens,
-    VoucherStore,
-    Voucher,
     Pending,
-    DoubleSpend,
     Redeemed,
-    LeaseMaintenanceActivity,
+    StoreOpenError,
+    Voucher,
+    VoucherStore,
     memory_connect,
 )
+from .fixtures import ConfiglessMemoryVoucherStore, TemporaryVoucherStore
+from .matchers import raises
 from .strategies import (
-    tahoe_configs,
-    vouchers,
-    voucher_objects,
-    voucher_counters,
-    random_tokens,
-    unblinded_tokens,
-    posix_safe_datetimes,
     dummy_ristretto_keys,
     pass_counts,
-)
-from .fixtures import (
-    TemporaryVoucherStore,
-    ConfiglessMemoryVoucherStore,
-)
-from .matchers import (
-    raises,
+    posix_safe_datetimes,
+    random_tokens,
+    tahoe_configs,
+    unblinded_tokens,
+    voucher_counters,
+    voucher_objects,
+    vouchers,
 )
 
 
diff --git a/src/_zkapauthorizer/tests/test_plugin.py b/src/_zkapauthorizer/tests/test_plugin.py
index 26929628c5bc5af150145505b2f613dc42d349e5..78959a5d37712fd2d57f9eb5ebff7cda75f514bf 100644
--- a/src/_zkapauthorizer/tests/test_plugin.py
+++ b/src/_zkapauthorizer/tests/test_plugin.py
@@ -16,164 +16,78 @@
 Tests for the Tahoe-LAFS plugin.
 """
 
-from __future__ import (
-    absolute_import,
-)
+from __future__ import absolute_import
 
-from StringIO import (
-    StringIO,
-)
-from os import (
-    makedirs,
-)
 import tempfile
-from functools import (
-    partial,
-)
-
-from fixtures import (
-    TempDir,
-)
+from functools import partial
+from os import makedirs
 
-from testtools import (
-    TestCase,
+from allmydata.client import config_from_string, create_client_from_config
+from allmydata.interfaces import (
+    IAnnounceableStorageServer,
+    IFoolscapStoragePlugin,
+    IStorageServer,
+    RIStorageServer,
 )
+from challenge_bypass_ristretto import SigningKey
+from eliot.testing import LoggedMessage
+from fixtures import TempDir
+from foolscap.broker import Broker
+from foolscap.ipb import IReferenceable, IRemotelyCallable
+from foolscap.referenceable import LocalReferenceable
+from hypothesis import given, settings
+from hypothesis.strategies import datetimes, just, sampled_from
+from StringIO import StringIO
+from testtools import TestCase
+from testtools.content import text_content
 from testtools.matchers import (
+    AfterPreprocessing,
+    AllMatch,
     Always,
     Contains,
+    ContainsDict,
     Equals,
-    AfterPreprocessing,
-    MatchesAll,
     HasLength,
-    AllMatch,
-    ContainsDict,
-    MatchesStructure,
     IsInstance,
+    MatchesAll,
+    MatchesStructure,
 )
-from testtools.twistedsupport import (
-    succeeded,
-)
-from testtools.content import (
-    text_content,
-)
-from hypothesis import (
-    given,
-    settings,
-)
-from hypothesis.strategies import (
-    just,
-    datetimes,
-    sampled_from,
-)
-from foolscap.broker import (
-    Broker,
-)
-from foolscap.ipb import (
-    IReferenceable,
-    IRemotelyCallable,
-)
-from foolscap.referenceable import (
-    LocalReferenceable,
-)
-
-from allmydata.interfaces import (
-    IFoolscapStoragePlugin,
-    IAnnounceableStorageServer,
-    IStorageServer,
-    RIStorageServer,
-)
-from allmydata.client import (
-    config_from_string,
-    create_client_from_config,
-)
-
-from eliot.testing import (
-    LoggedMessage,
-)
-
-from twisted.python.filepath import (
-    FilePath,
-)
-from twisted.plugin import (
-    getPlugins,
-)
-from twisted.test.proto_helpers import (
-    StringTransport,
-)
-from twisted.internet.task import (
-    Clock,
-)
-from twisted.web.resource import (
-    IResource,
-)
-from twisted.plugins.zkapauthorizer import (
-    storage_server,
-)
-
-from challenge_bypass_ristretto import (
-    SigningKey,
-)
-
-from ..spending import (
-    GET_PASSES,
-)
-
-from ..foolscap import (
-    RIPrivacyPassAuthorizedStorageServer,
-)
-from ..model import (
-    NotEnoughTokens,
-    VoucherStore,
-)
-from ..controller import (
-    IssuerConfigurationMismatch,
-    PaymentController,
-    DummyRedeemer,
-)
-from .._storage_client import (
-    IncorrectStorageServerReference,
-)
-
-from ..lease_maintenance import (
-    SERVICE_NAME,
-)
-
-from .._plugin import (
-    load_signing_key,
-)
-
+from testtools.twistedsupport import succeeded
+from twisted.internet.task import Clock
+from twisted.plugin import getPlugins
+from twisted.python.filepath import FilePath
+from twisted.test.proto_helpers import StringTransport
+from twisted.web.resource import IResource
+
+from twisted.plugins.zkapauthorizer import storage_server
+
+from .._plugin import load_signing_key
+from .._storage_client import IncorrectStorageServerReference
+from ..controller import DummyRedeemer, IssuerConfigurationMismatch, PaymentController
+from ..foolscap import RIPrivacyPassAuthorizedStorageServer
+from ..lease_maintenance import SERVICE_NAME
+from ..model import NotEnoughTokens, VoucherStore
+from ..spending import GET_PASSES
+from .eliot import capture_logging
+from .foolscap import DummyReferenceable, LocalRemote, get_anonymous_storage_server
+from .matchers import Provides, raises
 from .strategies import (
-    minimal_tahoe_configs,
-    tahoe_configs,
-    client_dummyredeemer_configurations,
-    server_configurations,
     announcements,
-    vouchers,
-    storage_indexes,
-    lease_renew_secrets,
+    client_dummyredeemer_configurations,
+    dummy_ristretto_keys,
     lease_cancel_secrets,
-    sharenum_sets,
-    sizes,
+    lease_renew_secrets,
+    minimal_tahoe_configs,
     pass_counts,
     ristretto_signing_keys,
-    dummy_ristretto_keys,
-)
-from .matchers import (
-    Provides,
-    raises,
-)
-
-from .foolscap import (
-    LocalRemote,
-    get_anonymous_storage_server,
-    DummyReferenceable,
-)
-
-from .eliot import (
-    capture_logging,
+    server_configurations,
+    sharenum_sets,
+    sizes,
+    storage_indexes,
+    tahoe_configs,
+    vouchers,
 )
 
-
 SIGNING_KEY_PATH = FilePath(__file__).sibling(u"testing-signing.key")
 
 
diff --git a/src/_zkapauthorizer/tests/test_pricecalculator.py b/src/_zkapauthorizer/tests/test_pricecalculator.py
index c1ca75d82c629d709889e80361c8de98a3f3155f..baadd9119d73a37988d90baa5bdb62f106405e73 100644
--- a/src/_zkapauthorizer/tests/test_pricecalculator.py
+++ b/src/_zkapauthorizer/tests/test_pricecalculator.py
@@ -17,41 +17,16 @@
 Tests for ``_zkapauthorizer.pricecalculator``.
 """
 
-from functools import (
-    partial,
-)
-
-from testtools import (
-    TestCase,
-)
-from testtools.matchers import (
-    Equals,
-    GreaterThan,
-    IsInstance,
-    MatchesAll,
-)
-
-from hypothesis import (
-    given,
-)
-
-from hypothesis.strategies import (
-    integers,
-    lists,
-    tuples,
-)
-
-from ..pricecalculator import (
-    PriceCalculator,
-)
-
-from .strategies import (
-    sizes,
-    share_parameters,
-)
-from .matchers import (
-    greater_or_equal,
-)
+from functools import partial
+
+from hypothesis import given
+from hypothesis.strategies import integers, lists, tuples
+from testtools import TestCase
+from testtools.matchers import Equals, GreaterThan, IsInstance, MatchesAll
+
+from ..pricecalculator import PriceCalculator
+from .matchers import greater_or_equal
+from .strategies import share_parameters, sizes
 
 file_sizes = lists(sizes(), min_size=1)
 
diff --git a/src/_zkapauthorizer/tests/test_private.py b/src/_zkapauthorizer/tests/test_private.py
index 54d6d3f8ece4d1c080374bab44d80dc6a3b134f6..568cc1eb1baf613c17ee3336874b08b9aed4b17c 100644
--- a/src/_zkapauthorizer/tests/test_private.py
+++ b/src/_zkapauthorizer/tests/test_private.py
@@ -9,49 +9,19 @@
 Tests for ``_zkapauthorizer.private``.
 """
 
-from __future__ import (
-    print_function,
-    unicode_literals,
-    absolute_import,
-    division,
-)
+from __future__ import absolute_import, division, print_function, unicode_literals
 
-from testtools import (
-    TestCase,
-)
-from testtools.matchers import (
-    Equals,
-)
-from testtools.twistedsupport import (
-    succeeded,
-)
+from allmydata.test.web.matchers import has_response_code
+from testtools import TestCase
+from testtools.matchers import Equals
+from testtools.twistedsupport import succeeded
+from treq.client import HTTPClient
+from treq.testing import RequestTraversalAgent
+from twisted.web.http import NOT_FOUND, UNAUTHORIZED
+from twisted.web.http_headers import Headers
+from twisted.web.resource import Resource
 
-from twisted.web.http import (
-    UNAUTHORIZED,
-    NOT_FOUND,
-)
-from twisted.web.http_headers import (
-    Headers,
-)
-from twisted.web.resource import (
-    Resource,
-)
-
-from treq.client import (
-    HTTPClient,
-)
-from treq.testing import (
-    RequestTraversalAgent,
-)
-
-from ..private import (
-    SCHEME,
-    create_private_tree,
-)
-
-from allmydata.test.web.matchers import (
-    has_response_code,
-)
+from ..private import SCHEME, create_private_tree
 
 
 class PrivacyTests(TestCase):
diff --git a/src/_zkapauthorizer/tests/test_schema.py b/src/_zkapauthorizer/tests/test_schema.py
index a3b9d074563c02fb11d265bae3bda93a738f224e..1c53556018b064b4b47855d03242607ab8dd3aba 100644
--- a/src/_zkapauthorizer/tests/test_schema.py
+++ b/src/_zkapauthorizer/tests/test_schema.py
@@ -17,20 +17,12 @@
 Tests for ``_zkapauthorizer.schema``.
 """
 
-from __future__ import (
-    absolute_import,
-)
+from __future__ import absolute_import
 
-from testtools import (
-    TestCase,
-)
-from testtools.matchers import (
-    Equals,
-)
+from testtools import TestCase
+from testtools.matchers import Equals
 
-from ..schema import (
-    _UPGRADES,
-)
+from ..schema import _UPGRADES
 
 
 class UpgradeTests(TestCase):
diff --git a/src/_zkapauthorizer/tests/test_spending.py b/src/_zkapauthorizer/tests/test_spending.py
index 7b3908c4eb21077276382dff6a430be72a36e3fc..6833e0895e5d8f4ec38310eec5c25456ccc8e601 100644
--- a/src/_zkapauthorizer/tests/test_spending.py
+++ b/src/_zkapauthorizer/tests/test_spending.py
@@ -16,45 +16,23 @@
 Tests for ``_zkapauthorizer.spending``.
 """
 
-from testtools import (
-    TestCase,
-)
+from hypothesis import given
+from hypothesis.strategies import data, integers, randoms
+from testtools import TestCase
 from testtools.matchers import (
+    AfterPreprocessing,
     Always,
     Equals,
+    HasLength,
     MatchesAll,
     MatchesStructure,
-    HasLength,
-    AfterPreprocessing,
-)
-from testtools.twistedsupport import (
-    succeeded,
 )
+from testtools.twistedsupport import succeeded
 
-from hypothesis import (
-    given,
-)
-from hypothesis.strategies import (
-    integers,
-    randoms,
-    data,
-)
-
-from .strategies import (
-    vouchers,
-    pass_counts,
-    posix_safe_datetimes,
-)
-from .matchers import (
-    Provides,
-)
-from .fixtures import (
-    ConfiglessMemoryVoucherStore,
-)
-from ..spending import (
-    IPassGroup,
-    SpendingController,
-)
+from ..spending import IPassGroup, SpendingController
+from .fixtures import ConfiglessMemoryVoucherStore
+from .matchers import Provides
+from .strategies import pass_counts, posix_safe_datetimes, vouchers
 
 
 class PassGroupTests(TestCase):
diff --git a/src/_zkapauthorizer/tests/test_storage_client.py b/src/_zkapauthorizer/tests/test_storage_client.py
index 5d769282ea596abcbe8e94ba9068c106ba7bd420..1075884f570d7b15b220f5d33843c5105ecb522f 100644
--- a/src/_zkapauthorizer/tests/test_storage_client.py
+++ b/src/_zkapauthorizer/tests/test_storage_client.py
@@ -16,84 +16,41 @@
 Tests for ``_zkapauthorizer._storage_client``.
 """
 
-from __future__ import (
-    division,
-)
+from __future__ import division
 
-from functools import (
-    partial,
-)
+from functools import partial
 
-from testtools import (
-    TestCase,
-)
+from allmydata.client import config_from_string
+from hypothesis import given
+from hypothesis.strategies import integers, sampled_from, sets
+from testtools import TestCase
 from testtools.matchers import (
+    AfterPreprocessing,
+    AllMatch,
     Always,
-    Is,
     Equals,
-    AfterPreprocessing,
-    MatchesStructure,
     HasLength,
-    MatchesAll,
-    AllMatch,
+    Is,
     IsInstance,
+    MatchesAll,
+    MatchesStructure,
 )
-from testtools.twistedsupport import (
-    succeeded,
-    failed,
-)
-
-from hypothesis import (
-    given,
-)
-from hypothesis.strategies import (
-    sampled_from,
-    integers,
-    sets,
-)
-
-from twisted.internet.defer import (
-    succeed,
-    fail,
-)
-
-from allmydata.client import (
-    config_from_string,
-)
-
+from testtools.twistedsupport import failed, succeeded
+from twisted.internet.defer import fail, succeed
 
-from ..api import (
-    MorePassesRequired,
-)
-from ..model import (
-    NotEnoughTokens,
-)
+from .._storage_client import call_with_passes
+from .._storage_server import _ValidationResult
+from ..api import MorePassesRequired
+from ..model import NotEnoughTokens
 from ..storage_common import (
+    get_configured_allowed_public_keys,
+    get_configured_pass_value,
     get_configured_shares_needed,
     get_configured_shares_total,
-    get_configured_pass_value,
-    get_configured_allowed_public_keys,
-)
-from .._storage_client import (
-    call_with_passes,
-)
-
-from .._storage_server import (
-    _ValidationResult,
-)
-from .matchers import (
-    even,
-    odd,
-    raises,
-)
-from .strategies import (
-    pass_counts,
-    dummy_ristretto_keys,
-)
-from .storage_common import (
-    pass_factory,
-    integer_passes,
 )
+from .matchers import even, odd, raises
+from .storage_common import integer_passes, pass_factory
+from .strategies import dummy_ristretto_keys, pass_counts
 
 
 class GetConfiguredValueTests(TestCase):
diff --git a/src/_zkapauthorizer/tests/test_storage_protocol.py b/src/_zkapauthorizer/tests/test_storage_protocol.py
index f5e51f7c5df87730d4b14ce5469836c5410600fd..f9ad02602a1d8a4567b371a7c48463c052489e35 100644
--- a/src/_zkapauthorizer/tests/test_storage_protocol.py
+++ b/src/_zkapauthorizer/tests/test_storage_protocol.py
@@ -16,121 +16,72 @@
 Tests for communication between the client and server components.
 """
 
-from __future__ import (
-    absolute_import,
-)
-
-from fixtures import (
-    MonkeyPatch,
-)
-from testtools import (
-    TestCase,
-)
+from __future__ import absolute_import
+
+from allmydata.storage.common import storage_index_to_dir
+from challenge_bypass_ristretto import random_signing_key
+from fixtures import MonkeyPatch
+from foolscap.referenceable import LocalReferenceable
+from hypothesis import assume, given
+from hypothesis.strategies import data as data_strategy
+from hypothesis.strategies import integers, lists, sets, tuples
+from testtools import TestCase
 from testtools.matchers import (
+    AfterPreprocessing,
     Always,
     Equals,
     HasLength,
     IsInstance,
-    AfterPreprocessing,
     MatchesStructure,
     raises,
 )
-from testtools.twistedsupport import (
-    succeeded,
-    failed,
-)
+from testtools.twistedsupport import failed, succeeded
 
 # I'd rather use https://twistedmatrix.com/trac/ticket/8900 but efforts
 # there appear to have stalled.
-from testtools.twistedsupport._deferred import (
-    extract_result,
-)
-
-from hypothesis import (
-    given,
-    assume,
-)
-from hypothesis.strategies import (
-    sets,
-    lists,
-    tuples,
-    integers,
-    data as data_strategy,
-)
+from testtools.twistedsupport._deferred import extract_result
+from twisted.internet.task import Clock
+from twisted.python.filepath import FilePath
+from twisted.python.runtime import platform
 
-from twisted.python.runtime import (
-    platform,
-)
-from twisted.python.filepath import (
-    FilePath,
-)
-from twisted.internet.task import (
-    Clock,
-)
-
-from foolscap.referenceable import (
-    LocalReferenceable,
-)
-
-from challenge_bypass_ristretto import (
-    random_signing_key,
-)
-
-from allmydata.storage.common import (
-    storage_index_to_dir,
-)
-
-from .common import (
-    skipIf,
-)
-
-from .strategies import (
-    storage_indexes,
-    lease_renew_secrets,
-    lease_cancel_secrets,
-    write_enabler_secrets,
-    share_versions,
-    sharenums,
-    sharenum_sets,
-    sizes,
-    slot_test_and_write_vectors_for_shares,
-    posix_timestamps,
-    bytes_for_share,  # Not really a strategy...
-)
-from .matchers import (
-    matches_version_dictionary,
-)
-from .fixtures import (
-    AnonymousStorageServer,
-)
-from .storage_common import (
-    LEASE_INTERVAL,
-    cleanup_storage_server,
-    write_toy_shares,
-    whitebox_write_sparse_share,
-    get_passes,
-    privacypass_passes,
-    pass_factory,
-)
-from .foolscap import (
-    LocalRemote,
-)
+from .._storage_client import _encode_passes
 from ..api import (
     MorePassesRequired,
-    ZKAPAuthorizerStorageServer,
     ZKAPAuthorizerStorageClient,
+    ZKAPAuthorizerStorageServer,
 )
+from ..foolscap import ShareStat
 from ..storage_common import (
-    slot_testv_and_readv_and_writev_message,
     allocate_buckets_message,
     get_implied_data_length,
     required_passes,
+    slot_testv_and_readv_and_writev_message,
 )
-from .._storage_client import (
-    _encode_passes,
+from .common import skipIf
+from .fixtures import AnonymousStorageServer
+from .foolscap import LocalRemote
+from .matchers import matches_version_dictionary
+from .storage_common import (
+    LEASE_INTERVAL,
+    cleanup_storage_server,
+    get_passes,
+    pass_factory,
+    privacypass_passes,
+    whitebox_write_sparse_share,
+    write_toy_shares,
 )
-from ..foolscap import (
-    ShareStat,
+from .strategies import bytes_for_share  # Not really a strategy...
+from .strategies import (
+    lease_cancel_secrets,
+    lease_renew_secrets,
+    posix_timestamps,
+    share_versions,
+    sharenum_sets,
+    sharenums,
+    sizes,
+    slot_test_and_write_vectors_for_shares,
+    storage_indexes,
+    write_enabler_secrets,
 )
 
 
diff --git a/src/_zkapauthorizer/tests/test_storage_server.py b/src/_zkapauthorizer/tests/test_storage_server.py
index 004534c2ba153ee5baeb084c5ac74cdb9fd3334a..49a1701a3dc3ddfadbdb8f912549b978e851d5e7 100644
--- a/src/_zkapauthorizer/tests/test_storage_server.py
+++ b/src/_zkapauthorizer/tests/test_storage_server.py
@@ -16,94 +16,45 @@
 Tests for ``_zkapauthorizer._storage_server``.
 """
 
-from __future__ import (
-    absolute_import,
-    division,
-)
-
-from time import (
-    time,
-)
-from random import (
-    shuffle,
-)
-
-from testtools import (
-    TestCase,
-)
-from testtools.matchers import (
-    Equals,
-    AfterPreprocessing,
-    MatchesAll,
-)
-from hypothesis import (
-    given,
-    note,
-)
-from hypothesis.strategies import (
-    integers,
-    lists,
-    tuples,
-    one_of,
-    just,
-)
-from challenge_bypass_ristretto import (
-    RandomToken,
-    random_signing_key,
-)
-
-from twisted.python.runtime import (
-    platform,
-)
-from twisted.internet.task import (
-    Clock,
-)
-
-from foolscap.referenceable import (
-    LocalReferenceable,
-)
-
-from .common import (
-    skipIf,
-)
-from .privacypass import (
-    make_passes,
-)
-from .matchers import (
-    raises,
-)
-from .strategies import (
-    zkaps,
-    sizes,
-    sharenum_sets,
-    storage_indexes,
-    write_enabler_secrets,
-    lease_renew_secrets,
-    lease_cancel_secrets,
-    slot_test_and_write_vectors_for_shares,
-)
-from .fixtures import (
-    AnonymousStorageServer,
-)
-from .storage_common import (
-    cleanup_storage_server,
-    write_toy_shares,
-)
-from ..api import (
-    ZKAPAuthorizerStorageServer,
-    MorePassesRequired,
-)
+from __future__ import absolute_import, division
+
+from random import shuffle
+from time import time
+
+from challenge_bypass_ristretto import RandomToken, random_signing_key
+from foolscap.referenceable import LocalReferenceable
+from hypothesis import given, note
+from hypothesis.strategies import integers, just, lists, one_of, tuples
+from testtools import TestCase
+from testtools.matchers import AfterPreprocessing, Equals, MatchesAll
+from twisted.internet.task import Clock
+from twisted.python.runtime import platform
+
+from .._storage_server import _ValidationResult
+from ..api import MorePassesRequired, ZKAPAuthorizerStorageServer
 from ..storage_common import (
-    required_passes,
-    allocate_buckets_message,
     add_lease_message,
-    slot_testv_and_readv_and_writev_message,
+    allocate_buckets_message,
     get_implied_data_length,
     get_required_new_passes_for_mutable_write,
+    required_passes,
+    slot_testv_and_readv_and_writev_message,
     summarize,
 )
-from .._storage_server import (
-    _ValidationResult,
+from .common import skipIf
+from .fixtures import AnonymousStorageServer
+from .matchers import raises
+from .privacypass import make_passes
+from .storage_common import cleanup_storage_server, write_toy_shares
+from .strategies import (
+    lease_cancel_secrets,
+    lease_renew_secrets,
+    sharenum_sets,
+    sizes,
+    slot_test_and_write_vectors_for_shares,
+    storage_indexes,
+    write_enabler_secrets,
+    zkaps,
 )
 
 
diff --git a/src/_zkapauthorizer/tests/test_strategies.py b/src/_zkapauthorizer/tests/test_strategies.py
index 408053e91de8b74ae114c5fd12971d15ea203a07..b046450cc8289561a141b1e1e62b3979d4638692 100644
--- a/src/_zkapauthorizer/tests/test_strategies.py
+++ b/src/_zkapauthorizer/tests/test_strategies.py
@@ -16,36 +16,15 @@
 Tests for our custom Hypothesis strategies.
 """
 
-from __future__ import (
-    absolute_import,
-)
+from __future__ import absolute_import
 
-from testtools import (
-    TestCase,
-)
+from allmydata.client import config_from_string
+from fixtures import TempDir
+from hypothesis import given, note
+from hypothesis.strategies import data, just, one_of
+from testtools import TestCase
 
-from fixtures import (
-    TempDir,
-)
-
-from hypothesis import (
-    given,
-    note,
-)
-from hypothesis.strategies import (
-    data,
-    one_of,
-    just,
-)
-
-from allmydata.client import (
-    config_from_string,
-)
-
-from .strategies import (
-    tahoe_config_texts,
-    share_parameters,
-)
+from .strategies import share_parameters, tahoe_config_texts
 
 
 class TahoeConfigsTests(TestCase):
diff --git a/src/_zkapauthorizer/validators.py b/src/_zkapauthorizer/validators.py
index 8bea8f19eed1aab1192205e722bdbf935d3fa4a3..0b7284a54cc2894dddc41c426c88b2a4e843ea10 100644
--- a/src/_zkapauthorizer/validators.py
+++ b/src/_zkapauthorizer/validators.py
@@ -16,9 +16,7 @@
 This module implements validators for ``attrs``-defined attributes.
 """
 
-from base64 import (
-    b64decode,
-)
+from base64 import b64decode
 
 
 def is_base64_encoded(b64decode=b64decode):
diff --git a/src/twisted/plugins/zkapauthorizer.py b/src/twisted/plugins/zkapauthorizer.py
index 0b02795d806ebcb58bf279eac9f744d4e539c360..85448fe604e6c787c906a878cacd4f6524d6fbc7 100644
--- a/src/twisted/plugins/zkapauthorizer.py
+++ b/src/twisted/plugins/zkapauthorizer.py
@@ -16,8 +16,6 @@
 A drop-in to supply plugins to the Twisted plugin system.
 """
 
-from _zkapauthorizer.api import (
-    ZKAPAuthorizer,
-)
+from _zkapauthorizer.api import ZKAPAuthorizer
 
 storage_server = ZKAPAuthorizer()