Skip to content

Commit e35343d

Browse files
committed
convert tests
1 parent 5659c68 commit e35343d

34 files changed

+90
-340
lines changed

.evergreen/scripts/teardown_tests.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,6 @@
3636
elif TEST_NAME == "ocsp":
3737
run_command(f"bash {DRIVERS_TOOLS}/.evergreen/ocsp/teardown.sh")
3838

39-
# Tear down serverless if applicable.
40-
elif TEST_NAME == "serverless":
41-
run_command(f"bash {DRIVERS_TOOLS}/.evergreen/serverless/teardown.sh")
42-
4339
# Tear down atlas cluster if applicable.
4440
if TEST_NAME in ["aws_lambda", "search_index"]:
4541
run_command(f"bash {DRIVERS_TOOLS}/.evergreen/atlas/teardown-atlas-cluster.sh")

.evergreen/scripts/utils.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ class Distro:
4545
"mockupdb": "mockupdb",
4646
"ocsp": "ocsp",
4747
"perf": "perf",
48-
"serverless": "",
4948
}
5049

5150
# Tests that require a sub test suite.
@@ -60,7 +59,6 @@ class Distro:
6059
"aws_lambda",
6160
"data_lake",
6261
"mockupdb",
63-
"serverless",
6462
"ocsp",
6563
]
6664

test/__init__.py

Lines changed: 38 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@
6464
MONGODB_API_VERSION,
6565
MULTI_MONGOS_LB_URI,
6666
TEST_LOADBALANCER,
67-
TEST_SERVERLESS,
6867
TLS_OPTIONS,
6968
SystemCertsPatcher,
7069
client_knobs,
@@ -123,9 +122,8 @@ def __init__(self):
123122
self.conn_lock = threading.Lock()
124123
self.is_data_lake = False
125124
self.load_balancer = TEST_LOADBALANCER
126-
self.serverless = TEST_SERVERLESS
127125
self._fips_enabled = None
128-
if self.load_balancer or self.serverless:
126+
if self.load_balancer:
129127
self.default_client_options["loadBalanced"] = True
130128
if COMPRESSORS:
131129
self.default_client_options["compressors"] = COMPRESSORS
@@ -167,7 +165,7 @@ def uri(self):
167165
@property
168166
def hello(self):
169167
if not self._hello:
170-
if self.serverless or self.load_balancer:
168+
if self.load_balancer:
171169
self._hello = self.client.admin.command(HelloCompat.CMD)
172170
else:
173171
self._hello = self.client.admin.command(HelloCompat.LEGACY_CMD)
@@ -222,24 +220,21 @@ def _init_client(self):
222220
if self.client:
223221
self.connected = True
224222

225-
if self.serverless:
226-
self.auth_enabled = True
227-
else:
228-
try:
229-
self.cmd_line = self.client.admin.command("getCmdLineOpts")
230-
except pymongo.errors.OperationFailure as e:
231-
assert e.details is not None
232-
msg = e.details.get("errmsg", "")
233-
if e.code == 13 or "unauthorized" in msg or "login" in msg:
234-
# Unauthorized.
235-
self.auth_enabled = True
236-
else:
237-
raise
223+
try:
224+
self.cmd_line = self.client.admin.command("getCmdLineOpts")
225+
except pymongo.errors.OperationFailure as e:
226+
assert e.details is not None
227+
msg = e.details.get("errmsg", "")
228+
if e.code == 13 or "unauthorized" in msg or "login" in msg:
229+
# Unauthorized.
230+
self.auth_enabled = True
238231
else:
239-
self.auth_enabled = self._server_started_with_auth()
232+
raise
233+
else:
234+
self.auth_enabled = self._server_started_with_auth()
240235

241236
if self.auth_enabled:
242-
if not self.serverless and not IS_SRV:
237+
if not IS_SRV:
243238
# See if db_user already exists.
244239
if not self._check_user_provided():
245240
_create_user(self.client.admin, db_user, db_pwd)
@@ -259,13 +254,10 @@ def _init_client(self):
259254
# May not have this if OperationFailure was raised earlier.
260255
self.cmd_line = self.client.admin.command("getCmdLineOpts")
261256

262-
if self.serverless:
263-
self.server_status = {}
264-
else:
265-
self.server_status = self.client.admin.command("serverStatus")
266-
if self.storage_engine == "mmapv1":
267-
# MMAPv1 does not support retryWrites=True.
268-
self.default_client_options["retryWrites"] = False
257+
self.server_status = self.client.admin.command("serverStatus")
258+
if self.storage_engine == "mmapv1":
259+
# MMAPv1 does not support retryWrites=True.
260+
self.default_client_options["retryWrites"] = False
269261

270262
hello = self.hello
271263
self.sessions_enabled = "logicalSessionTimeoutMinutes" in hello
@@ -302,42 +294,33 @@ def _init_client(self):
302294
self.w = len(hello.get("hosts", [])) or 1
303295
self.version = Version.from_client(self.client)
304296

305-
if self.serverless:
306-
self.server_parameters = {
307-
"requireApiVersion": False,
308-
"enableTestCommands": True,
309-
}
297+
self.server_parameters = self.client.admin.command("getParameter", "*")
298+
assert self.cmd_line is not None
299+
if self.server_parameters["enableTestCommands"]:
310300
self.test_commands_enabled = True
311-
self.has_ipv6 = False
312-
else:
313-
self.server_parameters = self.client.admin.command("getParameter", "*")
314-
assert self.cmd_line is not None
315-
if self.server_parameters["enableTestCommands"]:
301+
elif "parsed" in self.cmd_line:
302+
params = self.cmd_line["parsed"].get("setParameter", [])
303+
if "enableTestCommands=1" in params:
316304
self.test_commands_enabled = True
317-
elif "parsed" in self.cmd_line:
318-
params = self.cmd_line["parsed"].get("setParameter", [])
319-
if "enableTestCommands=1" in params:
305+
else:
306+
params = self.cmd_line["parsed"].get("setParameter", {})
307+
if params.get("enableTestCommands") == "1":
320308
self.test_commands_enabled = True
321-
else:
322-
params = self.cmd_line["parsed"].get("setParameter", {})
323-
if params.get("enableTestCommands") == "1":
324-
self.test_commands_enabled = True
325-
self.has_ipv6 = self._server_started_with_ipv6()
309+
self.has_ipv6 = self._server_started_with_ipv6()
326310

327311
self.is_mongos = (self.hello).get("msg") == "isdbgrid"
328312
if self.is_mongos:
329313
address = self.client.address
330314
self.mongoses.append(address)
331-
if not self.serverless:
332-
# Check for another mongos on the next port.
333-
assert address is not None
334-
next_address = address[0], address[1] + 1
335-
mongos_client = self._connect(*next_address, **self.default_client_options)
336-
if mongos_client:
337-
hello = mongos_client.admin.command(HelloCompat.LEGACY_CMD)
338-
if hello.get("msg") == "isdbgrid":
339-
self.mongoses.append(next_address)
340-
mongos_client.close()
315+
# Check for another mongos on the next port.
316+
assert address is not None
317+
next_address = address[0], address[1] + 1
318+
mongos_client = self._connect(*next_address, **self.default_client_options)
319+
if mongos_client:
320+
hello = mongos_client.admin.command(HelloCompat.LEGACY_CMD)
321+
if hello.get("msg") == "isdbgrid":
322+
self.mongoses.append(next_address)
323+
mongos_client.close()
341324

342325
def init(self):
343326
with self.conn_lock:
@@ -666,15 +649,9 @@ def require_no_load_balancer(self, func):
666649
lambda: not self.load_balancer, "Must not be connected to a load balancer", func=func
667650
)
668651

669-
def require_no_serverless(self, func):
670-
"""Run a test only if the client is not connected to serverless."""
671-
return self._require(
672-
lambda: not self.serverless, "Must not be connected to serverless", func=func
673-
)
674-
675652
def require_change_streams(self, func):
676653
"""Run a test only if the server supports change streams."""
677-
return self.require_no_mmap(self.require_no_standalone(self.require_no_serverless(func)))
654+
return self.require_no_mmap(self.require_no_standalone(func))
678655

679656
def is_topology_type(self, topologies):
680657
unknown = set(topologies) - {
@@ -1195,8 +1172,6 @@ class IntegrationTest(PyMongoTestCase):
11951172
def setUp(self) -> None:
11961173
if client_context.load_balancer and not getattr(self, "RUN_ON_LOAD_BALANCER", False):
11971174
raise SkipTest("this test does not support load balancers")
1198-
if client_context.serverless and not getattr(self, "RUN_ON_SERVERLESS", False):
1199-
raise SkipTest("this test does not support serverless")
12001175
self.client = client_context.client
12011176
self.db = self.client.pymongo_test
12021177
if client_context.auth_enabled:

test/asynchronous/__init__.py

Lines changed: 38 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@
6464
MONGODB_API_VERSION,
6565
MULTI_MONGOS_LB_URI,
6666
TEST_LOADBALANCER,
67-
TEST_SERVERLESS,
6867
TLS_OPTIONS,
6968
SystemCertsPatcher,
7069
client_knobs,
@@ -123,9 +122,8 @@ def __init__(self):
123122
self.conn_lock = threading.Lock()
124123
self.is_data_lake = False
125124
self.load_balancer = TEST_LOADBALANCER
126-
self.serverless = TEST_SERVERLESS
127125
self._fips_enabled = None
128-
if self.load_balancer or self.serverless:
126+
if self.load_balancer:
129127
self.default_client_options["loadBalanced"] = True
130128
if COMPRESSORS:
131129
self.default_client_options["compressors"] = COMPRESSORS
@@ -167,7 +165,7 @@ async def uri(self):
167165
@property
168166
async def hello(self):
169167
if not self._hello:
170-
if self.serverless or self.load_balancer:
168+
if self.load_balancer:
171169
self._hello = await self.client.admin.command(HelloCompat.CMD)
172170
else:
173171
self._hello = await self.client.admin.command(HelloCompat.LEGACY_CMD)
@@ -222,24 +220,21 @@ async def _init_client(self):
222220
if self.client:
223221
self.connected = True
224222

225-
if self.serverless:
226-
self.auth_enabled = True
227-
else:
228-
try:
229-
self.cmd_line = await self.client.admin.command("getCmdLineOpts")
230-
except pymongo.errors.OperationFailure as e:
231-
assert e.details is not None
232-
msg = e.details.get("errmsg", "")
233-
if e.code == 13 or "unauthorized" in msg or "login" in msg:
234-
# Unauthorized.
235-
self.auth_enabled = True
236-
else:
237-
raise
223+
try:
224+
self.cmd_line = await self.client.admin.command("getCmdLineOpts")
225+
except pymongo.errors.OperationFailure as e:
226+
assert e.details is not None
227+
msg = e.details.get("errmsg", "")
228+
if e.code == 13 or "unauthorized" in msg or "login" in msg:
229+
# Unauthorized.
230+
self.auth_enabled = True
238231
else:
239-
self.auth_enabled = self._server_started_with_auth()
232+
raise
233+
else:
234+
self.auth_enabled = self._server_started_with_auth()
240235

241236
if self.auth_enabled:
242-
if not self.serverless and not IS_SRV:
237+
if not IS_SRV:
243238
# See if db_user already exists.
244239
if not await self._check_user_provided():
245240
await _create_user(self.client.admin, db_user, db_pwd)
@@ -259,13 +254,10 @@ async def _init_client(self):
259254
# May not have this if OperationFailure was raised earlier.
260255
self.cmd_line = await self.client.admin.command("getCmdLineOpts")
261256

262-
if self.serverless:
263-
self.server_status = {}
264-
else:
265-
self.server_status = await self.client.admin.command("serverStatus")
266-
if self.storage_engine == "mmapv1":
267-
# MMAPv1 does not support retryWrites=True.
268-
self.default_client_options["retryWrites"] = False
257+
self.server_status = await self.client.admin.command("serverStatus")
258+
if self.storage_engine == "mmapv1":
259+
# MMAPv1 does not support retryWrites=True.
260+
self.default_client_options["retryWrites"] = False
269261

270262
hello = await self.hello
271263
self.sessions_enabled = "logicalSessionTimeoutMinutes" in hello
@@ -302,44 +294,33 @@ async def _init_client(self):
302294
self.w = len(hello.get("hosts", [])) or 1
303295
self.version = await Version.async_from_client(self.client)
304296

305-
if self.serverless:
306-
self.server_parameters = {
307-
"requireApiVersion": False,
308-
"enableTestCommands": True,
309-
}
297+
self.server_parameters = await self.client.admin.command("getParameter", "*")
298+
assert self.cmd_line is not None
299+
if self.server_parameters["enableTestCommands"]:
310300
self.test_commands_enabled = True
311-
self.has_ipv6 = False
312-
else:
313-
self.server_parameters = await self.client.admin.command("getParameter", "*")
314-
assert self.cmd_line is not None
315-
if self.server_parameters["enableTestCommands"]:
301+
elif "parsed" in self.cmd_line:
302+
params = self.cmd_line["parsed"].get("setParameter", [])
303+
if "enableTestCommands=1" in params:
316304
self.test_commands_enabled = True
317-
elif "parsed" in self.cmd_line:
318-
params = self.cmd_line["parsed"].get("setParameter", [])
319-
if "enableTestCommands=1" in params:
305+
else:
306+
params = self.cmd_line["parsed"].get("setParameter", {})
307+
if params.get("enableTestCommands") == "1":
320308
self.test_commands_enabled = True
321-
else:
322-
params = self.cmd_line["parsed"].get("setParameter", {})
323-
if params.get("enableTestCommands") == "1":
324-
self.test_commands_enabled = True
325-
self.has_ipv6 = await self._server_started_with_ipv6()
309+
self.has_ipv6 = await self._server_started_with_ipv6()
326310

327311
self.is_mongos = (await self.hello).get("msg") == "isdbgrid"
328312
if self.is_mongos:
329313
address = await self.client.address
330314
self.mongoses.append(address)
331-
if not self.serverless:
332-
# Check for another mongos on the next port.
333-
assert address is not None
334-
next_address = address[0], address[1] + 1
335-
mongos_client = await self._connect(
336-
*next_address, **self.default_client_options
337-
)
338-
if mongos_client:
339-
hello = await mongos_client.admin.command(HelloCompat.LEGACY_CMD)
340-
if hello.get("msg") == "isdbgrid":
341-
self.mongoses.append(next_address)
342-
await mongos_client.close()
315+
# Check for another mongos on the next port.
316+
assert address is not None
317+
next_address = address[0], address[1] + 1
318+
mongos_client = await self._connect(*next_address, **self.default_client_options)
319+
if mongos_client:
320+
hello = await mongos_client.admin.command(HelloCompat.LEGACY_CMD)
321+
if hello.get("msg") == "isdbgrid":
322+
self.mongoses.append(next_address)
323+
await mongos_client.close()
343324

344325
async def init(self):
345326
with self.conn_lock:
@@ -668,15 +649,9 @@ def require_no_load_balancer(self, func):
668649
lambda: not self.load_balancer, "Must not be connected to a load balancer", func=func
669650
)
670651

671-
def require_no_serverless(self, func):
672-
"""Run a test only if the client is not connected to serverless."""
673-
return self._require(
674-
lambda: not self.serverless, "Must not be connected to serverless", func=func
675-
)
676-
677652
def require_change_streams(self, func):
678653
"""Run a test only if the server supports change streams."""
679-
return self.require_no_mmap(self.require_no_standalone(self.require_no_serverless(func)))
654+
return self.require_no_mmap(self.require_no_standalone(func))
680655

681656
async def is_topology_type(self, topologies):
682657
unknown = set(topologies) - {
@@ -1213,8 +1188,6 @@ class AsyncIntegrationTest(AsyncPyMongoTestCase):
12131188
async def asyncSetUp(self) -> None:
12141189
if async_client_context.load_balancer and not getattr(self, "RUN_ON_LOAD_BALANCER", False):
12151190
raise SkipTest("this test does not support load balancers")
1216-
if async_client_context.serverless and not getattr(self, "RUN_ON_SERVERLESS", False):
1217-
raise SkipTest("this test does not support serverless")
12181191
self.client = async_client_context.client
12191192
self.db = self.client.pymongo_test
12201193
if async_client_context.auth_enabled:

test/asynchronous/helpers.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@
8282
COMPRESSORS = os.environ.get("COMPRESSORS")
8383
MONGODB_API_VERSION = os.environ.get("MONGODB_API_VERSION")
8484
TEST_LOADBALANCER = bool(os.environ.get("TEST_LOAD_BALANCER"))
85-
TEST_SERVERLESS = bool(os.environ.get("TEST_SERVERLESS"))
8685
SINGLE_MONGOS_LB_URI = os.environ.get("SINGLE_MONGOS_LB_URI")
8786
MULTI_MONGOS_LB_URI = os.environ.get("MULTI_MONGOS_LB_URI")
8887

@@ -91,15 +90,6 @@
9190
host, port = res["nodelist"][0]
9291
db_user = res["username"] or db_user
9392
db_pwd = res["password"] or db_pwd
94-
elif TEST_SERVERLESS:
95-
TEST_LOADBALANCER = True
96-
res = parse_uri(SINGLE_MONGOS_LB_URI or "")
97-
host, port = res["nodelist"][0]
98-
db_user = res["username"] or db_user
99-
db_pwd = res["password"] or db_pwd
100-
TLS_OPTIONS = {"tls": True}
101-
# Spec says serverless tests must be run with compression.
102-
COMPRESSORS = COMPRESSORS or "zlib"
10393

10494

10595
# Shared KMS data.

0 commit comments

Comments
 (0)