##// END OF EJS Templates
celery: introduce make_app instead of creating app at import time...
celery: introduce make_app instead of creating app at import time It is dirty to instantiate things at import time (unless it really is basic singletons). In 0.5.1 (and earlier), such dirtyness made partial test execution fail when other things had global side effects and things didn't use the usual import order: $ py.test kallithea/lib/ collecting ... ――― kallithea/lib/celerypylons/__init__.py ――― kallithea/lib/celerypylons/__init__.py:58: in <module> app.config_from_object(celery_config(tg.config)) kallithea/lib/celerypylons/__init__.py:28: in celery_config assert config['celery.imports'] == 'kallithea.lib.celerylib.tasks', 'Kallithea Celery configuration has not been loaded' data/env/lib/python2.7/site-packages/tg/configuration/tgconfig.py:31: in __getitem__ return self.config_proxy.current_conf()[key] E KeyError: 'celery.imports' Avoid that by running a "factory" function when the celery app actually is needed.

File last commit:

r8019:28fa94f5 stable
r8042:19313892 default
Show More
validate-minimum-dependency-versions
55 lines | 1.7 KiB | text/plain | TextLexer
/ scripts / validate-minimum-dependency-versions
#!/bin/bash
# Test that installation of all dependencies works fine if versions are set to
# the minimum ones.
set -e
if [ -n "$VIRTUAL_ENV" ]; then
echo "This script will create its own virtualenv - please don't run it inside an existing one." >&2
exit 1
fi
cd "$(hg root)"
venv=build/minimum-dependency-versions-venv
log=build/minimum-dependency-versions.log
min_requirements=build/minimum-dependency-versions-requirements.txt
echo "virtualenv: $venv"
echo "log: $log"
echo "minimum requirements file: $min_requirements"
# clean up previous runs
rm -rf "$venv" "$log"
mkdir -p "$venv"
# Make a light weight parsing of setup.py and dev_requirements.txt,
# finding all >= requirements and dumping into a custom requirements.txt
# while fixating the requirement at the lower bound.
sed -n 's/.*"\(.*\)>=\(.*\)".*/\1==\2/p' setup.py > "$min_requirements"
sed 's/>=/==/p' dev_requirements.txt >> "$min_requirements"
virtualenv -p "$(command -v python2)" "$venv"
source "$venv/bin/activate"
pip install --upgrade pip setuptools
pip install -e . -r "$min_requirements" python-ldap python-pam 2> >(tee "$log" >&2)
# Strip out the known Python 2.7 deprecation message.
sed -i '/DEPRECATION: Python 2\.7 /d' "$log"
# Treat any message on stderr as a problem, for the caller to interpret.
if [ -s "$log" ]; then
echo
echo "Error: pip detected following problems:"
cat "$log"
echo
exit 1
fi
freeze_txt=build/minimum-dependency-versions.txt
pip freeze > $freeze_txt
echo "Installation of minimum packages was successful, providing a set of packages as in $freeze_txt . Now running test suite..."
pytest
echo "Test suite execution was successful."
echo "You can now do additional validation using virtual env '$venv'."