From bfdef9d7c4573f4d4fdf5e7c04ce0df267b61d73 Mon Sep 17 00:00:00 2001 From: Jean-Paul Calderone <exarkun@twistedmatrix.com> Date: Mon, 11 May 2020 10:37:12 -0400 Subject: [PATCH] Refactor MorePassesRequired to use attrs And update tests to take advantage of free equality we get --- src/_zkapauthorizer/_storage_server.py | 6 ++-- .../tests/test_storage_server.py | 30 ++++++++++++------- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/src/_zkapauthorizer/_storage_server.py b/src/_zkapauthorizer/_storage_server.py index 7aa17c8..a89f209 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 88ae5a1..fad28cb 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: -- GitLab