diff --git a/src/_zkapauthorizer/tests/test_client_resource.py b/src/_zkapauthorizer/tests/test_client_resource.py index e816998925eb6a9bf2878178d333a6d897fecef7..f81098452c95682eac683f12d7cb1bc6020d974f 100644 --- a/src/_zkapauthorizer/tests/test_client_resource.py +++ b/src/_zkapauthorizer/tests/test_client_resource.py @@ -54,6 +54,7 @@ from testtools.matchers import ( ContainsDict, AfterPreprocessing, Equals, + NotEquals, Always, GreaterThan, ) @@ -648,6 +649,10 @@ class VoucherTests(TestCase): ).decode("utf-8"), ).encode("ascii"), ) + if redeemed: + token_count_comparison = NotEquals + else: + token_count_comparison = Equals self.assertThat( getting, @@ -655,13 +660,17 @@ class VoucherTests(TestCase): MatchesAll( ok_response(headers=application_json()), AfterPreprocessing( - json_content, + readBody, succeeded( - Equals(Voucher( - voucher, - created=now, - redeemed=redeemed, - ).marshal()), + AfterPreprocessing( + Voucher.from_json, + MatchesStructure( + number=Equals(voucher), + created=Equals(now), + redeemed=Equals(redeemed), + token_count=token_count_comparison(None), + ), + ), ), ), ), @@ -721,6 +730,10 @@ class VoucherTests(TestCase): voucher, created=now, redeemed=True, + # Value duplicated from + # PaymentController.redeem default. + # Should do this better. + token_count=100, ).marshal() for voucher in vouchers