entrypoint.sh 2.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #!/usr/bin/env bash
  2. #
  3. # ENVIRONMENT VARIABLES ARE:
  4. #
  5. # * TEST_DATABASE_ENGINE (values: postgresql, mysql, sqlite)
  6. # * CHECKOUT (values: a commit or branch name)
  7. #
  8. # If CHECKOUT is set, change repository HEAD
  9. if [ -n "$CHECKOUT" ]; then
  10. cd /tracim && git checkout ${CHECKOUT}
  11. echo "CHECKOUT set to $CHECKOUT"
  12. fi
  13. # Ensure TEST_DATABASE_ENGINE is set
  14. if ! [ -n "$TEST_DATABASE_ENGINE" ]; then
  15. echo "You must set TEST_DATABASE_ENGINE environment variable"
  16. exit 1
  17. fi
  18. # Ensure TEST_DATABASE_ENGINE value
  19. case "$TEST_DATABASE_ENGINE" in
  20. postgresql|mysql|sqlite) ;;
  21. *) echo "TEST_DATABASE_ENGINE environment variable must be one of these: \
  22. postgresql, mysql, sqlite" ; exit 1 ;;
  23. esac
  24. # Prepare config files
  25. cp /tracim/tracim/development.ini.base /tracim/tracim/development.ini
  26. cp /tracim/tracim/wsgidav.conf.sample /tracim/tracim/wsgidav.conf
  27. # PostgreSQL case
  28. if [ "$TEST_DATABASE_ENGINE" = postgresql ] ; then
  29. service postgresql start
  30. su - postgres -s /bin/bash -c "psql -c \"CREATE DATABASE tracim;\""
  31. su - postgres -s /bin/bash -c "psql -c \"ALTER USER postgres WITH PASSWORD 'dummy';\""
  32. sed -i "s/\(sqlalchemy.url *= *\).*/\sqlalchemy.url = postgresql:\/\/postgres:dummy@127.0.0.1:5432\/tracim?client_encoding=utf8/" /tracim/tracim/test.ini
  33. sed -i "s/\(sqlalchemy.url *= *\).*/\sqlalchemy.url = postgresql:\/\/postgres:dummy@127.0.0.1:5432\/tracim?client_encoding=utf8/" /tracim/tracim/development.ini
  34. fi
  35. # MySQL case
  36. if [ "$TEST_DATABASE_ENGINE" = mysql ] ; then
  37. service mysql start
  38. mysql -e 'CREATE DATABASE tracim;'
  39. sed -i "s/\(sqlalchemy.url *= *\).*/\sqlalchemy.url = mysql+oursql:\/\/root@localhost\/tracim/" /tracim/tracim/test.ini
  40. sed -i "s/\(sqlalchemy.url *= *\).*/\sqlalchemy.url = mysql+oursql:\/\/root@localhost\/tracim/" /tracim/tracim/development.ini
  41. fi
  42. # SQLite case
  43. if [ "$TEST_DATABASE_ENGINE" = sqlite ] ; then
  44. sed -i "s/\(sqlalchemy.url *= *\).*/\sqlalchemy.url = sqlite:\/\/\/tracim.sqlite/" /tracim/tracim/test.ini
  45. sed -i "s/\(sqlalchemy.url *= *\).*/\sqlalchemy.url = sqlite:\/\/\/tracim.sqlite/" /tracim/tracim/development.ini
  46. fi
  47. # Run tests
  48. cd /tracim/tracim && nosetests -c /tracim/tracim/test.ini -v