PYTHON-5316 Update tests for other hosts (#2287)

This commit is contained in:
Steven Silvester 2025-04-16 08:50:51 -05:00 committed by GitHub
parent b83389d6bc
commit 846b1fc25c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 105 additions and 32 deletions

View File

@ -3083,6 +3083,50 @@ tasks:
SUB_TEST_NAME: gke
tags: [auth_oidc, auth_oidc_remote]
# Other hosts tests
- name: test-sync-noauth-nossl-standalone
commands:
- func: run server
vars:
AUTH: noauth
SSL: nossl
TOPOLOGY: standalone
- func: run tests
vars:
AUTH: noauth
SSL: nossl
TOPOLOGY: standalone
TEST_NAME: default_sync
tags: [other-hosts, standalone-noauth-nossl]
- name: test-async-noauth-ssl-replica-set
commands:
- func: run server
vars:
AUTH: noauth
SSL: ssl
TOPOLOGY: replica_set
- func: run tests
vars:
AUTH: noauth
SSL: ssl
TOPOLOGY: replica_set
TEST_NAME: default_async
tags: [other-hosts, replica_set-noauth-ssl]
- name: test-sync-auth-ssl-sharded-cluster
commands:
- func: run server
vars:
AUTH: auth
SSL: ssl
TOPOLOGY: sharded_cluster
- func: run tests
vars:
AUTH: auth
SSL: ssl
TOPOLOGY: sharded_cluster
TEST_NAME: default_sync
tags: [other-hosts, sharded_cluster-auth-ssl]
# Perf tests
- name: perf-8.0-standalone-ssl
commands:

View File

@ -1,61 +1,66 @@
buildvariants:
# Alternative hosts tests
- name: openssl-1.0.2-rhel7-python3.9
- name: openssl-1.0.2-rhel7-v5.0-python3.9
tasks:
- name: .5.0 .standalone !.sync_async
display_name: OpenSSL 1.0.2 RHEL7 Python3.9
- name: .other-hosts
display_name: OpenSSL 1.0.2 RHEL7 v5.0 Python3.9
run_on:
- rhel79-small
batchtime: 10080
expansions:
VERSION: "5.0"
PYTHON_VERSION: "3.9"
PYTHON_BINARY: /opt/python/3.9/bin/python3
- name: other-hosts-rhel9-fips
- name: other-hosts-rhel9-fips-latest
tasks:
- name: .6.0 .standalone !.sync_async
display_name: Other hosts RHEL9-FIPS
- name: .other-hosts
display_name: Other hosts RHEL9-FIPS latest
run_on:
- rhel92-fips
batchtime: 10080
expansions:
VERSION: latest
NO_EXT: "1"
REQUIRE_FIPS: "1"
- name: other-hosts-rhel8-zseries
- name: other-hosts-rhel8-zseries-latest
tasks:
- name: .6.0 .standalone !.sync_async
display_name: Other hosts RHEL8-zseries
- name: .other-hosts
display_name: Other hosts RHEL8-zseries latest
run_on:
- rhel8-zseries-small
batchtime: 10080
expansions:
VERSION: latest
NO_EXT: "1"
- name: other-hosts-rhel8-power8
- name: other-hosts-rhel8-power8-latest
tasks:
- name: .6.0 .standalone !.sync_async
display_name: Other hosts RHEL8-POWER8
- name: .other-hosts
display_name: Other hosts RHEL8-POWER8 latest
run_on:
- rhel8-power-small
batchtime: 10080
expansions:
VERSION: latest
NO_EXT: "1"
- name: other-hosts-rhel8-arm64
- name: other-hosts-rhel8-arm64-latest
tasks:
- name: .6.0 .standalone !.sync_async
display_name: Other hosts RHEL8-arm64
- name: .other-hosts
display_name: Other hosts RHEL8-arm64 latest
run_on:
- rhel82-arm64-small
batchtime: 10080
expansions:
VERSION: latest
NO_EXT: "1"
- name: other-hosts-amazon2023
- name: other-hosts-amazon2023-latest
tasks:
- name: .latest !.sync_async .sharded_cluster .auth .ssl
- name: .latest !.sync_async .replica_set .noauth .ssl
- name: .latest !.sync_async .standalone .noauth .nossl
display_name: Other hosts Amazon2023
- name: .other-hosts
display_name: Other hosts Amazon2023 latest
run_on:
- amazon2023-arm64-latest-large-m8g
batchtime: 10080
expansions:
VERSION: latest
NO_EXT: "1"
# Atlas connect tests

View File

@ -22,6 +22,7 @@ from generate_config_utils import (
create_variant,
get_assume_role,
get_s3_put,
get_standard_auth_ssl,
get_subprocess_exec,
get_task_name,
get_variant_name,
@ -548,29 +549,29 @@ def create_alternative_hosts_variants():
variants = []
host = HOSTS["rhel7"]
version = "5.0"
variants.append(
create_variant(
[".5.0 .standalone !.sync_async"],
get_variant_name("OpenSSL 1.0.2", host, python=CPYTHONS[0]),
[".other-hosts"],
get_variant_name("OpenSSL 1.0.2", host, python=CPYTHONS[0], version=version),
host=host,
python=CPYTHONS[0],
batchtime=batchtime,
expansions=dict(VERSION=version, PYTHON_VERSION=CPYTHONS[0]),
)
)
version = "latest"
for host_name in OTHER_HOSTS:
expansions = dict()
expansions = dict(VERSION="latest")
handle_c_ext(C_EXTS[0], expansions)
host = HOSTS[host_name]
if "fips" in host_name.lower():
expansions["REQUIRE_FIPS"] = "1"
tags = [".6.0 .standalone !.sync_async"]
if host_name == "Amazon2023":
tags = [f".latest !.sync_async {t}" for t in SUB_TASKS]
variants.append(
create_variant(
tags,
display_name=get_variant_name("Other hosts", host),
[".other-hosts"],
display_name=get_variant_name("Other hosts", host, version=version),
batchtime=batchtime,
host=host,
expansions=expansions,
@ -615,14 +616,32 @@ def create_server_version_tasks():
return tasks
def create_other_hosts_tasks():
tasks = []
for topology, sync in zip_cycle(TOPOLOGIES, SYNCS):
auth, ssl = get_standard_auth_ssl(topology)
tags = [
"other-hosts",
f"{topology}-{auth}-{ssl}",
]
expansions = dict(AUTH=auth, SSL=ssl, TOPOLOGY=topology)
name = get_task_name("test", sync=sync, **expansions)
server_func = FunctionCall(func="run server", vars=expansions)
test_vars = expansions.copy()
test_vars["TEST_NAME"] = f"default_{sync}"
test_func = FunctionCall(func="run tests", vars=test_vars)
tasks.append(EvgTask(name=name, tags=tags, commands=[server_func, test_func]))
return tasks
def create_standard_linux_tasks():
tasks = []
for (version, topology), python in zip_cycle(
list(product(ALL_VERSIONS, TOPOLOGIES)), ALL_PYTHONS
):
auth = "auth" if topology == "sharded_cluster" else "noauth"
ssl = "nossl" if topology == "standalone" else "ssl"
auth, ssl = get_standard_auth_ssl(topology)
tags = [
"standard-linux",
f"server-{version}",
@ -645,8 +664,7 @@ def create_standard_non_linux_tasks():
for (version, topology), python, sync in zip_cycle(
list(product(ALL_VERSIONS, TOPOLOGIES)), CPYTHONS, SYNCS
):
auth = "auth" if topology == "sharded_cluster" else "noauth"
ssl = "nossl" if topology == "standalone" else "ssl"
auth, ssl = get_standard_auth_ssl(topology)
tags = [
"standard-non-linux",
f"server-{version}",

View File

@ -239,6 +239,12 @@ def handle_c_ext(c_ext, expansions) -> None:
expansions["NO_EXT"] = "1"
def get_standard_auth_ssl(topology):
auth = "auth" if topology == "sharded_cluster" else "noauth"
ssl = "nossl" if topology == "standalone" else "ssl"
return auth, ssl
def get_assume_role(**kwargs):
kwargs.setdefault("command_type", EvgCommandType.SETUP)
kwargs.setdefault("role_arn", "${assume_role_arn}")