You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

139 lines
3.6 KiB

пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
  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. }