#!/usr/bin/env bats load test_helper _setup() { export PYTHON_BUILD_CACHE_PATH="$BATS_TEST_TMPDIR/cache" export MAKE=make export MAKE_OPTS="-j 2" export CC=cc export -n PYTHON_CONFIGURE_OPTS mkdir -p "$INSTALL_ROOT" stub md5 false stub curl false } executable() { local file="$1" mkdir -p "${file%/*}" cat > "$file" chmod +x "$file" } cached_tarball() { mkdir -p "$PYTHON_BUILD_CACHE_PATH" pushd "$PYTHON_BUILD_CACHE_PATH" >/dev/null tarball "$@" popd >/dev/null } tarball() { local name="$1" shift local path="$PWD/$name" local configure="$1" if [[ ${configure:0:1} == "-" ]]; then configure=""; fi configure="$path/${configure:-configure}" shift || true local extra_vars var_name if [[ $# -gt 0 ]]; then for var_name in "$@"; do extra_vars="${extra_vars:+$extra_vars }$var_name=\$$var_name" done fi executable "$configure" <> build.log echo "$name:" "\$@" \${PYTHONOPT:+PYTHONOPT=\$PYTHONOPT} >> build.log ${extra_vars:+echo $name: $extra_vars >>build.log} OUT for file; do mkdir -p "$(dirname "${path}/${file}")" touch "${path}/${file}" done tar czf "${path}.tar.gz" -C "${path%/*}" "$name" } stub_make_install() { stub "$MAKE" \ " : echo \"$MAKE \$@\" >> build.log" \ "${1:-install} : echo \"$MAKE \$@\" >> build.log && cat build.log >> '$INSTALL_ROOT/build.log'" } assert_build_log() { run cat "$INSTALL_ROOT/build.log" assert_output } stub_tcltk() { local tcltk_prefix="${1:?}" mkdir -p "$tcltk_prefix/lib" cat >"$tcltk_prefix/lib/tclConfig.sh" <"$tcltk_prefix/lib/tkConfig.sh" <> build.log' TMPDIR="$BATS_TEST_TMPDIR" install_fixture --patch definitions/needs-yaml <<<"" assert_success unstub uname unstub make unstub patch assert_build_log <> build.log' TMPDIR="$BATS_TEST_TMPDIR" install_fixture --patch definitions/needs-yaml <<<"diff --git a/script.py" assert_success unstub uname unstub make unstub patch assert_build_log <>"$tcl_tk_libdir/lib/tclConfig.sh" <>"$tcl_tk_libdir/lib/tclConfig.sh" <> build.log' stub_make_install export PYTHON_CONFIGURE="${BATS_TEST_TMPDIR}/custom-configure" run_inline_definition <