Mercurial > kallithea
view scripts/validate-commits @ 8276:fdde16d7cea0
celery: fix send_email to work with JSON encoding (Issue #363)
Long time ago, c935bcaf7086 introduced an optional User object parameter to the
send_email task and used the computed full_name_or_username property. Due to the
magic of pickle, that also worked when using Celery to run the task async.
Now, Celery 4 changed the default encoding from Pickle to JSON, which we
anticipated in e539db6cc0da. That broke send_email in some cases, for example
when a user comments on another user's changeset.
Fixed by passing the "From" name as string instead of passing the whole User
object.
Thanks to vyom for reporting.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Sat, 29 Feb 2020 16:06:30 +0100 |
parents | 89e9aef9b983 |
children | bf85e6018daa |
line wrap: on
line source
#!/bin/bash # Validate the specified commits against test suite and other checks. if [ -n "$VIRTUAL_ENV" ]; then echo "Please run this script from outside a virtualenv." exit 1 fi if ! hg update --check -q .; then echo "Working dir is not clean, please commit/revert changes first." exit 1 fi venv=$(mktemp -d kallithea-validatecommits-env-XXXXXX) resultfile=$(mktemp kallithea-validatecommits-result-XXXXXX) echo > "$resultfile" cleanup() { rm -rf /tmp/kallithea-test* rm -rf "$venv" } finish() { cleanup # print (possibly intermediate) results cat "$resultfile" rm "$resultfile" } trap finish EXIT for rev in $(hg log -r "$1" -T '{node}\n'); do hg log -r "$rev" hg update "$rev" cleanup python3 -m venv "$venv" source "$venv/bin/activate" pip install --upgrade pip setuptools pip install -e . -r dev_requirements.txt python-ldap python-pam # run-all-cleanup scripts/run-all-cleanup if ! hg update --check -q .; then echo "run-all-cleanup did not give clean results!" result="NOK" hg diff hg revert -a else result=" OK" fi echo "$result: $rev (run-all-cleanup)" >> "$resultfile" # pytest if py.test; then result=" OK" else result="NOK" fi echo "$result: $rev (pytest)" >> "$resultfile" deactivate echo done