Files
galaxy/test/deployment/usegalaxystar.bash
T
2023-01-26 13:45:42 -05:00

111 lines
4.2 KiB
Bash

#!/bin/bash
# Once-a-release deployment tests for usegalaxy*
# This script is designed for use with .github/workflows/deployment.yaml,
# a manually triggered GitHub Actions workflow.
# The variables this script consumes include:
# - GALAXY_TEST_DEPLOYMENT_TARGET
# target Galaxy deployment to test against - this should be
# usegalaxymain or usegalaxytest currently.
# - GALAXY_TEST_DEPLOYMENT_DEBUG
# should be the string "true" to enable additional debugging
# - GALAXY_TEST_USEGALAXYMAIN_USER_KEY
# GALAXY_TEST_USEGALAXYTEST_USER_KEY
# API key to select for given target.
set -e
echo "Deployment target is $GALAXY_TEST_DEPLOYMENT_TARGET"
# Setup dependencies and activate resulting Python environment.
./scripts/common_startup.sh --skip-client-build --skip-node
. .venv/bin/activate
if [ $GALAXY_TEST_DEPLOYMENT_DEBUG = "true" ];
then
PYTEST_DEBUG_ARGS="-s -v"
else
PYTEST_DEBUG_ARGS=""
fi
if [ "$GALAXY_TEST_DEPLOYMENT_TARGET" = "usegalaxymain" ];
then
GALAXY_TEST_EXTERNAL="https://usegalaxy.org"
GALAXY_TEST_USER_API_KEY="$GALAXY_TEST_USEGALAXYMAIN_USER_KEY"
GALAXY_TEST_USER_EMAIL="$GALAXY_TEST_USEGALAXYMAIN_USER_EMAIL"
GALAXY_TEST_SELENIUM_USER_PASSWORD="$GALAXY_TEST_USEGALAXYMAIN_USER_PASSWORD"
elif [ "$GALAXY_TEST_DEPLOYMENT_TARGET" = "usegalaxytest" ];
then
GALAXY_TEST_EXTERNAL="https://test.galaxyproject.org"
GALAXY_TEST_USER_API_KEY="$GALAXY_TEST_USEGALAXYTEST_USER_KEY"
GALAXY_TEST_USER_EMAIL="$GALAXY_TEST_USEGALAXYTEST_USER_EMAIL"
GALAXY_TEST_SELENIUM_USER_PASSWORD="$GALAXY_TEST_USEGALAXYTEST_USER_PASSWORD"
elif [ "$GALAXY_TEST_DEPLOYMENT_TARGET" = "usegalaxyeu" ];
then
GALAXY_TEST_EXTERNAL="https://usegalaxy.eu"
GALAXY_TEST_USER_API_KEY="$GALAXY_TEST_USEGALAXYEU_USER_KEY"
GALAXY_TEST_USER_EMAIL="$GALAXY_TEST_USEGALAXYEU_USER_EMAIL"
GALAXY_TEST_SELENIUM_USER_PASSWORD="$GALAXY_TEST_USEGALAXYEU_USER_PASSWORD"
else
echo "ERROR: Unknown deployment test target ${GALAXY_TEST_DEPLOYMENT_TARGET}"
exit 1
fi
export GALAXY_TEST_EXTERNAL
export GALAXY_TEST_USER_API_KEY
export GALAXY_TEST_USER_EMAIL
GALAXY_TEST_SELENIUM_USER_EMAIL="$GALAXY_TEST_USER_EMAIL"
export GALAXY_TEST_SELENIUM_USER_EMAIL
export GALAXY_TEST_SELENIUM_USER_PASSWORD
api_tests=(
lib/galaxy_test/api/test_datatypes.py
lib/galaxy_test/api/test_workflow_extraction.py
lib/galaxy_test/api/test_users.py
lib/galaxy_test/api/test_roles.py
lib/galaxy_test/api/test_authenticate.py
lib/galaxy_test/api/test_configuration.py
lib/galaxy_test/api/test_dataset_collections.py
lib/galaxy_test/api/test_display_applications.py
lib/galaxy_test/api/test_drs.py
lib/galaxy_test/api/test_folders.py
lib/galaxy_test/api/test_folder_contents.py
lib/galaxy_test/api/test_framework.py
lib/galaxy_test/api/test_histories.py
lib/galaxy_test/api/test_history_contents.py
)
selenium_tests=(
lib/galaxy_test/selenium/test_anon_history.py
lib/galaxy_test/selenium/test_collection_builders.py
lib/galaxy_test/selenium/test_dataset_metadata_download.py
lib/galaxy_test/selenium/test_collection_edit.py
lib/galaxy_test/selenium/test_history_copy_elements.py
lib/galaxy_test/selenium/test_history_dataset_state.py
lib/galaxy_test/selenium/test_history_multi_view.py
)
if [ "$GALAXY_TEST_DEPLOYMENT_TEST_TYPE" = "all" ];
then
tests=("${api_tests[@]}" "${selenium_tests[@]}")
elif [ "$GALAXY_TEST_DEPLOYMENT_TEST_TYPE" = "api" ];
then
tests=("${api_tests[@]}")
elif [ "$GALAXY_TEST_DEPLOYMENT_TEST_TYPE" = "selenium" ];
then
tests=("${selenium_tests[@]}")
else
echo "Unknown GALAXY_TEST_DEPLOYMENT_TEST_TYPE encountered ${GALAXY_TEST_DEPLOYMENT_TEST_TYPE}"
exit 1
fi
echo "Running tests: ${tests[@]}"
# pytest markers to select against. In order to not cause an explosion of
# semi-permanent artifacts that are difficult to manage tests which require
# new libraries or users are disabled. Tests which require admin keys are
# also disabled for security/simplicity reasons.
PYTEST_MARKER_EXPRESSION="not requires_admin and not requires_new_library and not requires_new_user and not requires_celery"
PYTEST_HTML_REPORT="deployment_tests.html"
pytest \
$PYTEST_DEBUG_ARGS \
--html "$PYTEST_HTML_REPORT" \
-m "${PYTEST_MARKER_EXPRESSION}" \
"${tests[@]}"