From 13868c7502afe009d7409e2a206d5a923fd7ca5d Mon Sep 17 00:00:00 2001 From: Atte Isopuro Date: Mon, 17 Oct 2022 14:05:44 +0300 Subject: [PATCH] [FIX] sentry: test failure due to incomplete transport init The test code uses a "mock" Transport object to ensure that events are stored locally in memory, instead of triggering network requests. The Sentry client is cleaned up once done, and this triggers a call to capture_envelope, a different way of sending events to Sentry. Since our mock class did not fully complete initialization, and also did not provide an overriding method, the original was called, which depends on proper initialization to work. We introduce an override for capture_envelope: as it is meant to be a "sibling" to capture_event, it makes sense for us to also make sure events registrered in this way are intercepted, even if we don't currently expect any of our tests to explicitly cause it to be used. --- sentry/tests/test_client.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sentry/tests/test_client.py b/sentry/tests/test_client.py index 55759a41d..efbcb29d6 100644 --- a/sentry/tests/test_client.py +++ b/sentry/tests/test_client.py @@ -36,10 +36,14 @@ class InMemoryTransport(HttpTransport): def __init__(self, *args, **kwargs): self.events = [] + self.envelopes = [] def capture_event(self, event, *args, **kwargs): self.events.append(event) + def capture_envelope(self, envelope, *args, **kwargs): + self.envelopes.append(envelope) + def has_event(self, event_level, event_msg): for event in self.events: if (