Skip to content

Commit 81608fd

Browse files
committed
refactor(apigateway): warn on event_handler_debug deprecation in favour of powertools_dev
1 parent 091a32c commit 81608fd

File tree

2 files changed

+28
-4
lines changed

2 files changed

+28
-4
lines changed

Diff for: aws_lambda_powertools/event_handler/api_gateway.py

+18-4
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from aws_lambda_powertools.event_handler import content_types
1616
from aws_lambda_powertools.event_handler.exceptions import NotFoundError, ServiceError
1717
from aws_lambda_powertools.shared import constants
18-
from aws_lambda_powertools.shared.functions import resolve_truthy_env_var_choice
18+
from aws_lambda_powertools.shared.functions import powertools_dev_is_set, strtobool
1919
from aws_lambda_powertools.shared.json_encoder import Encoder
2020
from aws_lambda_powertools.utilities.data_classes import (
2121
ALBEvent,
@@ -444,9 +444,7 @@ def __init__(
444444
self._cors = cors
445445
self._cors_enabled: bool = cors is not None
446446
self._cors_methods: Set[str] = {"OPTIONS"}
447-
self._debug = resolve_truthy_env_var_choice(
448-
env=os.getenv(constants.EVENT_HANDLER_DEBUG_ENV, "false"), choice=debug
449-
)
447+
self._debug = self._has_debug(debug)
450448
self._strip_prefixes = strip_prefixes
451449

452450
# Allow for a custom serializer or a concise json serialization
@@ -511,6 +509,22 @@ def resolve(self, event, context) -> Dict[str, Any]:
511509
def __call__(self, event, context) -> Any:
512510
return self.resolve(event, context)
513511

512+
@staticmethod
513+
def _has_debug(debug: Optional[bool] = None) -> bool:
514+
# It might have been explicitly switched off (debug=False)
515+
if debug is not None:
516+
return debug
517+
518+
# Maintenance: deprecate EVENT_HANDLER_DEBUG later in V2.
519+
env_debug = os.getenv(constants.EVENT_HANDLER_DEBUG_ENV)
520+
if env_debug is not None:
521+
warnings.warn(
522+
"POWERTOOLS_EVENT_HANDLER_DEBUG is set and will be deprecated in V2. Please use POWERTOOLS_DEV instead."
523+
)
524+
return strtobool(env_debug) or powertools_dev_is_set()
525+
526+
return powertools_dev_is_set()
527+
514528
@staticmethod
515529
def _compile_regex(rule: str):
516530
"""Precompile regex pattern

Diff for: tests/functional/event_handler/test_api_gateway.py

+10
Original file line numberDiff line numberDiff line change
@@ -686,6 +686,16 @@ def test_debug_mode_environment_variable(monkeypatch):
686686
assert app._debug
687687

688688

689+
def test_powertools_dev_sets_debug_mode(monkeypatch):
690+
# GIVEN a debug mode environment variable is set
691+
monkeypatch.setenv(constants.POWERTOOLS_DEV_ENV, "true")
692+
app = ApiGatewayResolver()
693+
694+
# WHEN calling app._debug
695+
# THEN the debug mode is enabled
696+
assert app._debug
697+
698+
689699
def test_debug_json_formatting(json_dump):
690700
# GIVEN debug is True
691701
app = ApiGatewayResolver(debug=True)

0 commit comments

Comments
 (0)