Skip to content

Commit 92bb087

Browse files
committed
Make test_file.py tests parallelizable
1 parent d914795 commit 92bb087

File tree

1 file changed

+35
-30
lines changed

1 file changed

+35
-30
lines changed

tests/test_file.py

Lines changed: 35 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,26 @@ def throws(op, args, exc):
4946
return False
5047

5148

52-
def teardown_module():
49+
def clean_artifact(fname):
50+
print(fname)
5351
if os.path.exists(fname):
5452
os.remove(fname)
5553

5654

57-
def bench(strictio, fmode, skippypy):
55+
def bench(fname, strictio, fmode, skippypy):
5856
import platform
5957
if skippypy and platform.python_implementation() == 'PyPy':
6058
# Skip for PyPy...
6159
return
6260

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

66-
write_randomness()
68+
write_randomness(fname)
6769

6870
f = open(fname, "r")
6971
_f = dill.loads(dill.dumps(f, fmode=fmode))#, strictio=strictio))
@@ -107,7 +109,7 @@ def bench(strictio, fmode, skippypy):
107109

108110
# append
109111

110-
trunc_file()
112+
trunc_file(fname)
111113

112114
f = open(fname, "a")
113115
f.write("hello")
@@ -137,7 +139,7 @@ def bench(strictio, fmode, skippypy):
137139
# file exists, with different contents (smaller size)
138140
# read
139141

140-
write_randomness()
142+
write_randomness(fname)
141143

142144
f = open(fname, "r")
143145
fstr = f.read()
@@ -146,7 +148,7 @@ def bench(strictio, fmode, skippypy):
146148
ftell = f.tell()
147149
f.close()
148150
_flen = 150
149-
_fstr = write_randomness(number=_flen)
151+
_fstr = write_randomness(fname, number=_flen)
150152

151153
if strictio: # throw error if ftell > EOF
152154
assert throws(dill.loads, (f_dumped,), buffer_error)
@@ -175,7 +177,7 @@ def bench(strictio, fmode, skippypy):
175177

176178
# write
177179

178-
write_randomness()
180+
write_randomness(fname)
179181

180182
f = open(fname, "w")
181183
f.write("hello")
@@ -216,7 +218,7 @@ def bench(strictio, fmode, skippypy):
216218

217219
# append
218220

219-
trunc_file()
221+
trunc_file(fname)
220222

221223
f = open(fname, "a")
222224
f.write("hello")
@@ -257,7 +259,7 @@ def bench(strictio, fmode, skippypy):
257259
# file does not exist
258260
# read
259261

260-
write_randomness()
262+
write_randomness(fname)
261263

262264
f = open(fname, "r")
263265
fstr = f.read()
@@ -296,7 +298,7 @@ def bench(strictio, fmode, skippypy):
296298

297299
# write
298300

299-
write_randomness()
301+
write_randomness(fname)
300302

301303
f = open(fname, "w+")
302304
f.write("hello")
@@ -332,7 +334,7 @@ def bench(strictio, fmode, skippypy):
332334

333335
# append
334336

335-
trunc_file()
337+
trunc_file(fname)
336338

337339
f = open(fname, "a")
338340
f.write("hello")
@@ -367,7 +369,7 @@ def bench(strictio, fmode, skippypy):
367369
# file exists, with different contents (larger size)
368370
# read
369371

370-
write_randomness()
372+
write_randomness(fname)
371373

372374
f = open(fname, "r")
373375
fstr = f.read()
@@ -376,7 +378,7 @@ def bench(strictio, fmode, skippypy):
376378
ftell = f.tell()
377379
f.close()
378380
_flen = 250
379-
_fstr = write_randomness(number=_flen)
381+
_fstr = write_randomness(fname, number=_flen)
380382

381383
# XXX: no safe_file: no way to be 'safe'?
382384

@@ -441,7 +443,7 @@ def bench(strictio, fmode, skippypy):
441443

442444
# append
443445

444-
trunc_file()
446+
trunc_file(fname)
445447

446448
f = open(fname, "a")
447449
f.write("hello")
@@ -477,23 +479,26 @@ def bench(strictio, fmode, skippypy):
477479

478480

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

483486

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

488492

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

493498

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

498503

499504
if __name__ == '__main__':

0 commit comments

Comments
 (0)