您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

139 行
3.6 KiB

  1. #!/usr/bin/env bats
  2. load test_helper
  3. export PYTHON_BUILD_SKIP_MIRROR=1
  4. export PYTHON_BUILD_CACHE_PATH=
  5. @test "package URL without checksum" {
  6. stub shasum true
  7. stub curl "-q -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$3"
  8. install_fixture definitions/without-checksum
  9. [ "$status" -eq 0 ]
  10. [ -x "${INSTALL_ROOT}/bin/package" ]
  11. unstub curl
  12. unstub shasum
  13. }
  14. @test "package URL with valid checksum" {
  15. stub shasum true "echo ba988b1bb4250dee0b9dd3d4d722f9c64b2bacfc805d1b6eba7426bda72dd3c5"
  16. stub curl "-q -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$3"
  17. install_fixture definitions/with-checksum
  18. [ "$status" -eq 0 ]
  19. [ -x "${INSTALL_ROOT}/bin/package" ]
  20. unstub curl
  21. unstub shasum
  22. }
  23. @test "package URL with invalid checksum" {
  24. stub shasum true "echo ba988b1bb4250dee0b9dd3d4d722f9c64b2bacfc805d1b6eba7426bda72dd3c5"
  25. stub curl "-q -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$3"
  26. install_fixture definitions/with-invalid-checksum
  27. [ "$status" -eq 1 ]
  28. [ ! -f "${INSTALL_ROOT}/bin/package" ]
  29. unstub curl
  30. unstub shasum
  31. }
  32. @test "package URL with checksum but no shasum support" {
  33. stub shasum false
  34. stub curl "-q -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$3"
  35. install_fixture definitions/with-checksum
  36. [ "$status" -eq 0 ]
  37. [ -x "${INSTALL_ROOT}/bin/package" ]
  38. unstub curl
  39. unstub shasum
  40. }
  41. @test "package URL with valid md5 checksum" {
  42. stub md5 true "echo 83e6d7725e20166024a1eb74cde80677"
  43. stub curl "-q -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$3"
  44. install_fixture definitions/with-md5-checksum
  45. [ "$status" -eq 0 ]
  46. [ -x "${INSTALL_ROOT}/bin/package" ]
  47. unstub curl
  48. unstub md5
  49. }
  50. @test "package URL with md5 checksum but no md5 support" {
  51. stub md5 false
  52. stub curl "-q -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$3"
  53. install_fixture definitions/with-md5-checksum
  54. [ "$status" -eq 0 ]
  55. [ -x "${INSTALL_ROOT}/bin/package" ]
  56. unstub curl
  57. unstub md5
  58. }
  59. @test "package with invalid checksum" {
  60. stub shasum true "echo invalid"
  61. stub curl "-q -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$3"
  62. install_fixture definitions/with-checksum
  63. [ "$status" -eq 1 ]
  64. [ ! -f "${INSTALL_ROOT}/bin/package" ]
  65. unstub curl
  66. unstub shasum
  67. }
  68. @test "existing tarball in build location is reused" {
  69. stub shasum true "echo ba988b1bb4250dee0b9dd3d4d722f9c64b2bacfc805d1b6eba7426bda72dd3c5"
  70. stub curl false
  71. stub wget false
  72. export -n PYTHON_BUILD_CACHE_PATH
  73. export PYTHON_BUILD_BUILD_PATH="${TMP}/build"
  74. mkdir -p "$PYTHON_BUILD_BUILD_PATH"
  75. ln -s "${FIXTURE_ROOT}/package-1.0.0.tar.gz" "$PYTHON_BUILD_BUILD_PATH"
  76. run_inline_definition <<DEF
  77. install_package "package-1.0.0" "http://example.com/packages/package-1.0.0.tar.gz#ba988b1bb4250dee0b9dd3d4d722f9c64b2bacfc805d1b6eba7426bda72dd3c5" copy
  78. DEF
  79. assert_success
  80. [ -x "${INSTALL_ROOT}/bin/package" ]
  81. unstub shasum
  82. }
  83. @test "existing tarball in build location is discarded if not matching checksum" {
  84. stub shasum true \
  85. "echo invalid" \
  86. "echo ba988b1bb4250dee0b9dd3d4d722f9c64b2bacfc805d1b6eba7426bda72dd3c5"
  87. stub curl "-q -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$3"
  88. export -n PYTHON_BUILD_CACHE_PATH
  89. export PYTHON_BUILD_BUILD_PATH="${TMP}/build"
  90. mkdir -p "$PYTHON_BUILD_BUILD_PATH"
  91. touch "${PYTHON_BUILD_BUILD_PATH}/package-1.0.0.tar.gz"
  92. run_inline_definition <<DEF
  93. install_package "package-1.0.0" "http://example.com/packages/package-1.0.0.tar.gz#ba988b1bb4250dee0b9dd3d4d722f9c64b2bacfc805d1b6eba7426bda72dd3c5" copy
  94. DEF
  95. assert_success
  96. [ -x "${INSTALL_ROOT}/bin/package" ]
  97. unstub shasum
  98. }