wxWidgets/build/tools/httpbin.sh
Vadim Zeitlin 1aab9e7ebb Try to fix problems with running httpbin in the CI builds
Fix the last known working Flask version, the latest one results in the
errors like the following

Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 185, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "/usr/lib/python3.8/runpy.py", line 111, in _get_module_details
    __import__(pkg_name)
  File "/home/runner/.local/lib/python3.8/site-packages/httpbin/__init__.py", line 3, in <module>
    from .core import *
  File "/home/runner/.local/lib/python3.8/site-packages/httpbin/core.py", line 22, in <module>
    from werkzeug.wrappers import BaseResponse
ImportError: cannot import name 'BaseResponse' from 'werkzeug.wrappers' (/home/runner/.local/lib/python3.8/site-packages/werkzeug/wrappers/__init__.py)
2022-03-29 21:00:57 +02:00

81 lines
2.7 KiB
Bash

# This script is sourced by CI scripts to launch httpbin.
#
# Do not run it directly.
httpbin_launch() {
WX_TEST_WEBREQUEST_URL=0
export WX_TEST_WEBREQUEST_URL
# We need python3 for httpbin, python2 can't be used any longer.
if ! command -v python3 > /dev/null; then
echo 'Python 3 is not available, not using httpbin.'
return
fi
echo 'Launching httpbin...'
case "$(uname -s)" in
Linux)
if command -v lsb_release > /dev/null; then
dist_codename=$(lsb_release --codename --short)
fi
;;
Darwin)
dist_codename='macOS'
;;
esac
case "$dist_codename" in
trusty)
# Explicitly select the versions of dependencies that are still
# compatible with Python 3.4 used here as the latest versions of
# several of them are not.
pip_explicit_deps='Flask==1.0.4 Jinja2==2.10.3 MarkupSafe==1.1.1
blinker==1.4 brotlipy==0.7.0 cffi==1.14.5 click==7.0 decorator==4.4.2
itsdangerous==1.1.0 pycparser==2.20 raven==6.10.0 werkzeug==0.16.1'
;;
*)
# Installing Flask 2.1.0 and its dependency Werkzeug 2.1.0 results
# in failures when trying to run httpbin, so stick to an older but
# working version.
pip_explicit_deps='Flask==2.0.3 Werkzeug==2.0.3'
esac
# Ensure that we have at least some version of pip and setuptools required
# for installing cffi.
if ! python3 -c 'import setuptools'; then
sudo apt-get -q -o=Dpkg::Use-Pty=0 install python3-setuptools
fi
if ! python3 -c 'import pip'; then
sudo apt-get -q -o=Dpkg::Use-Pty=0 install python3-pip
fi
# Running pip install fails with weird errors out of the box when
# using old pip version because it attempts to use python rather
# than python3, so upgrade it to fix this.
#
# However don't upgrade to a version which is too new because then
# it may not support Python version that we actually have (this one
# still works with 3.4, 20.0.1 is the last one to support 3.5).
python3 -m pip install --user --upgrade pip==19.1.1
python3 -m pip install --user wheel
echo "Installing using `python3 -m pip --version`"
python3 -m pip install $pip_explicit_deps httpbin --user
python3 -m httpbin.core 2>&1 >httpbin.log &
WX_TEST_WEBREQUEST_URL="http://localhost:5000"
}
httpbin_show_log() {
if [ "$WX_TEST_WEBREQUEST_URL" != "0" ]; then
echo '*** Tests failed, contents of httpbin.log follows: ***'
echo '-----------------------------------------------------------'
cat httpbin.log
echo '-----------------------------------------------------------'
fi
}