diff --git a/src/_zkapauthorizer/_storage_server.py b/src/_zkapauthorizer/_storage_server.py index c5ce9a5c50280b73ae383abe0b0dcbea2a6754c2..7cd3cd213e2aa1d647748ac5e578850fb706d1e6 100644 --- a/src/_zkapauthorizer/_storage_server.py +++ b/src/_zkapauthorizer/_storage_server.py @@ -216,6 +216,13 @@ class ZKAPAuthorizerStorageServer(Referenceable): buckets=self._get_buckets(), ) + def _clear_metrics(self): + """ + Forget all recorded metrics. + """ + # There is also a `clear` method but it raises an AttributeError. + self._metric_spending_successes._metric_init() + def remote_get_version(self): """ Pass-through without pass check to allow clients to learn about our diff --git a/src/_zkapauthorizer/tests/test_storage_server.py b/src/_zkapauthorizer/tests/test_storage_server.py index 1abecc5c7c7aac004e33980591b1983e07de4db0..08bbc1762739e2d47151ca2a3d7dc939b950cdda 100644 --- a/src/_zkapauthorizer/tests/test_storage_server.py +++ b/src/_zkapauthorizer/tests/test_storage_server.py @@ -199,6 +199,10 @@ class PassValidationTests(TestCase): # method. cleanup_storage_server(self.anonymous_storage_server) + # Reset all of the metrics, too, so the individual tests have a + # simpler job (can compare values relative to 0). + self.storage_server._clear_metrics() + def test_allocate_buckets_fails_without_enough_passes(self): """ ``remote_allocate_buckets`` fails with ``MorePassesRequired`` if it is @@ -573,9 +577,6 @@ class PassValidationTests(TestCase): list(RandomToken.create() for i in range(num_passes)), ) - before_count = read_count(self.storage_server) - before_bucket = read_bucket(self.storage_server, num_passes) - # Create an initial share to toy with. test, read = self.storage_server.doRemoteCall( "slot_testv_and_readv_and_writev", @@ -593,12 +594,12 @@ class PassValidationTests(TestCase): after_bucket = read_bucket(self.storage_server, num_passes) self.expectThat( - after_count - before_count, + after_count, Equals(1), "Unexpected histogram sum value", ) self.assertThat( - after_bucket - before_bucket, + after_bucket, Equals(1), "Unexpected histogram bucket value", ) @@ -626,9 +627,6 @@ class PassValidationTests(TestCase): list(RandomToken.create() for i in range(num_passes)), ) - before_count = read_count(self.storage_server) - before_bucket = read_bucket(self.storage_server, num_passes) - alreadygot, allocated = self.storage_server.doRemoteCall( "allocate_buckets", (), @@ -647,12 +645,12 @@ class PassValidationTests(TestCase): after_bucket = read_bucket(self.storage_server, num_passes) self.expectThat( - after_count - before_count, + after_count, Equals(1), "Unexpected histogram sum value", ) self.assertThat( - after_bucket - before_bucket, + after_bucket, Equals(1), "Unexpected histogram bucket value", ) @@ -692,9 +690,6 @@ class PassValidationTests(TestCase): list(RandomToken.create() for i in range(num_passes)), ) - before_count = read_count(self.storage_server) - before_bucket = read_bucket(self.storage_server, num_passes) - self.storage_server.doRemoteCall( "add_lease", (), @@ -710,12 +705,12 @@ class PassValidationTests(TestCase): after_bucket = read_bucket(self.storage_server, num_passes) self.expectThat( - after_count - before_count, + after_count, Equals(1), "Unexpected histogram sum value", ) self.assertThat( - after_bucket - before_bucket, + after_bucket, Equals(1), "Unexpected histogram bucket value", )