From 10dfeb7ff39ddb3a36c0aefc8ace28eb2fca9250 Mon Sep 17 00:00:00 2001
From: Jean-Paul Calderone <exarkun@twistedmatrix.com>
Date: Wed, 29 Apr 2020 14:03:04 -0400
Subject: [PATCH] Call redeemWithCounter with a Voucher object instead of
 voucher text

---
 src/_zkapauthorizer/controller.py | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/_zkapauthorizer/controller.py b/src/_zkapauthorizer/controller.py
index b68779c..57c9d81 100644
--- a/src/_zkapauthorizer/controller.py
+++ b/src/_zkapauthorizer/controller.py
@@ -363,6 +363,12 @@ class DummyRedeemer(object):
         :return: An already-fired ``Deferred`` that has a list of
           ``UnblindedToken`` instances wrapping meaningless values.
         """
+        if not isinstance(voucher, Voucher):
+            raise TypeError(
+                "Got {}, expected instance of Voucher".format(
+                    voucher,
+                ),
+            )
         def dummy_unblinded_token(random_token):
             random_value = b64decode(random_token.token_value.encode("ascii"))
             unblinded_value = random_value + b"x" * (96 - len(random_value))
@@ -768,7 +774,7 @@ class PaymentController(object):
                 ),
             ),
             lambda: delitem(self._active, voucher.number),
-            lambda: self.redeemer.redeemWithCounter(voucher.number, counter, random_tokens),
+            lambda: self.redeemer.redeemWithCounter(voucher, counter, random_tokens),
         )
         d.addCallbacks(
             partial(self._redeem_success, voucher.number, counter),
-- 
GitLab