88
99import os
1010import sys
11+ import uuid
1112import string
1213import random
1314
1617
1718dill .settings ['recurse' ] = True
1819
19- fname = "_test_file.txt"
20- rand_chars = list (string .ascii_letters ) + ["\n " ] * 40 # bias newline
21-
2220if 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
479481def 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
484487def 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
489493def 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
499504if __name__ == '__main__' :
0 commit comments