1
0
mirror of https://github.com/pyenv/pyenv.git synced 2025-11-10 20:43:48 -05:00

Import recent changes from ruby-build 20160130

This commit is contained in:
Yamashita, Yuu
2016-02-08 00:01:02 +00:00
parent f2f703d6d9
commit c8ab429d7b
11 changed files with 195 additions and 145 deletions

View File

@@ -10,30 +10,28 @@ setup() {
@test "packages are saved to download cache" {
stub shasum true
stub curl "-q -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$3"
install_fixture definitions/without-checksum
[ "$status" -eq 0 ]
[ -e "${PYTHON_BUILD_CACHE_PATH}/package-1.0.0.tar.gz" ]
assert_success
assert [ -e "${PYTHON_BUILD_CACHE_PATH}/package-1.0.0.tar.gz" ]
unstub curl
unstub shasum
}
@test "cached package without checksum" {
stub shasum true
stub curl
cp "${FIXTURE_ROOT}/package-1.0.0.tar.gz" "$PYTHON_BUILD_CACHE_PATH"
install_fixture definitions/without-checksum
[ "$status" -eq 0 ]
[ -e "${PYTHON_BUILD_CACHE_PATH}/package-1.0.0.tar.gz" ]
assert_success
assert [ -e "${PYTHON_BUILD_CACHE_PATH}/package-1.0.0.tar.gz" ]
unstub curl
unstub shasum
}
@@ -44,9 +42,10 @@ setup() {
cp "${FIXTURE_ROOT}/package-1.0.0.tar.gz" "$PYTHON_BUILD_CACHE_PATH"
install_fixture definitions/with-checksum
[ "$status" -eq 0 ]
[ -x "${INSTALL_ROOT}/bin/package" ]
[ -e "${PYTHON_BUILD_CACHE_PATH}/package-1.0.0.tar.gz" ]
assert_success
assert [ -x "${INSTALL_ROOT}/bin/package" ]
assert [ -e "${PYTHON_BUILD_CACHE_PATH}/package-1.0.0.tar.gz" ]
unstub curl
unstub shasum
@@ -64,10 +63,11 @@ setup() {
touch "${PYTHON_BUILD_CACHE_PATH}/package-1.0.0.tar.gz"
install_fixture definitions/with-checksum
[ "$status" -eq 0 ]
[ -x "${INSTALL_ROOT}/bin/package" ]
[ -e "${PYTHON_BUILD_CACHE_PATH}/package-1.0.0.tar.gz" ]
diff -q "${PYTHON_BUILD_CACHE_PATH}/package-1.0.0.tar.gz" "${FIXTURE_ROOT}/package-1.0.0.tar.gz"
assert_success
assert [ -x "${INSTALL_ROOT}/bin/package" ]
assert [ -e "${PYTHON_BUILD_CACHE_PATH}/package-1.0.0.tar.gz" ]
assert diff -q "${PYTHON_BUILD_CACHE_PATH}/package-1.0.0.tar.gz" "${FIXTURE_ROOT}/package-1.0.0.tar.gz"
unstub curl
unstub shasum
@@ -75,16 +75,15 @@ setup() {
@test "nonexistent cache directory is ignored" {
stub shasum true
stub curl "-q -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$3"
export PYTHON_BUILD_CACHE_PATH="${TMP}/nonexistent"
install_fixture definitions/without-checksum
[ "$status" -eq 0 ]
[ -x "${INSTALL_ROOT}/bin/package" ]
[ ! -d "$PYTHON_BUILD_CACHE_PATH" ]
assert_success
assert [ -x "${INSTALL_ROOT}/bin/package" ]
refute [ -d "$PYTHON_BUILD_CACHE_PATH" ]
unstub curl
unstub shasum
}

View File

@@ -6,15 +6,14 @@ export PYTHON_BUILD_CACHE_PATH=
@test "package URL without checksum" {
stub shasum true
stub curl "-q -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$3"
install_fixture definitions/without-checksum
[ "$status" -eq 0 ]
[ -x "${INSTALL_ROOT}/bin/package" ]
assert_success
assert [ -x "${INSTALL_ROOT}/bin/package" ]
unstub curl
unstub shasum
}
@@ -23,8 +22,9 @@ export PYTHON_BUILD_CACHE_PATH=
stub curl "-q -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$3"
install_fixture definitions/with-checksum
[ "$status" -eq 0 ]
[ -x "${INSTALL_ROOT}/bin/package" ]
assert_success
assert [ -x "${INSTALL_ROOT}/bin/package" ]
unstub curl
unstub shasum
@@ -36,8 +36,9 @@ export PYTHON_BUILD_CACHE_PATH=
stub curl "-q -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$3"
install_fixture definitions/with-invalid-checksum
[ "$status" -eq 1 ]
[ ! -f "${INSTALL_ROOT}/bin/package" ]
assert_failure
refute [ -f "${INSTALL_ROOT}/bin/package" ]
unstub curl
unstub shasum
@@ -49,8 +50,9 @@ export PYTHON_BUILD_CACHE_PATH=
stub curl "-q -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$3"
install_fixture definitions/with-checksum
[ "$status" -eq 0 ]
[ -x "${INSTALL_ROOT}/bin/package" ]
assert_success
assert [ -x "${INSTALL_ROOT}/bin/package" ]
unstub curl
unstub shasum
@@ -62,8 +64,9 @@ export PYTHON_BUILD_CACHE_PATH=
stub curl "-q -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$3"
install_fixture definitions/with-md5-checksum
[ "$status" -eq 0 ]
[ -x "${INSTALL_ROOT}/bin/package" ]
assert_success
assert [ -x "${INSTALL_ROOT}/bin/package" ]
unstub curl
unstub md5
@@ -75,8 +78,9 @@ export PYTHON_BUILD_CACHE_PATH=
stub curl "-q -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$3"
install_fixture definitions/with-md5-checksum
[ "$status" -eq 0 ]
[ -x "${INSTALL_ROOT}/bin/package" ]
assert_success
assert [ -x "${INSTALL_ROOT}/bin/package" ]
unstub curl
unstub md5
@@ -88,8 +92,9 @@ export PYTHON_BUILD_CACHE_PATH=
stub curl "-q -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$3"
install_fixture definitions/with-checksum
[ "$status" -eq 1 ]
[ ! -f "${INSTALL_ROOT}/bin/package" ]
assert_failure
refute [ -f "${INSTALL_ROOT}/bin/package" ]
unstub curl
unstub shasum
@@ -111,7 +116,7 @@ install_package "package-1.0.0" "http://example.com/packages/package-1.0.0.tar.g
DEF
assert_success
[ -x "${INSTALL_ROOT}/bin/package" ]
assert [ -x "${INSTALL_ROOT}/bin/package" ]
unstub shasum
}
@@ -133,7 +138,20 @@ install_package "package-1.0.0" "http://example.com/packages/package-1.0.0.tar.g
DEF
assert_success
[ -x "${INSTALL_ROOT}/bin/package" ]
assert [ -x "${INSTALL_ROOT}/bin/package" ]
unstub shasum
}
@test "package URL with checksum of unexpected length" {
stub curl "-q -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$3"
run_inline_definition <<DEF
install_package "package-1.0.0" "http://example.com/packages/package-1.0.0.tar.gz#checksum_of_unexpected_length" copy
DEF
assert_failure
refute [ -f "${INSTALL_ROOT}/bin/package" ]
assert_output_contains "unexpected checksum length: 29 (checksum_of_unexpected_length)"
assert_output_contains "expected 0 (no checksum), 32 (MD5), or 64 (SHA2-256)"
}

View File

@@ -13,7 +13,7 @@ NUM_DEFINITIONS="$(find "$BATS_TEST_DIRNAME"/../share/python-build -maxdepth 1 -
@test "custom PYTHON_BUILD_ROOT: nonexistent" {
export PYTHON_BUILD_ROOT="$TMP"
assert [ ! -e "${PYTHON_BUILD_ROOT}/share/python-build" ]
refute [ -e "${PYTHON_BUILD_ROOT}/share/python-build" ]
run python-build --definitions
assert_success ""
}

View File

@@ -1 +1 @@
install_package "package-1.0.0" "http://example.com/packages/package-1.0.0.tar.gz#invalid" copy
install_package "package-1.0.0" "http://example.com/packages/package-1.0.0.tar.gz#invalid_64_character_checksum_0000000000000000000000000000000000" copy

View File

@@ -52,5 +52,5 @@ rehashed
after.
OUT
assert [ ! -d "${PYENV_ROOT}/versions/3.2.1" ]
refute [ -d "${PYENV_ROOT}/versions/3.2.1" ]
}

View File

@@ -12,8 +12,9 @@ export PYTHON_BUILD_MIRROR_URL=http://mirror.example.com
install_fixture definitions/without-checksum
echo "$output" >&2
[ "$status" -eq 0 ]
[ -x "${INSTALL_ROOT}/bin/package" ]
assert_success
assert [ -x "${INSTALL_ROOT}/bin/package" ]
unstub curl
unstub shasum
@@ -25,8 +26,9 @@ export PYTHON_BUILD_MIRROR_URL=http://mirror.example.com
stub curl "-q -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$3"
install_fixture definitions/with-checksum
[ "$status" -eq 0 ]
[ -x "${INSTALL_ROOT}/bin/package" ]
assert_success
assert [ -x "${INSTALL_ROOT}/bin/package" ]
unstub curl
unstub shasum
@@ -42,8 +44,9 @@ export PYTHON_BUILD_MIRROR_URL=http://mirror.example.com
"-q -o * -*S* $mirror_url : cp $FIXTURE_ROOT/package-1.0.0.tar.gz \$3"
install_fixture definitions/with-checksum
[ "$status" -eq 0 ]
[ -x "${INSTALL_ROOT}/bin/package" ]
assert_success
assert [ -x "${INSTALL_ROOT}/bin/package" ]
unstub curl
unstub shasum
@@ -59,8 +62,9 @@ export PYTHON_BUILD_MIRROR_URL=http://mirror.example.com
"-q -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$3"
install_fixture definitions/with-checksum
[ "$status" -eq 0 ]
[ -x "${INSTALL_ROOT}/bin/package" ]
assert_success
assert [ -x "${INSTALL_ROOT}/bin/package" ]
unstub curl
unstub shasum
@@ -78,8 +82,9 @@ export PYTHON_BUILD_MIRROR_URL=http://mirror.example.com
install_fixture definitions/with-checksum
echo "$output" >&2
[ "$status" -eq 0 ]
[ -x "${INSTALL_ROOT}/bin/package" ]
assert_success
assert [ -x "${INSTALL_ROOT}/bin/package" ]
unstub curl
unstub shasum
@@ -95,8 +100,28 @@ export PYTHON_BUILD_MIRROR_URL=http://mirror.example.com
"-q -o * -*S* https://?*/$checksum : cp $FIXTURE_ROOT/package-1.0.0.tar.gz \$3" \
install_fixture definitions/with-checksum
[ "$status" -eq 0 ]
[ -x "${INSTALL_ROOT}/bin/package" ]
assert_success
assert [ -x "${INSTALL_ROOT}/bin/package" ]
unstub curl
unstub shasum
}
@test "package URL with ruby-lang CDN with default mirror URL will bypasses mirror" {
export PYTHON_BUILD_MIRROR_URL=
local checksum="ba988b1bb4250dee0b9dd3d4d722f9c64b2bacfc805d1b6eba7426bda72dd3c5"
stub shasum true "echo $checksum"
stub curl "-q -o * -*S* https://www.python.org/* : cp $FIXTURE_ROOT/\${5##*/} \$3"
run_inline_definition <<DEF
install_package "package-1.0.0" "https://www.python.org/packages/package-1.0.0.tar.gz#ba988b1bb4250dee0b9dd3d4d722f9c64b2bacfc805d1b6eba7426bda72dd3c5" copy
DEF
assert_success
assert [ -x "${INSTALL_ROOT}/bin/package" ]
unstub curl
unstub shasum

View File

@@ -141,6 +141,14 @@ OUT
run pyenv-install --complete
assert_success
assert_output <<OUT
--list
--force
--skip-existing
--keep
--patch
--verbose
--version
--debug
${PYENV_ROOT}/plugins/bar/share/python-build
${PYENV_ROOT}/plugins/foo/share/python-build

View File

@@ -71,6 +71,12 @@ assert() {
fi
}
refute() {
if "$@"; then
flunk "expected to fail: $@"
fi
}
flunk() {
{ if [ "$#" -eq 0 ]; then cat -
else echo "$@"