From 459ef6dd3fdb804fb6fc60176c4dc48fc00cf07d Mon Sep 17 00:00:00 2001
From: Jean-Paul Calderone <exarkun@twistedmatrix.com>
Date: Tue, 20 Aug 2019 10:45:45 -0400
Subject: [PATCH] Come to agreement on what `get_tokens` returns

It returns a list of Passes.  Encode them appropriately for Foolscap.
---
 src/_zkapauthorizer/_storage_client.py            | 15 +++++++++++----
 .../tests/test_storage_protocol.py                |  7 +++++--
 2 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/src/_zkapauthorizer/_storage_client.py b/src/_zkapauthorizer/_storage_client.py
index 7615bba..7c7c2a8 100644
--- a/src/_zkapauthorizer/_storage_client.py
+++ b/src/_zkapauthorizer/_storage_client.py
@@ -59,6 +59,13 @@ class ZKAPAuthorizerStorageClient(object):
     def _rref(self):
         return self._get_rref()
 
+    def _get_encoded_tokens(self):
+        return list(
+            t.text.encode("ascii")
+            for t
+            in self._get_tokens()
+        )
+
     def get_version(self):
         return self._rref.callRemote(
             "get_version",
@@ -75,7 +82,7 @@ class ZKAPAuthorizerStorageClient(object):
     ):
         return self._rref.callRemote(
             "allocate_buckets",
-            self._get_tokens(),
+            self._get_encoded_tokens(),
             storage_index,
             renew_secret,
             cancel_secret,
@@ -101,7 +108,7 @@ class ZKAPAuthorizerStorageClient(object):
     ):
         return self._rref.callRemote(
             "add_lease",
-            self._get_tokens(),
+            self._get_encoded_tokens(),
             storage_index,
             renew_secret,
             cancel_secret,
@@ -114,7 +121,7 @@ class ZKAPAuthorizerStorageClient(object):
     ):
         return self._rref.callRemote(
             "renew_lease",
-            self._get_tokens(),
+            self._get_encoded_tokens(),
             storage_index,
             renew_secret,
         )
@@ -143,7 +150,7 @@ class ZKAPAuthorizerStorageClient(object):
     ):
         return self._rref.callRemote(
             "slot_testv_and_readv_and_writev",
-            self._get_tokens(),
+            self._get_encoded_tokens(),
             storage_index,
             secrets,
             tw_vectors,
diff --git a/src/_zkapauthorizer/tests/test_storage_protocol.py b/src/_zkapauthorizer/tests/test_storage_protocol.py
index 202d87e..421d6e7 100644
--- a/src/_zkapauthorizer/tests/test_storage_protocol.py
+++ b/src/_zkapauthorizer/tests/test_storage_protocol.py
@@ -84,9 +84,12 @@ from ..api import (
     ZKAPAuthorizerStorageServer,
     ZKAPAuthorizerStorageClient,
 )
-from .._storage_server import (
+from ..foolscap import (
     TOKEN_LENGTH,
 )
+from ..model import (
+    Pass,
+)
 
 class AnonymousStorageServer(Fixture):
     """
@@ -157,7 +160,7 @@ class ShareTests(TestCase):
         self.anonymous_storage_server = self.useFixture(AnonymousStorageServer()).storage_server
 
         def get_tokens():
-            return [b"x" * TOKEN_LENGTH]
+            return [Pass(u"x" * TOKEN_LENGTH)]
 
         self.server = ZKAPAuthorizerStorageServer(
             self.anonymous_storage_server,
-- 
GitLab