diff --git a/test/conftest.py b/test/conftest.py index bd77f02e063e3c652d79fb59bcb26e144155f61e..179a642db4d13c43a3c20908c16da002e99c4a78 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -629,7 +629,7 @@ class Instance: tuple: Tuple | List, index: int | None = None, term: int | None = None, - range: CasRange | None = None, + ranges: List[CasRange] | None = None, ) -> int: """ Performs a clusterwide compare and swap operation. @@ -649,18 +649,21 @@ class Instance: space_id = self.space_id(space) - predicate_range = None - if range is not None: - predicate_range = dict( - space=space_id, - key_min=range.key_min_packed, - key_max=range.key_max_packed, - ) + predicate_ranges = [] + if ranges is not None: + for range in ranges: + predicate_ranges.append( + dict( + space=space_id, + key_min=range.key_min_packed, + key_max=range.key_max_packed, + ) + ) predicate = dict( index=index, term=term, - ranges=[predicate_range] if predicate_range is not None else [], + ranges=predicate_ranges, ) if dml_kind in ["insert", "replace"]: @@ -1078,7 +1081,7 @@ class Cluster: tuple: Tuple | List, index: int | None = None, term: int | None = None, - range: CasRange | None = None, + ranges: List[CasRange] | None = None, # If specified send CaS through this instance instance: Instance | None = None, ) -> int: @@ -1093,18 +1096,21 @@ class Cluster: if instance is None: instance = self.instances[0] - predicate_range = None - if range is not None: - predicate_range = dict( - space=space, - key_min=range.key_min, - key_max=range.key_max, - ) + predicate_ranges = [] + if ranges is not None: + for range in ranges: + predicate_ranges.append( + dict( + space=space, + key_min=range.key_min, + key_max=range.key_max, + ) + ) predicate = dict( index=index, term=term, - ranges=predicate_range, + ranges=predicate_ranges, ) if dml_kind in ["insert", "replace", "delete"]: dml = dict( diff --git a/test/int/test_cas.py b/test/int/test_cas.py index b98b93965b9bf95ddb8ed514e1407fd5245789db..732f5cf0882ef5efcba5fd408ff052f3afca5777 100644 --- a/test/int/test_cas.py +++ b/test/int/test_cas.py @@ -88,7 +88,7 @@ def test_cas_errors(instance: Instance): "insert", space, [0], - range=CasRange(eq=0), + ranges=[CasRange(eq=0)], ) assert e5.value.args == ( "ER_PROC_C", @@ -124,7 +124,7 @@ def test_cas_predicate(instance: Instance): "_pico_property", ["fruit", "orange"], index=read_index, - range=CasRange(eq="fruit"), + ranges=[CasRange(eq="fruit")], ) assert e5.value.args == ( "ER_PROC_C", @@ -139,7 +139,7 @@ def test_cas_predicate(instance: Instance): "_pico_property", ["flower", "tulip"], index=read_index, - range=CasRange(eq="flower"), + ranges=[CasRange(eq="flower")], ) assert ret == read_index + 2 instance.raft_wait_index(ret, _3_SEC)