mirror of
https://github.com/kennethreitz/heroku-buildpack-python.git
synced 2026-06-05 23:10:16 +00:00
f508bd538d
Previously if an app was using an older version of PyPy, the buildpack would show a confusing "Could not find that version" message (even though the version was found), when it really meant to warn about there being a newer release available. It looks like the version check messages were perhaps copied and pasted from something else, but the message wording not updated at the time. I've also added tests since there were none for this feature. Fixes #1004. Closes @W-7918745@.
245 lines
5.9 KiB
Bash
Executable File
245 lines
5.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Default Python Versions
|
|
# shellcheck source=bin/default_pythons
|
|
source "bin/default_pythons"
|
|
|
|
testPythonDefault() {
|
|
updateVersion "pythonDefault" $DEFAULT_PYTHON_VERSION
|
|
compile "pythonDefault"
|
|
assertCaptured $DEFAULT_PYTHON_VERSION
|
|
assertNotCaptured "security update"
|
|
assertCaptured "Installing pip 20.1.1, setuptools 47.1.1 and wheel 0.34.2"
|
|
assertCaptured "Installing SQLite3"
|
|
assertCapturedSuccess
|
|
}
|
|
|
|
testPython2() {
|
|
updateVersion "python2" $LATEST_27
|
|
echo $LATEST_27 > "runtime.txt"
|
|
compile "python2"
|
|
assertCaptured $LATEST_27
|
|
if [[ $(date "+%Y") > "2019" ]]; then
|
|
assertCaptured "python-2-7-eol-faq";
|
|
else
|
|
assertNotCaptured "python-2-7-eol-faq";
|
|
fi
|
|
assertNotCaptured "security update"
|
|
assertCaptured "Installing pip 20.1.1, setuptools 44.1.1 and wheel 0.34.2"
|
|
assertCaptured "Installing SQLite3"
|
|
assertCapturedSuccess
|
|
}
|
|
|
|
testPython2_warn() {
|
|
compile "python2_warn"
|
|
assertCaptured "python-2.7.15"
|
|
if [[ $(date "+%Y") > "2019" ]]; then
|
|
assertCaptured "python-2-7-eol-faq";
|
|
else
|
|
assertNotCaptured "python-2-7-eol-faq";
|
|
fi
|
|
assertCaptured "Only the latest version"
|
|
assertCaptured "Installing SQLite3"
|
|
assertCapturedSuccess
|
|
}
|
|
|
|
testPython2_fail() {
|
|
compile "python2_fail"
|
|
assertCaptured "Aborting"
|
|
assertCapturedError
|
|
}
|
|
|
|
testPython3_4() {
|
|
compile "python3_4"
|
|
assertCaptured $LATEST_34
|
|
assertNotCaptured "security update"
|
|
assertCaptured "Installing pip 19.1.1, setuptools 43.0.0 and wheel 0.33.6"
|
|
# if cedar 14 and legacy binaries, fail. if cedar 14 and staging, succeed.
|
|
if [[ ! -n $USE_STAGING_BINARIES ]] && [[ $STACK == "cedar-14" ]]; then
|
|
assertCapturedError
|
|
# if heroku 18 and legacy binaries, succeed. if heroku 18 and staging, fail.
|
|
elif [[ -n $USE_STAGING_BINARIES ]] && [[ $STACK == "heroku-18" ]]; then
|
|
assertCapturedError
|
|
else
|
|
# all else succeed
|
|
assertCapturedSuccess
|
|
fi
|
|
}
|
|
|
|
testPython3_4_warn() {
|
|
compile "python3_4_warn"
|
|
assertCaptured "python-3.4.9"
|
|
assertCaptured "security update!"
|
|
# if heroku 18 and legacy binaries, succeed. if heroku 18 and staging, fail.
|
|
if [[ -n $USE_STAGING_BINARIES ]] && [[ $STACK == "heroku-18" ]]; then
|
|
assertCapturedError
|
|
else
|
|
# all else succeed
|
|
assertCapturedSuccess
|
|
fi
|
|
}
|
|
|
|
testPython3_4_fail() {
|
|
compile "python3_4_fail"
|
|
assertCaptured "Aborting"
|
|
assertCapturedError
|
|
}
|
|
|
|
testPython3_5() {
|
|
compile "python3_5"
|
|
assertCaptured $LATEST_35
|
|
assertNotCaptured "security update"
|
|
assertCaptured "Installing pip 20.1.1, setuptools 47.1.1 and wheel 0.34.2"
|
|
assertCaptured "Installing SQLite3"
|
|
assertCapturedSuccess
|
|
}
|
|
|
|
testPython3_5_warn() {
|
|
compile "python3_5_warn"
|
|
assertCaptured "python-3.5.6"
|
|
assertCaptured "security update!"
|
|
assertCapturedSuccess
|
|
}
|
|
|
|
testPython3_5_fail() {
|
|
compile "python3_5_fail"
|
|
assertCaptured "Aborting"
|
|
assertCapturedError
|
|
}
|
|
|
|
testPython3_6() {
|
|
updateVersion "python3_6" $LATEST_36
|
|
compile "python3_6"
|
|
assertCaptured $LATEST_36
|
|
assertNotCaptured "security update"
|
|
assertCaptured "Installing pip 20.1.1, setuptools 47.1.1 and wheel 0.34.2"
|
|
assertCaptured "Installing SQLite3"
|
|
assertCapturedSuccess
|
|
}
|
|
|
|
testPython3_6_warn() {
|
|
compile "python3_6_warn"
|
|
assertCaptured "python-3.6.7"
|
|
assertCaptured "security update!"
|
|
assertCaptured "Installing SQLite3"
|
|
assertCapturedSuccess
|
|
}
|
|
|
|
testPython3_6_fail() {
|
|
compile "python3_6_fail"
|
|
assertCaptured "Aborting"
|
|
assertCapturedError
|
|
}
|
|
|
|
testPython3_7() {
|
|
updateVersion "python3_7" $LATEST_37
|
|
compile "python3_7"
|
|
if [[ $STACK = "cedar-14" ]]; then
|
|
assertCapturedError
|
|
else
|
|
assertNotCaptured "security update"
|
|
assertCaptured $LATEST_37
|
|
assertCaptured "Installing pip 20.1.1, setuptools 47.1.1 and wheel 0.34.2"
|
|
assertCaptured "Installing SQLite3"
|
|
assertCapturedSuccess
|
|
fi
|
|
}
|
|
|
|
testPython3_7_warn() {
|
|
compile "python3_7_warn"
|
|
if [[ $STACK = "cedar-14" ]]; then
|
|
assertCapturedError
|
|
else
|
|
assertCaptured "python-3.7.1"
|
|
assertCaptured "security update!"
|
|
assertCaptured "Installing SQLite3"
|
|
assertCapturedSuccess
|
|
fi
|
|
}
|
|
|
|
testPython3_7_fail() {
|
|
compile "python3_7_fail"
|
|
assertCaptured "Aborting"
|
|
assertCapturedError
|
|
}
|
|
|
|
testPython3_7_warn() {
|
|
compile "python3_8_warn"
|
|
if [[ $STACK = "cedar-14" ]]; then
|
|
assertCapturedError
|
|
else
|
|
assertCaptured "python-3.8.0"
|
|
assertCaptured "security update!"
|
|
assertCaptured "Installing SQLite3"
|
|
assertCapturedSuccess
|
|
fi
|
|
}
|
|
|
|
testPython3_8() {
|
|
updateVersion "python3_8" $LATEST_38
|
|
compile "python3_8"
|
|
if [[ $STACK = "cedar-14" ]]; then
|
|
assertCapturedError
|
|
else
|
|
assertNotCaptured "security update"
|
|
assertCaptured $LATEST_38
|
|
assertCaptured "Installing pip 20.1.1, setuptools 47.1.1 and wheel 0.34.2"
|
|
assertCaptured "Installing SQLite3"
|
|
assertCapturedSuccess
|
|
fi
|
|
}
|
|
|
|
testPython3_8_fail() {
|
|
compile "python3_8_fail"
|
|
assertCaptured "Aborting"
|
|
assertCapturedError
|
|
}
|
|
|
|
testPypy3_6() {
|
|
compile "pypy3_6"
|
|
assertCaptured "Installing pypy"
|
|
assertNotCaptured "security update"
|
|
assertCaptured "$PYPY_36"
|
|
assertCaptured "Installing pip 20.1.1, setuptools 47.1.1 and wheel 0.34.2"
|
|
assertCapturedSuccess
|
|
}
|
|
|
|
testPypy3_6_warn() {
|
|
compile "pypy3_6_warn"
|
|
if [[ $STACK = "cedar-14" ]]; then
|
|
assertCapturedError
|
|
else
|
|
assertCaptured "Installing pypy"
|
|
assertCaptured "security update!"
|
|
assertCaptured "$PYPY_36"
|
|
assertCapturedSuccess
|
|
fi
|
|
}
|
|
|
|
testPypy2_7() {
|
|
compile "pypy2_7"
|
|
assertCaptured "Installing pypy"
|
|
assertNotCaptured "security update"
|
|
assertCaptured "$PYPY_27"
|
|
assertCaptured "Installing pip 20.1.1, setuptools 44.1.1 and wheel 0.34.2"
|
|
assertCapturedSuccess
|
|
}
|
|
|
|
testPypy2_7_warn() {
|
|
compile "pypy2_7_warn"
|
|
if [[ $STACK = "cedar-14" ]]; then
|
|
assertCapturedError
|
|
else
|
|
assertCaptured "Installing pypy"
|
|
assertCaptured "security update!"
|
|
assertCaptured "$PYPY_27"
|
|
assertCapturedSuccess
|
|
fi
|
|
}
|
|
|
|
pushd $(dirname 0) >/dev/null
|
|
popd >/dev/null
|
|
|
|
source $(pwd)/test/utils
|
|
source $(pwd)/test/shunit2
|