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