Files
heroku-buildpack-python/test/run-deps
T
Ed Morley 5f6941f04a Remove redundant Mercurial install step (#1111)
Mercurial is installed in the stack image for all stacks, so the
pip install of packages from Mercurial VCS URLs works without the
need for the buildpack to install it itself.

See:
https://github.com/heroku/stack-images/pull/141
https://github.com/heroku/stack-images/search?q=mercurial

Closes @W-7906950@.
2020-11-10 14:33:52 +00:00

88 lines
2.4 KiB
Bash
Executable File

#!/usr/bin/env bash
# Default Python Versions
# shellcheck source=bin/default_pythons
source "bin/default_pythons"
testAirflow() {
local env_dir="$(mktmpdir)"
echo 'yes' > "${env_dir}/SLUGIFY_USES_TEXT_UNIDECODE"
compile 'airflow' '' "${env_dir}"
assertCaptured "apache-airflow==1.10.2"
assertCapturedSuccess
}
testCollectstatic() {
compile "collectstatic"
assertCaptured "collectstatic"
}
testGEOS() {
local env_dir="$(mktmpdir)"
echo '1' > "${env_dir}/BUILD_WITH_GEO_LIBRARIES"
compile 'geos' '' "${env_dir}"
if [[ $STACK == "heroku-20" ]]; then
assertCaptured " ! The GDAL, GEOS and PROJ binaries and BUILD_WITH_GEO_LIBRARIES functonality is not supported on Heroku-20."
else
assertCaptured " ! The GDAL, GEOS and PROJ binaries and BUILD_WITH_GEO_LIBRARIES functonality are now deprecated."
fi
# This should assertCapturedError on Heroku-20, but the test doesn't actually
# install anything that uses GEOS so succeeds (see W-8145375)
assertCapturedSuccess
}
testNLTK() {
local env_dir="$(mktmpdir)"
# NOTE: This is a RuntimeWarning emitted by Python 3's runpy.py script
# which is what is used when you call `python -m <module>`. This is due to
# how nltk imports things. It's not actually an error, but it would probably
# be bad to silence in Production.
echo 'ignore::RuntimeWarning' > "${env_dir}/PYTHONWARNINGS"
compile 'nltk' '' "${env_dir}"
assertCaptured "[nltk_data] Downloading package city_database" "STD_ERR"
# Can't use `assertCapturedSuccess` since the NLTK downloader outputs all
# progress/status messages to stderr (W-8146040).
assertCapturedSuccessWithStdErr
}
testPsycopg2() {
compile "psycopg2"
assertCaptured "psycopg2"
assertCapturedSuccess
}
testPysqlite() {
# pysqlite does not support Python 3 (since the sqlite3 stdlib can be used there),
# so we have to test with Python 2, which we've not made available for Heroku-20.
if [[ $STACK == "heroku-20" ]]; then
return
fi
compile "pysqlite"
assertCaptured "pysqlite"
assertCapturedSuccess
}
testCffi() {
compile "cffi"
assertCaptured "cffi"
assertCapturedSuccess
}
testPylibmc() {
compile "pylibmc"
assertCaptured "pylibmc"
assertCapturedSuccess
}
testMercurial() {
compile "requirements-mercurial"
assertCaptured "Cloning hg"
assertCapturedSuccess
}
pushd $(dirname 0) >/dev/null
popd >/dev/null
source $(pwd)/test/utils
source $(pwd)/test/shunit2