diff --git a/src/_zkapauthorizer/_storage_server.py b/src/_zkapauthorizer/_storage_server.py index 7aa17c840a705ffb15a656a8f85befda42836781..a89f20932fab26b145aedef09e22bbf5dcd68358 100644 --- a/src/_zkapauthorizer/_storage_server.py +++ b/src/_zkapauthorizer/_storage_server.py @@ -101,6 +101,7 @@ from .storage_common import ( SLOT_HEADER_SIZE = 468 LEASE_TRAILER_SIZE = 4 +@attr.s class MorePassesRequired(Exception): """ Storage operations fail with ``MorePassesRequired`` when they are not @@ -112,9 +113,8 @@ class MorePassesRequired(Exception): ivar int required_count: The number of valid passes which must be presented for the operation to be authorized. """ - def __init__(self, valid_count, required_count): - self.valid_count = valid_count - self.required_count = required_count + valid_count = attr.ib() + required_count = attr.ib() def __repr__(self): return "MorePassedRequired(valid_count={}, required_count={})".format( diff --git a/src/_zkapauthorizer/tests/test_storage_server.py b/src/_zkapauthorizer/tests/test_storage_server.py index 88ae5a1f1294bc0679787942f7432aa7e08d2291..fad28cb7dd29e032da565921a97b43397e69df8d 100644 --- a/src/_zkapauthorizer/tests/test_storage_server.py +++ b/src/_zkapauthorizer/tests/test_storage_server.py @@ -34,8 +34,6 @@ from testtools import ( from testtools.matchers import ( Equals, AfterPreprocessing, - MatchesStructure, - raises, ) from hypothesis import ( given, @@ -70,6 +68,9 @@ from .common import ( from .privacypass import ( make_passes, ) +from .matchers import ( + raises, +) from .strategies import ( zkaps, sizes, @@ -231,8 +232,13 @@ class PassValidationTests(TestCase): result = mutable_write() except MorePassesRequired as e: self.assertThat( - e.required_count, - Equals(1), + e, + Equals( + MorePassesRequired( + valid_count=0, + required_count=1, + ), + ), ) else: self.fail("expected MorePassesRequired, got {}".format(result)) @@ -329,9 +335,11 @@ class PassValidationTests(TestCase): except MorePassesRequired as e: self.assertThat( e, - MatchesStructure( - valid_count=Equals(0), - required_count=Equals(1), + Equals( + MorePassesRequired( + valid_count=0, + required_count=1, + ), ), ) else: @@ -423,9 +431,11 @@ class PassValidationTests(TestCase): except MorePassesRequired as e: self.assertThat( e, - MatchesStructure( - valid_count=Equals(len(passes)), - required_count=Equals(required_count), + Equals( + MorePassesRequired( + valid_count=len(passes), + required_count=required_count, + ), ), ) else: