Skip to content

Commit 63b3b6b

Browse files
committed
fix parallel tests
1 parent acff63c commit 63b3b6b

File tree

1 file changed

+20
-18
lines changed

1 file changed

+20
-18
lines changed

zarr/tests/test_sync.py

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
from zarr.sync import ThreadSynchronizer, ProcessSynchronizer
2121
from zarr.core import Array
2222
from zarr.attrs import Attributes
23-
from zarr.storage import init_array, TempStore, init_group, atexit_rmtree
23+
from zarr.storage import init_array, DirectoryStore, init_group, atexit_rmtree
2424
from zarr.compat import PY2
2525
from zarr.codecs import Zlib
2626
from zarr.hierarchy import Group
@@ -79,31 +79,33 @@ def _set_arange(arg):
7979
class MixinArraySyncTests(object):
8080

8181
def test_parallel_setitem(self):
82-
n = 99
82+
n = 200
8383

8484
# setup
8585
arr = self.create_array(shape=n * 1000, chunks=999, dtype='i4')
8686
arr[:] = 0
8787
pool = self.create_pool()
8888

8989
# parallel setitem
90-
results = pool.map_async(_set_arange, zip([arr] * n, range(n)))
91-
print(results.get(20))
92-
90+
future = pool.map_async(_set_arange, zip([arr] * n, range(n)))
91+
results = future.get(30)
92+
print(results)
93+
eq(list(range(n)), sorted(results))
9394
assert_array_equal(np.arange(n * 1000), arr[:])
9495

9596
def test_parallel_append(self):
96-
n = 99
97+
n = 200
9798

9899
# setup
99100
arr = self.create_array(shape=1000, chunks=999, dtype='i4')
100101
arr[:] = 0
101102
pool = self.create_pool()
102103

103104
# parallel append
104-
results = pool.map_async(_append, zip([arr] * n, range(n)))
105-
print(results.get(20))
106-
105+
future = pool.map_async(_append, zip([arr] * n, range(n)))
106+
results = future.get(30)
107+
print(results)
108+
eq([((i+2)*1000,) for i in range(n)], sorted(results))
107109
eq(((n+1)*1000,), arr.shape)
108110

109111

@@ -138,7 +140,7 @@ def create_pool(self):
138140
class TestArrayWithProcessSynchronizer(TestArray, MixinArraySyncTests):
139141

140142
def create_array(self, read_only=False, **kwargs):
141-
store = TempStore()
143+
store = DirectoryStore(TemporaryDirectory().name)
142144
init_array(store, **kwargs)
143145
synchronizer = ProcessSynchronizer(TemporaryDirectory().name)
144146
return Array(store, synchronizer=synchronizer,
@@ -153,7 +155,7 @@ def test_repr(self):
153155
expect = """Array((100,), float32, chunks=(10,), order=C)
154156
nbytes: 400; nbytes_stored: 245; ratio: 1.6; initialized: 0/10
155157
compressor: Zlib(level=1)
156-
store: TempStore; synchronizer: ProcessSynchronizer
158+
store: DirectoryStore; synchronizer: ProcessSynchronizer
157159
"""
158160
actual = repr(z)
159161
for l1, l2 in zip(expect.split('\n'), actual.split('\n')):
@@ -185,10 +187,10 @@ def test_parallel_create_group(self):
185187
pool = self.create_pool()
186188

187189
# parallel create group
188-
n = 1000
190+
n = 100
189191
results = pool.map_async(
190192
_create_group, zip([g] * n, [str(i) for i in range(n)]))
191-
print(results.get(20))
193+
print(results.get(30))
192194

193195
eq(n, len(g))
194196

@@ -199,10 +201,10 @@ def test_parallel_require_group(self):
199201
pool = self.create_pool()
200202

201203
# parallel require group
202-
n = 1000
204+
n = 100
203205
results = pool.map_async(
204206
_require_group, zip([g] * n, [str(i//10) for i in range(n)]))
205-
print(results.get(20))
207+
print(results.get(30))
206208

207209
eq(n//10, len(g))
208210

@@ -240,12 +242,12 @@ def test_synchronizer_property(self):
240242
class TestGroupWithProcessSynchronizer(TestGroup, MixinGroupSyncTests):
241243

242244
def create_store(self):
243-
return TempStore(), None
245+
return DirectoryStore(TemporaryDirectory().name), None
244246

245247
def create_group(self, store=None, path=None, read_only=False,
246248
chunk_store=None, synchronizer=None):
247249
if store is None:
248-
store = TempStore()
250+
store = DirectoryStore(TemporaryDirectory().name)
249251
chunk_store = None
250252
init_group(store, path=path, chunk_store=chunk_store)
251253
synchronizer = ProcessSynchronizer(TemporaryDirectory().name)
@@ -261,7 +263,7 @@ def test_group_repr(self):
261263
if not PY2:
262264
g = self.create_group()
263265
expect = 'Group(/, 0)\n' \
264-
' store: TempStore; synchronizer: ProcessSynchronizer'
266+
' store: DirectoryStore; synchronizer: ProcessSynchronizer'
265267
actual = repr(g)
266268
for l1, l2 in zip(expect.split('\n'), actual.split('\n')):
267269
eq(l1, l2)

0 commit comments

Comments
 (0)