27
27
28
28
29
29
'''
30
+ import sys
30
31
import os
31
- import unittest
32
32
import hashlib
33
33
import subprocess
34
34
import static_pdfs
35
35
import expected
36
36
37
37
from pdfrw .py23_diffs import convert_store
38
+ from pdfrw import PdfReader , PdfWriter
39
+
40
+ try :
41
+ import unittest2 as unittest
42
+ except ImportError :
43
+ import unittest
44
+
38
45
39
46
prog_dir = os .path .join (expected .root_dir , '..' , 'examples' , '%s.py' )
40
47
prog_dir = os .path .abspath (prog_dir )
47
54
48
55
class TestOnePdf (unittest .TestCase ):
49
56
50
- def do_test (self , params , prev_results = ['' ]):
57
+ def do_test (self , params , prev_results = ['' ], scrub = False ):
51
58
params = params .split ()
52
59
hashkey = 'examples/%s' % '_' .join (params )
53
60
params = [lookup .get (x , x ) for x in params ]
54
61
progname = params [0 ]
55
62
params [0 ] = prog_dir % progname
56
63
srcf = params [1 ]
64
+ params .insert (0 , sys .executable )
57
65
subdir , progname = os .path .split (progname )
58
66
subdir = os .path .join (dstdir , subdir )
59
67
if not os .path .exists (subdir ):
60
68
os .makedirs (subdir )
61
69
os .chdir (subdir )
62
70
dstf = '%s.%s' % (progname , os .path .basename (srcf ))
71
+ scrub = scrub and dstf
72
+ dstf = dstf if not scrub else 'final.%s' % dstf
63
73
hash = '------no-file-generated---------'
64
74
expects = expected .results [hashkey ]
65
75
@@ -82,7 +92,11 @@ def do_test(self, params, prev_results=['']):
82
92
if expects or not exists :
83
93
if exists :
84
94
os .remove (dstf )
95
+ if scrub and os .path .exists (scrub ):
96
+ os .remove (scrub )
85
97
subprocess .call (params )
98
+ if scrub :
99
+ PdfWriter ().addpages (PdfReader (scrub ).pages ).write (dstf )
86
100
with open (dstf , 'rb' ) as f :
87
101
data = f .read ()
88
102
size = len (data )
@@ -150,11 +164,29 @@ def test_extract(self):
150
164
self .do_test ('extract 1975ef8db7355b1d691bc79d0749574b' )
151
165
self .do_test ('extract c5c895deecf7a7565393587e0d61be2b' )
152
166
153
- def test_rl1 (self ):
154
- self .do_test ('rl1/platypus_pdf_template b1c400de699af29ea3f1983bb26870ab' )
155
- self .do_test ('rl1/4up b1c400de699af29ea3f1983bb26870ab' )
156
- self .do_test ('rl1/booklet b1c400de699af29ea3f1983bb26870ab' )
157
- self .do_test ('rl1/subset b1c400de699af29ea3f1983bb26870ab 3 5' )
167
+ def test_rl1_4up (self ):
168
+ if sys .version_info < (2 , 7 ):
169
+ return
170
+ self .do_test ('rl1/4up b1c400de699af29ea3f1983bb26870ab' ,
171
+ scrub = True )
172
+
173
+ def test_rl1_booklet (self ):
174
+ if sys .version_info < (2 , 7 ):
175
+ return
176
+ self .do_test ('rl1/booklet b1c400de699af29ea3f1983bb26870ab' ,
177
+ scrub = True )
178
+
179
+ def test_rl1_subset (self ):
180
+ if sys .version_info < (2 , 7 ):
181
+ return
182
+ self .do_test ('rl1/subset b1c400de699af29ea3f1983bb26870ab 3 5' ,
183
+ scrub = True )
184
+
185
+ def test_rl1_platypus (self ):
186
+ if sys .version_info < (2 , 7 ):
187
+ return
188
+ self .do_test ('rl1/platypus_pdf_template b1c400de699af29ea3f1983bb26870ab' ,
189
+ scrub = True )
158
190
159
191
def main ():
160
192
unittest .main ()
0 commit comments