diff --git a/src/_zkapauthorizer/controller.py b/src/_zkapauthorizer/controller.py index d852606c82891c4d1d0d75711e931aab00b896c8..5c387d4573c84eaedc4c184bbc984d7172aab1ba 100644 --- a/src/_zkapauthorizer/controller.py +++ b/src/_zkapauthorizer/controller.py @@ -163,11 +163,15 @@ class NonRedeemer(object): @implementer(IRedeemer) @attr.s -class DoubleSpentRedeemer(object): +class DoubleSpendRedeemer(object): """ - A ``DoubleSpentRedeemer`` pretends to try to redeem vouchers for ZKAPs but + A ``DoubleSpendRedeemer`` pretends to try to redeem vouchers for ZKAPs but always fails with an error indicating the voucher has already been spent. """ + @classmethod + def make(cls, section_name, node_config, announcement, reactor): + return cls() + def random_tokens_for_voucher(self, voucher, count): return dummy_random_tokens(voucher, count) @@ -495,5 +499,6 @@ def get_redeemer(plugin_name, node_config, announcement, reactor): _REDEEMERS = { u"non": NonRedeemer.make, u"dummy": DummyRedeemer.make, + u"double-spend": DoubleSpendRedeemer.make, u"ristretto": RistrettoRedeemer.make, } diff --git a/src/_zkapauthorizer/tests/test_controller.py b/src/_zkapauthorizer/tests/test_controller.py index bccd896145a8f9b476cd0d30660a607ff252dc43..c357ca4d8491d343ab42028f34c36cf0f606b5a9 100644 --- a/src/_zkapauthorizer/tests/test_controller.py +++ b/src/_zkapauthorizer/tests/test_controller.py @@ -96,7 +96,7 @@ from ..controller import ( IRedeemer, NonRedeemer, DummyRedeemer, - DoubleSpentRedeemer, + DoubleSpendRedeemer, RistrettoRedeemer, PaymentController, AlreadySpent, @@ -191,7 +191,7 @@ class PaymentControllerTests(TestCase): ) controller = PaymentController( store, - DoubleSpentRedeemer(), + DoubleSpendRedeemer(), ) controller.redeem(voucher)