run.sh 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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. # Start ZEO server
  8. zname="zeo-container-$RANDOM-$RANDOM"
  9. zid="$(docker run -d --name "$zname" "$image" zeo)"
  10. # Start Plone as ZEO Client
  11. pname="plone-container-$RANDOM-$RANDOM"
  12. pid="$(docker run -d --name "$pname" --link=$zname:zeo -e ZEO_ADDRESS=zeo:8080 "$image")"
  13. # Tear down
  14. trap "docker rm -vf $pid $zid > /dev/null" EXIT
  15. get() {
  16. docker run --rm -i \
  17. --link "$pname":plone \
  18. --entrypoint python \
  19. "$image" \
  20. -c "import urllib2; con = urllib2.urlopen('$1'); print con.read()"
  21. }
  22. get_auth() {
  23. docker run --rm -i \
  24. --link "$pname":plone \
  25. --entrypoint python \
  26. "$image" \
  27. -c "import urllib2; request = urllib2.Request('$1'); request.add_header('Authorization', 'Basic $2'); print urllib2.urlopen(request).read()"
  28. }
  29. . "$dir/../../retry.sh" --tries "$PLONE_TEST_TRIES" --sleep "$PLONE_TEST_SLEEP" get "http://plone:8080"
  30. # Plone is up and running
  31. [[ "$(get 'http://plone:8080')" == *"Plone is up and running"* ]]
  32. # Create a Plone site
  33. [[ "$(get_auth 'http://plone:8080/@@plone-addsite' "$(echo -n 'admin:admin' | base64)")" == *"Create a Plone site"* ]]