From bec40d9d68205f7593977c20a1c669fdfb59bb65 Mon Sep 17 00:00:00 2001 From: Jean-Paul Calderone <exarkun@twistedmatrix.com> Date: Fri, 4 Sep 2020 11:58:01 -0400 Subject: [PATCH] Parse the byte string pass-value into an integer --- src/_zkapauthorizer/_plugin.py | 2 +- src/_zkapauthorizer/tests/strategies.py | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/_zkapauthorizer/_plugin.py b/src/_zkapauthorizer/_plugin.py index 8f9b629..98eb8da 100644 --- a/src/_zkapauthorizer/_plugin.py +++ b/src/_zkapauthorizer/_plugin.py @@ -141,7 +141,7 @@ class ZKAPAuthorizer(object): def get_storage_server(self, configuration, get_anonymous_storage_server): kwargs = configuration.copy() root_url = kwargs.pop(u"ristretto-issuer-root-url") - pass_value = kwargs.pop(u"pass-value", BYTES_PER_PASS) + pass_value = int(kwargs.pop(u"pass-value", BYTES_PER_PASS)) signing_key = SigningKey.decode_base64( FilePath( kwargs.pop(u"ristretto-signing-key-path"), diff --git a/src/_zkapauthorizer/tests/strategies.py b/src/_zkapauthorizer/tests/strategies.py index 88b705e..025260d 100644 --- a/src/_zkapauthorizer/tests/strategies.py +++ b/src/_zkapauthorizer/tests/strategies.py @@ -216,10 +216,19 @@ def server_configurations(signing_key_path): :param unicode signing_key_path: A value to insert for the **ristretto-signing-key-path** item. """ - return just({ - u"ristretto-issuer-root-url": u"https://issuer.example.invalid/", - u"ristretto-signing-key-path": signing_key_path.path, - }) + return one_of( + fixed_dictionaries({ + u"pass-value": + # The configuration is ini so everything is always a byte string! + integers(min_value=1).map(bytes), + }), + just({}), + ).map( + lambda config: config.update({ + u"ristretto-issuer-root-url": u"https://issuer.example.invalid/", + u"ristretto-signing-key-path": signing_key_path.path, + }) or config, + ) def client_ristrettoredeemer_configurations(): -- GitLab