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,26 @@ def throws(op, args, exc):
49
46
return False
50
47
51
48
52
- def teardown_module ():
49
+ def clean_artifact (fname ):
50
+ print (fname )
53
51
if os .path .exists (fname ):
54
52
os .remove (fname )
55
53
56
54
57
- def bench (strictio , fmode , skippypy ):
55
+ def bench (fname , strictio , fmode , skippypy ):
58
56
import platform
59
57
if skippypy and platform .python_implementation () == 'PyPy' :
60
58
# Skip for PyPy...
61
59
return
62
60
61
+ buffer_error = ValueError ("invalid buffer size" )
62
+ dne_error = FileNotFoundError (
63
+ "[Errno 2] No such file or directory: '%s'" % fname )
64
+
63
65
# file exists, with same contents
64
66
# read
65
67
66
- write_randomness ()
68
+ write_randomness (fname )
67
69
68
70
f = open (fname , "r" )
69
71
_f = dill .loads (dill .dumps (f , fmode = fmode ))#, strictio=strictio))
@@ -107,7 +109,7 @@ def bench(strictio, fmode, skippypy):
107
109
108
110
# append
109
111
110
- trunc_file ()
112
+ trunc_file (fname )
111
113
112
114
f = open (fname , "a" )
113
115
f .write ("hello" )
@@ -137,7 +139,7 @@ def bench(strictio, fmode, skippypy):
137
139
# file exists, with different contents (smaller size)
138
140
# read
139
141
140
- write_randomness ()
142
+ write_randomness (fname )
141
143
142
144
f = open (fname , "r" )
143
145
fstr = f .read ()
@@ -146,7 +148,7 @@ def bench(strictio, fmode, skippypy):
146
148
ftell = f .tell ()
147
149
f .close ()
148
150
_flen = 150
149
- _fstr = write_randomness (number = _flen )
151
+ _fstr = write_randomness (fname , number = _flen )
150
152
151
153
if strictio : # throw error if ftell > EOF
152
154
assert throws (dill .loads , (f_dumped ,), buffer_error )
@@ -175,7 +177,7 @@ def bench(strictio, fmode, skippypy):
175
177
176
178
# write
177
179
178
- write_randomness ()
180
+ write_randomness (fname )
179
181
180
182
f = open (fname , "w" )
181
183
f .write ("hello" )
@@ -216,7 +218,7 @@ def bench(strictio, fmode, skippypy):
216
218
217
219
# append
218
220
219
- trunc_file ()
221
+ trunc_file (fname )
220
222
221
223
f = open (fname , "a" )
222
224
f .write ("hello" )
@@ -257,7 +259,7 @@ def bench(strictio, fmode, skippypy):
257
259
# file does not exist
258
260
# read
259
261
260
- write_randomness ()
262
+ write_randomness (fname )
261
263
262
264
f = open (fname , "r" )
263
265
fstr = f .read ()
@@ -296,7 +298,7 @@ def bench(strictio, fmode, skippypy):
296
298
297
299
# write
298
300
299
- write_randomness ()
301
+ write_randomness (fname )
300
302
301
303
f = open (fname , "w+" )
302
304
f .write ("hello" )
@@ -332,7 +334,7 @@ def bench(strictio, fmode, skippypy):
332
334
333
335
# append
334
336
335
- trunc_file ()
337
+ trunc_file (fname )
336
338
337
339
f = open (fname , "a" )
338
340
f .write ("hello" )
@@ -367,7 +369,7 @@ def bench(strictio, fmode, skippypy):
367
369
# file exists, with different contents (larger size)
368
370
# read
369
371
370
- write_randomness ()
372
+ write_randomness (fname )
371
373
372
374
f = open (fname , "r" )
373
375
fstr = f .read ()
@@ -376,7 +378,7 @@ def bench(strictio, fmode, skippypy):
376
378
ftell = f .tell ()
377
379
f .close ()
378
380
_flen = 250
379
- _fstr = write_randomness (number = _flen )
381
+ _fstr = write_randomness (fname , number = _flen )
380
382
381
383
# XXX: no safe_file: no way to be 'safe'?
382
384
@@ -441,7 +443,7 @@ def bench(strictio, fmode, skippypy):
441
443
442
444
# append
443
445
444
- trunc_file ()
446
+ trunc_file (fname )
445
447
446
448
f = open (fname , "a" )
447
449
f .write ("hello" )
@@ -477,23 +479,26 @@ def bench(strictio, fmode, skippypy):
477
479
478
480
479
481
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 )
482
485
483
486
484
487
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 )
487
491
488
492
489
493
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 )
492
497
493
498
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)
497
502
498
503
499
504
if __name__ == '__main__' :
0 commit comments