run.sh 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #!/bin/bash
  2. set -eo pipefail
  3. dir="$(dirname "$(readlink -f "$BASH_SOURCE")")"
  4. image="$1"
  5. PLONE_TEST_SLEEP=3
  6. PLONE_TEST_TRIES=5
  7. cname="plone-container-$RANDOM-$RANDOM"
  8. cid="$(docker run -d --name "$cname" "$image")"
  9. trap "docker rm -vf $cid > /dev/null" EXIT
  10. get() {
  11. docker run --rm -i \
  12. --link "$cname":plone \
  13. --entrypoint /plone/instance/bin/zopepy \
  14. "$image" \
  15. -c "from six.moves.urllib.request import urlopen; con = urlopen('$1'); print(con.read())"
  16. }
  17. get_auth() {
  18. docker run --rm -i \
  19. --link "$cname":plone \
  20. --entrypoint /plone/instance/bin/zopepy \
  21. "$image" \
  22. -c "from six.moves.urllib.request import urlopen, Request; request = Request('$1'); request.add_header('Authorization', 'Basic $2'); print(urlopen(request).read())"
  23. }
  24. . "$dir/../../retry.sh" --tries "$PLONE_TEST_TRIES" --sleep "$PLONE_TEST_SLEEP" get "http://plone:8080"
  25. # Plone is up and running
  26. [[ "$(get 'http://plone:8080')" == *"Plone is up and running"* ]]
  27. # Create a Plone site
  28. [[ "$(get_auth 'http://plone:8080/@@plone-addsite' "$(echo -n 'admin:admin' | base64)")" == *"Create a Plone site"* ]]