-
Notifications
You must be signed in to change notification settings - Fork 363
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
add feature (#704) Check if args/kwargs are JSON Serializable while running locally #1154
add feature (#704) Check if args/kwargs are JSON Serializable while running locally #1154
Conversation
- JSON unserializable content passed to asyncronous task during local develop will raise exception on purpose to allow developers to catch JSON unserializable errors during development. :white_check_mark: add `test_async_call_arg_not_json_seralizable` testcase :fire: remove unnecessary coding comment in `test_async.py`
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 work! ran into these errors myself on AWS, will make the dev experience a bit better 🥳
only two minor comments :)
🔧 add specific `UnserializableJsonError` exception for clarity
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.
Just a few suggestions for very minor things - great work! 🥇
Co-authored-by: javulticat <31746850+javulticat@users.noreply.github.com>
…as per review comment
…n-serializable' into feature/issue-704-check-args-json-serializable
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.
looks good to me!
…ile running locally (zappa#1154) * ✨ add feature (zappa#705) - JSON unserializable content passed to asyncronous task during local develop will raise exception on purpose to allow developers to catch JSON unserializable errors during development. :white_check_mark: add `test_async_call_arg_not_json_seralizable` testcase :fire: remove unnecessary coding comment in `test_async.py` * :art: fix flake8 * :pencil: fix typo :wrench: add specific `UnserializableJsonError` exception for clarity * :white_check_mark: expand testcase to include custome exception, `UnserializableJsonError`. * :art: run isort/black * :fire: remove unnecessary assert Co-authored-by: javulticat <31746850+javulticat@users.noreply.github.com> * :recycle: simplify `validate_json_serializable()` to accept *args, **kwargs as per review comment * :fire: remove unnecessary import and use `object()` as unserializable_object sample. Co-authored-by: javulticat <31746850+javulticat@users.noreply.github.com>
…zappa-0.57.0 * commit '0b1eab14ca39c3a3bfb4e915347e07495171dcba': (27 commits) updating workflow actions to remove deprecation warnings (zappa#1243) 📝 CHANGELOG.md update for 0.57.0 (zappa#1246) fixing compatibility with Django 4.2 (zappa#1237) Update Readme with patreon and donors (zappa#1234) adding support for Python 3.10 (zappa#1231) Nose to pytest (zappa#1239) lint: updating code style with `make black` (zappa#1238) Alternative way to check if running in Docker (zappa#1204) 📝 CHANGELOG.md update for 0.56.0 release (zappa#1187) Improve `get_best_match_zone()` to match by most matched components instead of by length of domain (zappa#1193) Bypass python version runtime check when code run in docker (zappa#1180) Be able to pass in a batch window when using batch size (zappa#1118) Correction to README. (zappa#1177) (zappa#908) Update BINARY_SUPPORT to use Content-Encoding to identify if data is binary (zappa#1155) Remove special check for Django<1.7, fix for zappa#1158 (zappa#1159) Resolve (zappa#410) Logs are missing query strings (zappa#1165) Handle spaces in x-forwared-for/remove six (zappa#1127) (zappa#1163) add feature (zappa#704) Check if args/kwargs are JSON Serializable while running locally (zappa#1154) docs: Add documentation for s3 event object key_filters (zappa#1169) Add feature pyenv virtualenv detecting .python-version file (zappa#1153) ... # Conflicts: # zappa/cli.py
Description
When running an async @task locally, the args and kwargs are passed as they are (even if they're not JSON Serializable).
This PR runs a
validate_json_seralizable()
check on args/kwargs passed to the function when running locally, callingjson.dumps()
on the arguments to allow related exceptions to propagate.This allow developers to identify asynchronous task related JSON serialization errors prior to deployment.
GitHub Issues
#704