Skip to content

Commit 079fc07

Browse files
committed
PYCBC-1688: Transactions - GetMulti tests should skip unsupported server
versions Changes ======= * Update tests to skip if server version does not support required features Results ======= * Integration tests pass or skip based on server version Change-Id: I6574396600c76895f69e7dd240adb0f15b8da4ad Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/228056 Tested-by: Build Bot <build@couchbase.com> Reviewed-by: Dimitris Christodoulou <dimitris.christodoulou@couchbase.com>
1 parent 5c463fb commit 079fc07

2 files changed

Lines changed: 36 additions & 0 deletions

File tree

acouchbase/tests/transactions_t.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,12 @@ def check_binary_txns_not_supported(self, cb_env):
134134
cb_env.mock_server_type,
135135
cb_env.server_version_patch)
136136

137+
@pytest.fixture(scope="class")
138+
def check_replica_read_supported(self, cb_env):
139+
EnvironmentFeatures.check_if_feature_supported('subdoc_replica_read',
140+
cb_env.server_version_short,
141+
cb_env.mock_server_type)
142+
137143
@pytest.fixture(scope='class')
138144
def check_server_groups_supported(self, cb_env):
139145
EnvironmentFeatures.check_if_feature_supported('server_groups',
@@ -355,6 +361,7 @@ async def txn_logic(ctx):
355361
assert num_attempts == 1
356362

357363
@pytest.mark.asyncio
364+
@pytest.mark.usefixtures('check_binary_txns_supported')
358365
async def test_get_multi_binary(self, cb_env):
359366
key1 = cb_env.get_new_doc(key_only=True)
360367
tc = RawBinaryTranscoder()
@@ -486,6 +493,9 @@ async def txn_logic(ctx):
486493
pass
487494

488495
@pytest.mark.asyncio
496+
@pytest.mark.usefixtures('check_binary_txns_supported')
497+
@pytest.mark.usefixtures('check_replica_read_supported')
498+
@pytest.mark.usefixtures('check_server_groups_supported')
489499
async def test_get_multi_replicas_from_preferred_server_group_binary(self, cb_env):
490500
key1 = cb_env.get_new_doc(key_only=True)
491501
tc = RawBinaryTranscoder()
@@ -514,6 +524,8 @@ async def txn_logic(ctx):
514524
pass
515525

516526
@pytest.mark.asyncio
527+
@pytest.mark.usefixtures('check_replica_read_supported')
528+
@pytest.mark.usefixtures('check_server_groups_supported')
517529
async def test_get_multi_replicas_from_preferred_server_group_not_exists(self, cb_env):
518530
key1, value1 = cb_env.get_new_doc()
519531
key2 = cb_env.get_new_doc(key_only=True)
@@ -539,6 +551,8 @@ async def txn_logic(ctx):
539551
pass
540552

541553
@pytest.mark.asyncio
554+
@pytest.mark.usefixtures('check_replica_read_supported')
555+
@pytest.mark.usefixtures('check_server_groups_supported')
542556
async def test_get_multi_replicas_from_preferred_server_group_invalid_index(self, cb_env):
543557
key1, value1 = cb_env.get_new_doc()
544558
key2 = cb_env.get_new_doc(key_only=True)
@@ -563,6 +577,8 @@ async def txn_logic(ctx):
563577
pass
564578

565579
@pytest.mark.asyncio
580+
@pytest.mark.usefixtures('check_replica_read_supported')
581+
@pytest.mark.usefixtures('check_server_groups_supported')
566582
async def test_get_multi_replicas_from_preferred_server_group_options(self, cb_env):
567583
key1, value1 = cb_env.get_new_doc()
568584
key2, value2 = cb_env.get_new_doc()
@@ -589,6 +605,8 @@ async def txn_logic(ctx):
589605
pass
590606

591607
@pytest.mark.asyncio
608+
@pytest.mark.usefixtures('check_replica_read_supported')
609+
@pytest.mark.usefixtures('check_server_groups_supported')
592610
async def test_get_multi_replicas_from_preferred_server_group_simple(self, cb_env):
593611
keys_and_docs = []
594612
for _ in range(3):

couchbase/tests/transactions_t.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,12 @@ def check_binary_txns_not_supported(self, cb_env):
132132
cb_env.mock_server_type,
133133
cb_env.server_version_patch)
134134

135+
@pytest.fixture(scope="class")
136+
def check_replica_read_supported(self, cb_env):
137+
EnvironmentFeatures.check_if_feature_supported('subdoc_replica_read',
138+
cb_env.server_version_short,
139+
cb_env.mock_server_type)
140+
135141
@pytest.fixture(scope='class')
136142
def check_server_groups_supported(self, cb_env):
137143
EnvironmentFeatures.check_if_feature_supported('server_groups',
@@ -343,6 +349,7 @@ def txn_logic(ctx):
343349

344350
assert num_attempts == 1
345351

352+
@pytest.mark.usefixtures('check_binary_txns_supported')
346353
def test_get_multi_binary(self, cb_env):
347354
key1 = cb_env.get_new_doc(key_only=True)
348355
tc = RawBinaryTranscoder()
@@ -469,6 +476,9 @@ def txn_logic(ctx):
469476
except DocumentNotFoundException:
470477
pass
471478

479+
@pytest.mark.usefixtures('check_binary_txns_supported')
480+
@pytest.mark.usefixtures('check_replica_read_supported')
481+
@pytest.mark.usefixtures('check_server_groups_supported')
472482
def test_get_multi_replicas_from_preferred_server_group_binary(self, cb_env):
473483
key1 = cb_env.get_new_doc(key_only=True)
474484
tc = RawBinaryTranscoder()
@@ -496,6 +506,8 @@ def txn_logic(ctx):
496506
except DocumentNotFoundException:
497507
pass
498508

509+
@pytest.mark.usefixtures('check_replica_read_supported')
510+
@pytest.mark.usefixtures('check_server_groups_supported')
499511
def test_get_multi_replicas_from_preferred_server_group_not_exists(self, cb_env):
500512
key1, value1 = cb_env.get_new_doc()
501513
key2 = cb_env.get_new_doc(key_only=True)
@@ -520,6 +532,8 @@ def txn_logic(ctx):
520532
except DocumentNotFoundException:
521533
pass
522534

535+
@pytest.mark.usefixtures('check_replica_read_supported')
536+
@pytest.mark.usefixtures('check_server_groups_supported')
523537
def test_get_multi_replicas_from_preferred_server_group_invalid_index(self, cb_env):
524538
key1, value1 = cb_env.get_new_doc()
525539
key2 = cb_env.get_new_doc(key_only=True)
@@ -543,6 +557,8 @@ def txn_logic(ctx):
543557
except DocumentNotFoundException:
544558
pass
545559

560+
@pytest.mark.usefixtures('check_replica_read_supported')
561+
@pytest.mark.usefixtures('check_server_groups_supported')
546562
def test_get_multi_replicas_from_preferred_server_group_options(self, cb_env):
547563
key1, value1 = cb_env.get_new_doc()
548564
key2, value2 = cb_env.get_new_doc()
@@ -568,6 +584,8 @@ def txn_logic(ctx):
568584
except DocumentNotFoundException:
569585
pass
570586

587+
@pytest.mark.usefixtures('check_replica_read_supported')
588+
@pytest.mark.usefixtures('check_server_groups_supported')
571589
def test_get_multi_replicas_from_preferred_server_group_simple(self, cb_env):
572590
keys_and_docs = []
573591
for _ in range(3):

0 commit comments

Comments
 (0)