#!/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 `. 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 } pushd $(dirname 0) >/dev/null popd >/dev/null source $(pwd)/test/utils source $(pwd)/test/shunit2