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()