From 11b4cc2782e2c0c849b179e4b9154e5f31e4d872 Mon Sep 17 00:00:00 2001 From: Jean-Paul Calderone <exarkun@twistedmatrix.com> Date: Wed, 5 Jan 2022 13:35:02 -0500 Subject: [PATCH] drop our copy of some eliot functions that we can now use from upstream --- setup.cfg | 2 +- src/_zkapauthorizer/tests/eliot.py | 76 ------------------------ src/_zkapauthorizer/tests/test_plugin.py | 3 +- 3 files changed, 2 insertions(+), 79 deletions(-) delete mode 100644 src/_zkapauthorizer/tests/eliot.py diff --git a/setup.cfg b/setup.cfg index 065d28f..8fd1f29 100644 --- a/setup.cfg +++ b/setup.cfg @@ -34,7 +34,7 @@ packages = install_requires = attrs zope.interface - eliot + eliot >= 1.11,<2 aniso8601 python-challenge-bypass-ristretto # The pip resolver sometimes finds treq's dependencies first and these are diff --git a/src/_zkapauthorizer/tests/eliot.py b/src/_zkapauthorizer/tests/eliot.py deleted file mode 100644 index 094b64d..0000000 --- a/src/_zkapauthorizer/tests/eliot.py +++ /dev/null @@ -1,76 +0,0 @@ -# Copyright 2019 PrivateStorage.io, LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -""" -Eliot testing helpers. -""" - -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. -def validate_logging(assertion, *assertionArgs, **assertionKwargs): - def decorator(function): - @wraps(function) - def wrapper(self, *args, **kwargs): - skipped = False - - kwargs["logger"] = logger = MemoryLogger() - self.addCleanup(check_for_errors, logger) - # TestCase runs cleanups in reverse order, and we want this to - # run *before* tracebacks are checked: - if assertion is not None: - self.addCleanup( - lambda: skipped - or assertion(self, logger, *assertionArgs, **assertionKwargs) - ) - try: - return function(self, *args, **kwargs) - except SkipTest: - skipped = True - raise - - return wrapper - - return decorator - - -def capture_logging(assertion, *assertionArgs, **assertionKwargs): - """ - Capture and validate all logging that doesn't specify a L{Logger}. - - See L{validate_logging} for details on the rest of its behavior. - """ - - def decorator(function): - @validate_logging(assertion, *assertionArgs, **assertionKwargs) - @wraps(function) - def wrapper(self, *args, **kwargs): - logger = kwargs["logger"] - previous_logger = swap_logger(logger) - - def cleanup(): - swap_logger(previous_logger) - - self.addCleanup(cleanup) - return function(self, *args, **kwargs) - - return wrapper - - return decorator diff --git a/src/_zkapauthorizer/tests/test_plugin.py b/src/_zkapauthorizer/tests/test_plugin.py index 10cdaf4..ce0c16b 100644 --- a/src/_zkapauthorizer/tests/test_plugin.py +++ b/src/_zkapauthorizer/tests/test_plugin.py @@ -30,7 +30,7 @@ from allmydata.interfaces import ( RIStorageServer, ) from challenge_bypass_ristretto import SigningKey -from eliot.testing import LoggedMessage +from eliot.testing import LoggedMessage, capture_logging from fixtures import TempDir from foolscap.broker import Broker from foolscap.ipb import IReferenceable, IRemotelyCallable @@ -75,7 +75,6 @@ from ..lease_maintenance import SERVICE_NAME, LeaseMaintenanceConfig from ..model import NotEnoughTokens, VoucherStore from ..spending import GET_PASSES from .common import skipIf -from .eliot import capture_logging from .foolscap import DummyReferenceable, LocalRemote, get_anonymous_storage_server from .matchers import Provides, raises from .strategies import ( -- GitLab