Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

103 wiersze
2.8 KiB

  1. #!/usr/bin/env bats
  2. load test_helper
  3. export PYTHON_BUILD_SKIP_MIRROR=
  4. export PYTHON_BUILD_CACHE_PATH=
  5. export PYTHON_BUILD_MIRROR_URL=http://mirror.example.com
  6. @test "package URL without checksum bypasses mirror" {
  7. stub shasum true
  8. stub curl "-q -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$3"
  9. install_fixture definitions/without-checksum
  10. echo "$output" >&2
  11. [ "$status" -eq 0 ]
  12. [ -x "${INSTALL_ROOT}/bin/package" ]
  13. unstub curl
  14. unstub shasum
  15. }
  16. @test "package URL with checksum but no shasum support bypasses mirror" {
  17. stub shasum false
  18. stub curl "-q -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$3"
  19. install_fixture definitions/with-checksum
  20. [ "$status" -eq 0 ]
  21. [ -x "${INSTALL_ROOT}/bin/package" ]
  22. unstub curl
  23. unstub shasum
  24. }
  25. @test "package URL with checksum hits mirror first" {
  26. local checksum="ba988b1bb4250dee0b9dd3d4d722f9c64b2bacfc805d1b6eba7426bda72dd3c5"
  27. local mirror_url="${PYTHON_BUILD_MIRROR_URL}/$checksum"
  28. stub shasum true "echo $checksum"
  29. stub curl "-*I* $mirror_url : true" \
  30. "-q -o * -*S* $mirror_url : cp $FIXTURE_ROOT/package-1.0.0.tar.gz \$3"
  31. install_fixture definitions/with-checksum
  32. [ "$status" -eq 0 ]
  33. [ -x "${INSTALL_ROOT}/bin/package" ]
  34. unstub curl
  35. unstub shasum
  36. }
  37. @test "package is fetched from original URL if mirror download fails" {
  38. local checksum="ba988b1bb4250dee0b9dd3d4d722f9c64b2bacfc805d1b6eba7426bda72dd3c5"
  39. local mirror_url="${PYTHON_BUILD_MIRROR_URL}/$checksum"
  40. stub shasum true "echo $checksum"
  41. stub curl "-*I* $mirror_url : false" \
  42. "-q -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$3"
  43. install_fixture definitions/with-checksum
  44. [ "$status" -eq 0 ]
  45. [ -x "${INSTALL_ROOT}/bin/package" ]
  46. unstub curl
  47. unstub shasum
  48. }
  49. @test "package is fetched from original URL if mirror download checksum is invalid" {
  50. local checksum="ba988b1bb4250dee0b9dd3d4d722f9c64b2bacfc805d1b6eba7426bda72dd3c5"
  51. local mirror_url="${PYTHON_BUILD_MIRROR_URL}/$checksum"
  52. stub shasum true "echo invalid" "echo $checksum"
  53. stub curl "-*I* $mirror_url : true" \
  54. "-q -o * -*S* $mirror_url : cp $FIXTURE_ROOT/package-1.0.0.tar.gz \$3" \
  55. "-q -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$3"
  56. install_fixture definitions/with-checksum
  57. echo "$output" >&2
  58. [ "$status" -eq 0 ]
  59. [ -x "${INSTALL_ROOT}/bin/package" ]
  60. unstub curl
  61. unstub shasum
  62. }
  63. @test "default mirror URL" {
  64. export PYTHON_BUILD_MIRROR_URL=
  65. local checksum="ba988b1bb4250dee0b9dd3d4d722f9c64b2bacfc805d1b6eba7426bda72dd3c5"
  66. stub shasum true "echo $checksum"
  67. stub curl "-*I* : true" \
  68. "-q -o * -*S* https://?*/$checksum : cp $FIXTURE_ROOT/package-1.0.0.tar.gz \$3" \
  69. install_fixture definitions/with-checksum
  70. [ "$status" -eq 0 ]
  71. [ -x "${INSTALL_ROOT}/bin/package" ]
  72. unstub curl
  73. unstub shasum
  74. }