From 9f3bb2b8dd5b6759d20d45473f5f5ae2bb1b373e Mon Sep 17 00:00:00 2001
From: Jean-Paul Calderone <exarkun@twistedmatrix.com>
Date: Thu, 26 Sep 2019 15:41:23 -0400
Subject: [PATCH] speak the issuer protocol correctly

at least, maybe.  we don't actually get any zkaps from this as of now.
---
 nixos/modules/tests/get-passes.py | 26 ++++++++++++++++++++------
 1 file changed, 20 insertions(+), 6 deletions(-)

diff --git a/nixos/modules/tests/get-passes.py b/nixos/modules/tests/get-passes.py
index f387f9be..a7e3abe6 100755
--- a/nixos/modules/tests/get-passes.py
+++ b/nixos/modules/tests/get-passes.py
@@ -1,32 +1,46 @@
 #!/usr/bin/env python3
 
 from sys import argv
-from requests import post
+from requests import post, get, put
 from json import dumps
+from time import sleep
 
 def main():
     clientAPIRoot, issuerAPIRoot = argv[1:]
 
-    voucher = "0123456789"
-    zkapauthz = clientAPIRoot + "/storage-plugins/privatestorage-zkapauthorizer-v1"
+    # Construct a voucher that's acceptable to various parts of the system.
+    voucher = "a" * 44
+
+    zkapauthz = clientAPIRoot + "/storage-plugins/privatestorageio-zkapauthz-v1"
 
     # Simulate a payment for a voucher.
     post(
         issuerAPIRoot + "/v1/stripe/webhook",
         dumps(charge_succeeded_json(voucher)),
+        headers={"content-type": "application/json"},
     )
 
     # Tell the client to redeem the voucher.
-    post(
+    response = put(
         zkapauthz + "/voucher",
         dumps({"voucher": voucher}),
     )
+    if response.status_code // 100 != 2:
+        print("Unexpected response: {}".format(response.content))
+        response.raise_for_status()
 
     # Poll the vouchers list for a while to see it get redeemed.
-    expected = {"number": voucher, "redeemed": True}
+    expected = {"version": 1, "number": voucher, "redeemed": True}
+    def find_redeemed_voucher():
+        response = get(zkapauthz + "/voucher/" + voucher)
+        response.raise_for_status()
+        actual = response.json()
+        print("Actual response: {}".format(actual))
+        return expected == actual
+
     retry(
         "find redeemed voucher",
-        lambda: expected == get(zkapauthz + "/voucher/" + voucher),
+        find_redeemed_voucher,
     )
 
 
-- 
GitLab