From 92642b773853bbc5de9a2e376d7d250c013d6db2 Mon Sep 17 00:00:00 2001
From: Jean-Paul Calderone <exarkun@twistedmatrix.com>
Date: Tue, 16 Jul 2019 10:16:09 -0400
Subject: [PATCH] Use the attr.s validator feature

---
 src/_secureaccesstokenauthorizer/_storage_server.py |  5 ++++-
 .../tests/test_plugin.py                            | 13 ++++++++++++-
 2 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/src/_secureaccesstokenauthorizer/_storage_server.py b/src/_secureaccesstokenauthorizer/_storage_server.py
index ed44a7e..fbae0c3 100644
--- a/src/_secureaccesstokenauthorizer/_storage_server.py
+++ b/src/_secureaccesstokenauthorizer/_storage_server.py
@@ -21,6 +21,9 @@ implemented in ``_storage_client.py``.
 """
 
 import attr
+from attr.validators import (
+    provides,
+)
 
 from zope.interface import (
     implementer_only,
@@ -145,7 +148,7 @@ class RITokenAuthorizedStorageServer(RemoteInterface):
 # attributes on self and it's hard to avoid that.
 @attr.s(cmp=False)
 class SecureAccessTokenAuthorizerStorageServer(Referenceable):
-    _original = attr.ib()
+    _original = attr.ib(validator=provides(RIStorageServer))
 
     def _validate_tokens(self, tokens):
         pass
diff --git a/src/_secureaccesstokenauthorizer/tests/test_plugin.py b/src/_secureaccesstokenauthorizer/tests/test_plugin.py
index 00c6f65..14d544b 100644
--- a/src/_secureaccesstokenauthorizer/tests/test_plugin.py
+++ b/src/_secureaccesstokenauthorizer/tests/test_plugin.py
@@ -16,6 +16,10 @@
 Tests for the Tahoe-LAFS plugin.
 """
 
+from zope.interface import (
+    implementer,
+)
+
 from testtools import (
     TestCase,
 )
@@ -44,6 +48,7 @@ from allmydata.interfaces import (
     IFoolscapStoragePlugin,
     IAnnounceableStorageServer,
     IStorageServer,
+    RIStorageServer,
 )
 
 from twisted.plugin import (
@@ -64,8 +69,14 @@ from .matchers import (
     Provides,
 )
 
+
+@implementer(RIStorageServer)
+class StubStorageServer(object):
+    pass
+
+
 def get_anonymous_storage_server():
-    return None
+    return StubStorageServer()
 
 
 def get_rref():
-- 
GitLab