Skip to content

Commit 5b85ad2

Browse files
authored
PYTHON-3391 Skip unsupported CSOT tests on serverless (#1030)
1 parent 7c19ff7 commit 5b85ad2

10 files changed

+29
-25
lines changed

test/__init__.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -759,6 +759,16 @@ def require_no_load_balancer(self, func):
759759
lambda: not self.load_balancer, "Must not be connected to a load balancer", func=func
760760
)
761761

762+
def require_no_serverless(self, func):
763+
"""Run a test only if the client is not connected to serverless."""
764+
return self._require(
765+
lambda: not self.serverless, "Must not be connected to serverless", func=func
766+
)
767+
768+
def require_change_streams(self, func):
769+
"""Run a test only if the server supports change streams."""
770+
return self.require_no_mmap(self.require_no_standalone(self.require_no_serverless(func)))
771+
762772
def is_topology_type(self, topologies):
763773
unknown = set(topologies) - {
764774
"single",

test/csot/gridfs-advanced.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
"schemaVersion": "1.9",
44
"runOnRequirements": [
55
{
6-
"minServerVersion": "4.4"
6+
"minServerVersion": "4.4",
7+
"serverless": "forbid"
78
}
89
],
910
"createEntities": [

test/csot/gridfs-delete.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
"schemaVersion": "1.9",
44
"runOnRequirements": [
55
{
6-
"minServerVersion": "4.4"
6+
"minServerVersion": "4.4",
7+
"serverless": "forbid"
78
}
89
],
910
"createEntities": [

test/csot/gridfs-download.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
"schemaVersion": "1.9",
44
"runOnRequirements": [
55
{
6-
"minServerVersion": "4.4"
6+
"minServerVersion": "4.4",
7+
"serverless": "forbid"
78
}
89
],
910
"createEntities": [

test/csot/gridfs-find.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
"schemaVersion": "1.9",
44
"runOnRequirements": [
55
{
6-
"minServerVersion": "4.4"
6+
"minServerVersion": "4.4",
7+
"serverless": "forbid"
78
}
89
],
910
"createEntities": [

test/csot/gridfs-upload.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
"schemaVersion": "1.9",
44
"runOnRequirements": [
55
{
6-
"minServerVersion": "4.4"
6+
"minServerVersion": "4.4",
7+
"serverless": "forbid"
78
}
89
],
910
"createEntities": [

test/test_change_stream.py

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -430,8 +430,7 @@ def test_start_after_resume_process_with_changes(self):
430430
self.assertEqual(change["fullDocument"], {"_id": 3})
431431

432432
@no_type_check
433-
@client_context.require_no_mongos # Remove after SERVER-41196
434-
@client_context.require_version_min(4, 1, 1)
433+
@client_context.require_version_min(4, 2)
435434
def test_start_after_resume_process_without_changes(self):
436435
resume_token = self.get_resume_token(invalidate=True)
437436

@@ -767,8 +766,7 @@ class TestClusterChangeStream(TestChangeStreamBase, APITestsMixin):
767766

768767
@classmethod
769768
@client_context.require_version_min(4, 0, 0, -1)
770-
@client_context.require_no_mmap
771-
@client_context.require_no_standalone
769+
@client_context.require_change_streams
772770
def setUpClass(cls):
773771
super(TestClusterChangeStream, cls).setUpClass()
774772
cls.dbs = [cls.db, cls.client.pymongo_test_2]
@@ -829,8 +827,7 @@ def test_full_pipeline(self):
829827
class TestDatabaseChangeStream(TestChangeStreamBase, APITestsMixin):
830828
@classmethod
831829
@client_context.require_version_min(4, 0, 0, -1)
832-
@client_context.require_no_mmap
833-
@client_context.require_no_standalone
830+
@client_context.require_change_streams
834831
def setUpClass(cls):
835832
super(TestDatabaseChangeStream, cls).setUpClass()
836833

@@ -915,9 +912,7 @@ def test_isolation(self):
915912

916913
class TestCollectionChangeStream(TestChangeStreamBase, APITestsMixin, ProseSpecTestsMixin):
917914
@classmethod
918-
@client_context.require_version_min(3, 5, 11)
919-
@client_context.require_no_mmap
920-
@client_context.require_no_standalone
915+
@client_context.require_change_streams
921916
def setUpClass(cls):
922917
super(TestCollectionChangeStream, cls).setUpClass()
923918

test/test_csot.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,7 @@ def test_timeout_nested(self):
7373
self.assertEqual(_csot.get_deadline(), float("inf"))
7474
self.assertEqual(_csot.get_rtt(), 0.0)
7575

76-
@client_context.require_version_min(3, 6)
77-
@client_context.require_no_mmap
78-
@client_context.require_no_standalone
76+
@client_context.require_change_streams
7977
def test_change_stream_can_resume_after_timeouts(self):
8078
coll = self.db.test
8179
with coll.watch(max_await_time_ms=150) as stream:

test/test_custom_types.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -896,8 +896,7 @@ def run_test(doc_cls):
896896

897897
class TestCollectionChangeStreamsWCustomTypes(IntegrationTest, ChangeStreamsWCustomTypesTestMixin):
898898
@classmethod
899-
@client_context.require_no_mmap
900-
@client_context.require_no_standalone
899+
@client_context.require_change_streams
901900
def setUpClass(cls):
902901
super(TestCollectionChangeStreamsWCustomTypes, cls).setUpClass()
903902
cls.db.test.delete_many({})
@@ -916,8 +915,7 @@ def create_targets(self, *args, **kwargs):
916915
class TestDatabaseChangeStreamsWCustomTypes(IntegrationTest, ChangeStreamsWCustomTypesTestMixin):
917916
@classmethod
918917
@client_context.require_version_min(4, 0, 0)
919-
@client_context.require_no_mmap
920-
@client_context.require_no_standalone
918+
@client_context.require_change_streams
921919
def setUpClass(cls):
922920
super(TestDatabaseChangeStreamsWCustomTypes, cls).setUpClass()
923921
cls.db.test.delete_many({})
@@ -936,8 +934,7 @@ def create_targets(self, *args, **kwargs):
936934
class TestClusterChangeStreamsWCustomTypes(IntegrationTest, ChangeStreamsWCustomTypesTestMixin):
937935
@classmethod
938936
@client_context.require_version_min(4, 0, 0)
939-
@client_context.require_no_mmap
940-
@client_context.require_no_standalone
937+
@client_context.require_change_streams
941938
def setUpClass(cls):
942939
super(TestClusterChangeStreamsWCustomTypes, cls).setUpClass()
943940
cls.db.test.delete_many({})

test/test_examples.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -740,8 +740,7 @@ def test_delete(self):
740740

741741
self.assertEqual(db.inventory.count_documents({}), 0)
742742

743-
@client_context.require_replica_set
744-
@client_context.require_no_mmap
743+
@client_context.require_change_streams
745744
def test_change_streams(self):
746745
db = self.db
747746
done = False

0 commit comments

Comments
 (0)