From 0351992ddb7db34f4700c5d8eb824d1599dfe80a Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Thu, 13 Mar 2025 09:28:34 -0500 Subject: [PATCH] PYTHON-5204 Convert Serverless tests to use new test scripts (#2197) --- .evergreen/config.yml | 30 ----------------------- .evergreen/generated_configs/tasks.yml | 10 ++++++++ .evergreen/generated_configs/variants.yml | 10 ++------ .evergreen/scripts/generate_config.py | 12 ++++++--- .evergreen/scripts/setup_tests.py | 1 + .evergreen/scripts/teardown_tests.py | 6 ++++- 6 files changed, 27 insertions(+), 42 deletions(-) diff --git a/.evergreen/config.yml b/.evergreen/config.yml index 25ea2c4b9..f563a1ace 100644 --- a/.evergreen/config.yml +++ b/.evergreen/config.yml @@ -372,29 +372,6 @@ post: - func: "cleanup" task_groups: - - name: serverless_task_group - setup_group_can_fail_task: true - setup_group_timeout_secs: 1800 # 30 minutes - setup_group: - - func: "fetch source" - - func: "setup system" - - command: subprocess.exec - params: - binary: bash - env: - VAULT_NAME: ${VAULT_NAME} - args: - - ${DRIVERS_TOOLS}/.evergreen/serverless/create-instance.sh - teardown_task: - - command: subprocess.exec - params: - binary: bash - args: - - ${DRIVERS_TOOLS}/.evergreen/serverless/delete-instance.sh - - func: "upload test results" - tasks: - - ".serverless" - - name: test_aws_lambda_task_group setup_group: - func: fetch source @@ -445,13 +422,6 @@ tasks: - func: "run server" - func: "run doctests" - - name: "test-serverless" - tags: ["serverless"] - commands: - - func: "run tests" - vars: - TEST_NAME: serverless - - name: "test-enterprise-auth" tags: ["enterprise-auth"] commands: diff --git a/.evergreen/generated_configs/tasks.yml b/.evergreen/generated_configs/tasks.yml index 9d52cf957..de18b4df0 100644 --- a/.evergreen/generated_configs/tasks.yml +++ b/.evergreen/generated_configs/tasks.yml @@ -5866,3 +5866,13 @@ tasks: - noauth - nossl - sync_async + + # Serverless tests + - name: test-serverless + commands: + - func: run tests + vars: + TEST_NAME: serverless + AUTH: auth + SSL: ssl + tags: [serverless] diff --git a/.evergreen/generated_configs/variants.yml b/.evergreen/generated_configs/variants.yml index cf3e0cc90..938f98e43 100644 --- a/.evergreen/generated_configs/variants.yml +++ b/.evergreen/generated_configs/variants.yml @@ -1235,27 +1235,21 @@ buildvariants: # Serverless tests - name: serverless-rhel8-python3.9 tasks: - - name: serverless_task_group + - name: .serverless display_name: Serverless RHEL8 Python3.9 run_on: - rhel87-small batchtime: 10080 expansions: - TEST_NAME: serverless - AUTH: auth - SSL: ssl PYTHON_BINARY: /opt/python/3.9/bin/python3 - name: serverless-rhel8-python3.13 tasks: - - name: serverless_task_group + - name: .serverless display_name: Serverless RHEL8 Python3.13 run_on: - rhel87-small batchtime: 10080 expansions: - TEST_NAME: serverless - AUTH: auth - SSL: ssl PYTHON_BINARY: /opt/python/3.13/bin/python3 # Stable api tests diff --git a/.evergreen/scripts/generate_config.py b/.evergreen/scripts/generate_config.py index 14f30fed9..84cd1075b 100644 --- a/.evergreen/scripts/generate_config.py +++ b/.evergreen/scripts/generate_config.py @@ -645,8 +645,7 @@ def create_disable_test_commands_variants(): def create_serverless_variants(): host = DEFAULT_HOST batchtime = BATCHTIME_WEEK - expansions = dict(TEST_NAME="serverless", AUTH="auth", SSL="ssl") - tasks = ["serverless_task_group"] + tasks = [".serverless"] base_name = "Serverless" return [ create_variant( @@ -654,7 +653,6 @@ def create_serverless_variants(): get_display_name(base_name, host, python=python), host=host, python=python, - expansions=expansions, batchtime=batchtime, ) for python in MIN_MAX_PYTHON @@ -951,6 +949,14 @@ def create_ocsp_tasks(): return tasks +def create_serverless_tasks(): + vars = dict(TEST_NAME="serverless", AUTH="auth", SSL="ssl") + test_func = FunctionCall(func="run tests", vars=vars) + tags = ["serverless"] + task_name = "test-serverless" + return [EvgTask(name=task_name, tags=tags, commands=[test_func])] + + ################## # Generate Config ################## diff --git a/.evergreen/scripts/setup_tests.py b/.evergreen/scripts/setup_tests.py index 8432eacd5..3ba6d6175 100644 --- a/.evergreen/scripts/setup_tests.py +++ b/.evergreen/scripts/setup_tests.py @@ -174,6 +174,7 @@ def handle_test_env() -> None: DB_USER = config["ADL_USERNAME"] DB_PASSWORD = config["ADL_PASSWORD"] elif test_name == "serverless": + run_command(f"bash {DRIVERS_TOOLS}/.evergreen/serverless/setup.sh") config = read_env(f"{DRIVERS_TOOLS}/.evergreen/serverless/secrets-export.sh") DB_USER = config["SERVERLESS_ATLAS_USER"] DB_PASSWORD = config["SERVERLESS_ATLAS_PASSWORD"] diff --git a/.evergreen/scripts/teardown_tests.py b/.evergreen/scripts/teardown_tests.py index 988d7ec48..392018042 100644 --- a/.evergreen/scripts/teardown_tests.py +++ b/.evergreen/scripts/teardown_tests.py @@ -32,7 +32,11 @@ elif TEST_NAME == "auth_oidc": # Tear down ocsp if applicable. elif TEST_NAME == "ocsp": - run_command(f"bash {DRIVERS_TOOLS}/.evergreen/teardown.sh") + run_command(f"bash {DRIVERS_TOOLS}/.evergreen/ocsp/teardown.sh") + +# Tear down serverless if applicable. +elif TEST_NAME == "serverless": + run_command(f"bash {DRIVERS_TOOLS}/.evergreen/serverless/teardown.sh") # Tear down auth_aws if applicable. # We do not run web-identity hosts on macos, because the hosts lack permissions,