diff --git a/nixos/modules/tests/get-passes.py b/nixos/modules/tests/get-passes.py index f387f9bef5ab8bad50d9b7579930dfb8f48e0d44..a7e3abe6141043ced751397b3e3ba0232531eba3 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, )