8
8
9
9
import os
10
10
import sys
11
+ import uuid
11
12
import string
12
13
import random
13
14
16
17
17
18
dill .settings ['recurse' ] = True
18
19
19
- fname = "_test_file.txt"
20
- rand_chars = list (string .ascii_letters ) + ["\n " ] * 40 # bias newline
21
-
22
20
if sys .hexversion < 0x03030000 :
23
21
FileNotFoundError = IOError
24
- buffer_error = ValueError ("invalid buffer size" )
25
- dne_error = FileNotFoundError ("[Errno 2] No such file or directory: '%s'" % fname )
26
22
27
23
28
- def write_randomness (number = 200 ):
24
+ def write_randomness (fname , number = 200 ):
29
25
f = open (fname , "w" )
30
26
for i in range (number ):
27
+ rand_chars = list (string .ascii_letters ) + ["\n " ] * 40 # bias newline
31
28
f .write (random .choice (rand_chars ))
32
29
f .close ()
33
30
f = open (fname , "r" )
@@ -36,7 +33,7 @@ def write_randomness(number=200):
36
33
return contents
37
34
38
35
39
- def trunc_file ():
36
+ def trunc_file (fname ):
40
37
open (fname , "w" ).close ()
41
38
42
39
@@ -49,21 +46,25 @@ def throws(op, args, exc):
49
46
return False
50
47
51
48
52
- def teardown_module ( ):
49
+ def clean_artifact ( fname ):
53
50
if os .path .exists (fname ):
54
51
os .remove (fname )
55
52
56
53
57
- def bench (strictio , fmode , skippypy ):
54
+ def bench (fname , strictio , fmode , skippypy ):
58
55
import platform
59
56
if skippypy and platform .python_implementation () == 'PyPy' :
60
57
# Skip for PyPy...
61
58
return
62
59
60
+ buffer_error = ValueError ("invalid buffer size" )
61
+ dne_error = FileNotFoundError (
62
+ "[Errno 2] No such file or directory: '%s'" % fname )
63
+
63
64
# file exists, with same contents
64
65
# read
65
66
66
- write_randomness ()
67
+ write_randomness (fname )
67
68
68
69
f = open (fname , "r" )
69
70
_f = dill .loads (dill .dumps (f , fmode = fmode ))#, strictio=strictio))
@@ -107,7 +108,7 @@ def bench(strictio, fmode, skippypy):
107
108
108
109
# append
109
110
110
- trunc_file ()
111
+ trunc_file (fname )
111
112
112
113
f = open (fname , "a" )
113
114
f .write ("hello" )
@@ -137,7 +138,7 @@ def bench(strictio, fmode, skippypy):
137
138
# file exists, with different contents (smaller size)
138
139
# read
139
140
140
- write_randomness ()
141
+ write_randomness (fname )
141
142
142
143
f = open (fname , "r" )
143
144
fstr = f .read ()
@@ -146,7 +147,7 @@ def bench(strictio, fmode, skippypy):
146
147
ftell = f .tell ()
147
148
f .close ()
148
149
_flen = 150
149
- _fstr = write_randomness (number = _flen )
150
+ _fstr = write_randomness (fname , number = _flen )
150
151
151
152
if strictio : # throw error if ftell > EOF
152
153
assert throws (dill .loads , (f_dumped ,), buffer_error )
@@ -175,7 +176,7 @@ def bench(strictio, fmode, skippypy):
175
176
176
177
# write
177
178
178
- write_randomness ()
179
+ write_randomness (fname )
179
180
180
181
f = open (fname , "w" )
181
182
f .write ("hello" )
@@ -216,7 +217,7 @@ def bench(strictio, fmode, skippypy):
216
217
217
218
# append
218
219
219
- trunc_file ()
220
+ trunc_file (fname )
220
221
221
222
f = open (fname , "a" )
222
223
f .write ("hello" )
@@ -257,7 +258,7 @@ def bench(strictio, fmode, skippypy):
257
258
# file does not exist
258
259
# read
259
260
260
- write_randomness ()
261
+ write_randomness (fname )
261
262
262
263
f = open (fname , "r" )
263
264
fstr = f .read ()
@@ -296,7 +297,7 @@ def bench(strictio, fmode, skippypy):
296
297
297
298
# write
298
299
299
- write_randomness ()
300
+ write_randomness (fname )
300
301
301
302
f = open (fname , "w+" )
302
303
f .write ("hello" )
@@ -332,7 +333,7 @@ def bench(strictio, fmode, skippypy):
332
333
333
334
# append
334
335
335
- trunc_file ()
336
+ trunc_file (fname )
336
337
337
338
f = open (fname , "a" )
338
339
f .write ("hello" )
@@ -367,7 +368,7 @@ def bench(strictio, fmode, skippypy):
367
368
# file exists, with different contents (larger size)
368
369
# read
369
370
370
- write_randomness ()
371
+ write_randomness (fname )
371
372
372
373
f = open (fname , "r" )
373
374
fstr = f .read ()
@@ -376,7 +377,7 @@ def bench(strictio, fmode, skippypy):
376
377
ftell = f .tell ()
377
378
f .close ()
378
379
_flen = 250
379
- _fstr = write_randomness (number = _flen )
380
+ _fstr = write_randomness (fname , number = _flen )
380
381
381
382
# XXX: no safe_file: no way to be 'safe'?
382
383
@@ -441,7 +442,7 @@ def bench(strictio, fmode, skippypy):
441
442
442
443
# append
443
444
444
- trunc_file ()
445
+ trunc_file (fname )
445
446
446
447
f = open (fname , "a" )
447
448
f .write ("hello" )
@@ -477,23 +478,26 @@ def bench(strictio, fmode, skippypy):
477
478
478
479
479
480
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 )
482
484
483
485
484
486
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 )
487
490
488
491
489
492
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 )
492
496
493
497
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)
497
501
498
502
499
503
if __name__ == '__main__' :
0 commit comments