-
Notifications
You must be signed in to change notification settings - Fork 429
fix(idempotency): TypeError when calling is_missing_idempotency_key with an int #315
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(idempotency): TypeError when calling is_missing_idempotency_key with an int #315
Conversation
Fix for: TypeError: 'int' object is not iterable
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great catch! One minor thing to break that into a multi-line statement as that would've been easier to spot this issue too.
@@ -183,7 +183,7 @@ def _get_hashed_idempotency_key(self, lambda_event: Dict[str, Any]) -> str: | |||
|
|||
@staticmethod | |||
def is_missing_idempotency_key(data) -> bool: | |||
return data is None or not data or all(x is None for x in data) | |||
return data is None or not data or (type(data).__name__ in ("tuple", "list") and all(x is None for x in data)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we break this into a multi-line thing?
It's quite complex now and we might find another bug here in the future I'm sure
Codecov Report
@@ Coverage Diff @@
## develop #315 +/- ##
========================================
Coverage 99.88% 99.88%
========================================
Files 91 91
Lines 3339 3341 +2
Branches 162 163 +1
========================================
+ Hits 3335 3337 +2
Misses 2 2
Partials 2 2
Continue to review full report at Codecov.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Control flow simplification with two Ifs
aws_lambda_powertools/utilities/idempotency/persistence/base.py
Outdated
Show resolved
Hide resolved
aws_lambda_powertools/utilities/idempotency/persistence/base.py
Outdated
Show resolved
Hide resolved
aws_lambda_powertools/utilities/idempotency/persistence/base.py
Outdated
Show resolved
Hide resolved
@heitorlessa funny way of doing it: assert type(None).__name__ == "NoneType" |
First name I actually see type(obj).__name__ tbh as opposed to instance ;)
…On Sun, 7 Mar 2021 at 09:09, Michael Brewer ***@***.***> wrote:
@heitorlessa <https://github.com/heitorlessa> funny way of doing it:
assert type(None).__name__ == "NoneType"
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#315 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAZPQBEY43RE5PTXNUQ4JC3TCMYB3ANCNFSM4YXRJGBQ>
.
|
…tools-python into develop * 'develop' of https://github.com/awslabs/aws-lambda-powertools-python: feat(logging): Include exception_name (#320) chore: remove gatsby mention as migrated completed refactor(parameters): Consistently reference env (#319) docs(metrics): remove minimum dimensions docs: Correct code examples (#317) docs(metrics): Correct code examples in markdown (#316) fix(idempotency): TypeError when calling is_missing_idempotency_key with an int (#315) docs(metrics): Corrections to the code examples (#314) fix(idempotency): Correctly handle save_inprogress errors (#313)
Description of changes:
Fix for
is_missing_idempotency_key
which can raise aTypeError: 'int' object is not iterable
for the follow code
Checklist
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.