mirror of
https://github.com/kennethreitz/heroku-buildpack-python.git
synced 2026-06-05 23:10:16 +00:00
a98ef91566
* Fixes the "Installing <version>" assertions so that they don't false positive against the "please upgrade to <version>" output. * Removes modification of test fixtures during tests, since it can lead to failures depending on test order, and confusion when debugging. * Updates the PyPy version warning tests to use a slightly newer (but still not latest) PyPy version, which means that the test now passes on Cedar-14 and can be unskipped. * Switches to using an empty requirements file for version tests that duplicate the main test, to save spending time installing dependencies unnecessarily. * Switches the NLTK test to using the default buildpack Python version, rather than an ancient Python 3.6. * Skips the Python 3.7/3.8 tests on Cedar-14 rather than asserting failure, since we know they'll never pass due to Cedar-14's libssl being older than required. * Removes redundant `testSqliteInstall` test since it duplicates the Python version install tests. Longer term I'll be moving many of the unit tests to Hatchet, however this at least makes the tests more dependable in the meantime. Closes @W-8060219@. Closes @W-8176779@. [skip changelog]
80 lines
2.1 KiB
Bash
Executable File
80 lines
2.1 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}"
|
|
assertCaptured "geos"
|
|
assertCapturedSuccess
|
|
}
|
|
|
|
testGEOSDeprecation() {
|
|
local env_dir="$(mktmpdir)"
|
|
echo '1' > "${env_dir}/BUILD_WITH_GEO_LIBRARIES"
|
|
compile 'geos' '' "${env_dir}"
|
|
assertCaptured " ! The GDAL, GEOS and PROJ binaries and BUILD_WITH_GEO_LIBRARIES functonality are now deprecated.
|
|
! An alternative buildpack to enable GDAL, GEOS and PROJ use is available here - https://github.com/heroku/heroku-geo-buildpack"
|
|
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() {
|
|
compile "pysqlite"
|
|
assertCaptured "pysqlite"
|
|
assertCapturedSuccess
|
|
}
|
|
|
|
testCffi() {
|
|
compile "cffi"
|
|
assertCaptured "cffi"
|
|
assertCapturedSuccess
|
|
}
|
|
|
|
testPylibmc() {
|
|
compile "pylibmc"
|
|
assertCaptured "pylibmc"
|
|
assertCapturedSuccess
|
|
}
|
|
|
|
pushd $(dirname 0) >/dev/null
|
|
popd >/dev/null
|
|
|
|
source $(pwd)/test/utils
|
|
source $(pwd)/test/shunit2
|