From d1dfd7832fd34d12079bef009bc8712ebae1a520 Mon Sep 17 00:00:00 2001 From: Joe Haines Date: Tue, 23 Jan 2024 16:39:28 +0000 Subject: [PATCH] Update warning when invalid delivery is set --- bugsnag/configuration.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/bugsnag/configuration.py b/bugsnag/configuration.py index df5604fc..00e8f93b 100644 --- a/bugsnag/configuration.py +++ b/bugsnag/configuration.py @@ -271,7 +271,20 @@ def delivery(self): @delivery.setter # type: ignore def delivery(self, value): - if hasattr(value, 'deliver') and callable(value.deliver): + has_deliver = hasattr(value, 'deliver') and callable(value.deliver) + has_deliver_sessions = hasattr(value, 'deliver_sessions') and callable(value.deliver_sessions) + + if has_deliver and has_deliver_sessions: + has_options_parameter = 'options' in value.deliver_sessions.__code__.co_varnames + + if not has_options_parameter: + warnings.warn( + 'delivery.deliver_sessions should accept an "options" ' + + 'parameter to allow for synchronous delivery, sessions' + + 'sessions may be lost when the process exits', + DeprecationWarning + ) + self._delivery = value else: message = ('delivery should implement Delivery interface, got ' +