Skip to content

Commit dc82f4e

Browse files
committed
Make test_file.py tests parallelizable
1 parent 9580cbc commit dc82f4e

File tree

1 file changed

+34
-30
lines changed

1 file changed

+34
-30
lines changed

tests/test_file.py

Lines changed: 34 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
import os
1010
import sys
11+
import uuid
1112
import string
1213
import random
1314

@@ -16,18 +17,14 @@
1617

1718
dill.settings['recurse'] = True
1819

19-
fname = "_test_file.txt"
20-
rand_chars = list(string.ascii_letters) + ["\n"] * 40 # bias newline
21-
2220
if sys.hexversion < 0x03030000:
2321
FileNotFoundError = IOError
24-
buffer_error = ValueError("invalid buffer size")
25-
dne_error = FileNotFoundError("[Errno 2] No such file or directory: '%s'" % fname)
2622

2723

28-
def write_randomness(number=200):
24+
def write_randomness(fname, number=200):
2925
f = open(fname, "w")
3026
for i in range(number):
27+
rand_chars = list(string.ascii_letters) + ["\n"] * 40 # bias newline
3128
f.write(random.choice(rand_chars))
3229
f.close()
3330
f = open(fname, "r")
@@ -36,7 +33,7 @@ def write_randomness(number=200):
3633
return contents
3734

3835

39-
def trunc_file():
36+
def trunc_file(fname):
4037
open(fname, "w").close()
4138

4239

@@ -49,21 +46,25 @@ def throws(op, args, exc):
4946
return False
5047

5148

52-
def teardown_module():
49+
def clean_artifact(fname):
5350
if os.path.exists(fname):
5451
os.remove(fname)
5552

5653

57-
def bench(strictio, fmode, skippypy):
54+
def bench(fname, strictio, fmode, skippypy):
5855
import platform
5956
if skippypy and platform.python_implementation() == 'PyPy':
6057
# Skip for PyPy...
6158
return
6259

60+
buffer_error = ValueError("invalid buffer size")
61+
dne_error = FileNotFoundError(
62+
"[Errno 2] No such file or directory: '%s'" % fname)
63+
6364
# file exists, with same contents
6465
# read
6566

66-
write_randomness()
67+
write_randomness(fname)
6768

6869
f = open(fname, "r")
6970
_f = dill.loads(dill.dumps(f, fmode=fmode))#, strictio=strictio))
@@ -107,7 +108,7 @@ def bench(strictio, fmode, skippypy):
107108

108109
# append
109110

110-
trunc_file()
111+
trunc_file(fname)
111112

112113
f = open(fname, "a")
113114
f.write("hello")
@@ -137,7 +138,7 @@ def bench(strictio, fmode, skippypy):
137138
# file exists, with different contents (smaller size)
138139
# read
139140

140-
write_randomness()
141+
write_randomness(fname)
141142

142143
f = open(fname, "r")
143144
fstr = f.read()
@@ -146,7 +147,7 @@ def bench(strictio, fmode, skippypy):
146147
ftell = f.tell()
147148
f.close()
148149
_flen = 150
149-
_fstr = write_randomness(number=_flen)
150+
_fstr = write_randomness(fname, number=_flen)
150151

151152
if strictio: # throw error if ftell > EOF
152153
assert throws(dill.loads, (f_dumped,), buffer_error)
@@ -175,7 +176,7 @@ def bench(strictio, fmode, skippypy):
175176

176177
# write
177178

178-
write_randomness()
179+
write_randomness(fname)
179180

180181
f = open(fname, "w")
181182
f.write("hello")
@@ -216,7 +217,7 @@ def bench(strictio, fmode, skippypy):
216217

217218
# append
218219

219-
trunc_file()
220+
trunc_file(fname)
220221

221222
f = open(fname, "a")
222223
f.write("hello")
@@ -257,7 +258,7 @@ def bench(strictio, fmode, skippypy):
257258
# file does not exist
258259
# read
259260

260-
write_randomness()
261+
write_randomness(fname)
261262

262263
f = open(fname, "r")
263264
fstr = f.read()
@@ -296,7 +297,7 @@ def bench(strictio, fmode, skippypy):
296297

297298
# write
298299

299-
write_randomness()
300+
write_randomness(fname)
300301

301302
f = open(fname, "w+")
302303
f.write("hello")
@@ -332,7 +333,7 @@ def bench(strictio, fmode, skippypy):
332333

333334
# append
334335

335-
trunc_file()
336+
trunc_file(fname)
336337

337338
f = open(fname, "a")
338339
f.write("hello")
@@ -367,7 +368,7 @@ def bench(strictio, fmode, skippypy):
367368
# file exists, with different contents (larger size)
368369
# read
369370

370-
write_randomness()
371+
write_randomness(fname)
371372

372373
f = open(fname, "r")
373374
fstr = f.read()
@@ -376,7 +377,7 @@ def bench(strictio, fmode, skippypy):
376377
ftell = f.tell()
377378
f.close()
378379
_flen = 250
379-
_fstr = write_randomness(number=_flen)
380+
_fstr = write_randomness(fname, number=_flen)
380381

381382
# XXX: no safe_file: no way to be 'safe'?
382383

@@ -441,7 +442,7 @@ def bench(strictio, fmode, skippypy):
441442

442443
# append
443444

444-
trunc_file()
445+
trunc_file(fname)
445446

446447
f = open(fname, "a")
447448
f.write("hello")
@@ -477,23 +478,26 @@ def bench(strictio, fmode, skippypy):
477478

478479

479480
def test_nostrictio_handlefmode():
480-
bench(False, dill.HANDLE_FMODE, False)
481-
teardown_module()
481+
fname = "_test_file_%s.txt" % uuid.uuid4()
482+
bench(fname, False, dill.HANDLE_FMODE, False)
483+
clean_artifact(fname)
482484

483485

484486
def test_nostrictio_filefmode():
485-
bench(False, dill.FILE_FMODE, False)
486-
teardown_module()
487+
fname = "_test_file_%s.txt" % uuid.uuid4()
488+
bench(fname, False, dill.FILE_FMODE, False)
489+
clean_artifact(fname)
487490

488491

489492
def test_nostrictio_contentsfmode():
490-
bench(False, dill.CONTENTS_FMODE, True)
491-
teardown_module()
493+
fname = "_test_file_%s.txt" % uuid.uuid4()
494+
bench(fname, False, dill.CONTENTS_FMODE, True)
495+
clean_artifact(fname)
492496

493497

494-
#bench(True, dill.HANDLE_FMODE, False)
495-
#bench(True, dill.FILE_FMODE, False)
496-
#bench(True, dill.CONTENTS_FMODE, True)
498+
#bench(fname, True, dill.HANDLE_FMODE, False)
499+
#bench(fname, True, dill.FILE_FMODE, False)
500+
#bench(fname, True, dill.CONTENTS_FMODE, True)
497501

498502

499503
if __name__ == '__main__':

0 commit comments

Comments
 (0)