Skip to content

Commit f23ee85

Browse files
committed
add latency-based concurrency tests for group.members
1 parent 4c624e1 commit f23ee85

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

tests/test_group.py

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1488,21 +1488,27 @@ def test_delitem_removes_children(store: Store, zarr_format: ZarrFormat) -> None
14881488
g1["0/0"]
14891489

14901490

1491-
@pytest.mark.parametrize('store', ['memory'], indirect=True)
1491+
@pytest.mark.parametrize("store", ["memory"], indirect=True)
14921492
def test_group_members_performance(store: MemoryStore) -> None:
14931493
"""
14941494
Test that the performance of Group.members is robust to asynchronous latency
14951495
"""
14961496
get_latency = 0.1
1497-
latency_store = LatencyStore(store, get_latency=get_latency)
14981497

1499-
group = zarr.group(store=latency_store)
1500-
num_groups = 100
1498+
# use the input store to create some groups
1499+
group_create = zarr.group(store=store)
1500+
num_groups = 10
1501+
15011502
# Create some groups
15021503
for i in range(num_groups):
1503-
group.create_group(f"group{i}")
1504+
group_create.create_group(f"group{i}")
15041505

1505-
start= time.time()
1506-
members = group.members()
1507-
elapsed = start = time.time()
1508-
assert elapsed < 2 * get_latency
1506+
latency_store = LatencyStore(store, get_latency=get_latency)
1507+
# create a group with some latency on get operations
1508+
group_read = zarr.group(store=latency_store)
1509+
1510+
# check how long it takes to iterate over the groups
1511+
start = time.time()
1512+
_ = group_read.members()
1513+
elapsed = time.time() - start
1514+
assert elapsed < (1.1 * get_latency) + 0.001

0 commit comments

Comments
 (0)