File tree Expand file tree Collapse file tree 2 files changed +14
-4
lines changed
Expand file tree Collapse file tree 2 files changed +14
-4
lines changed Original file line number Diff line number Diff line change @@ -23,8 +23,11 @@ def execute_wk(*args):
2323 wk_args = (wkhtmltopdf_cmd ,) + args
2424 p = subprocess .Popen (wk_args , stdout = subprocess .PIPE , stderr = subprocess .PIPE )
2525 stdout , stderr = p .communicate ()
26- if p .returncode != 0 :
27- raise IOError ('error running wkhtmltopdf: "%s"' % stderr )
26+ # it seems wkhtmltopdf's error codes can be false, we'll ignore them if we
27+ # seem to have generated a pdf
28+ if p .returncode != 0 and stdout [:4 ] != '%PDF' :
29+ raise IOError ('error running wkhtmltopdf, command: %r\n response: "%s"' % \
30+ (wk_args , stderr .strip (' \n ' )))
2831 return stdout , stderr
2932
3033
@@ -94,8 +97,7 @@ def generate_pdf(source,
9497
9598 def gen (src ):
9699 with NamedTemporaryFile (suffix = '.pdf' , mode = 'rwb+' ) as pdf_file :
97- cmd_args .extend ([src , pdf_file .name ])
98- execute_wk (* cmd_args )
100+ execute_wk (* (cmd_args + [src , pdf_file .name ]))
99101 pdf_file .seek (0 )
100102 return pdf_file .read ()
101103
Original file line number Diff line number Diff line change @@ -69,6 +69,14 @@ def test_no_arguments(self):
6969 else :
7070 raise AssertionError ('Should have raised a TypeError' )
7171
72+ def test_no_arguments (self ):
73+ try :
74+ generate_pdf ('www.' )
75+ except IOError :
76+ pass
77+ else :
78+ raise AssertionError ('Should have raised a IOError' )
79+
7280 def test_get_version (self ):
7381 print get_version ()
7482
You can’t perform that action at this time.
0 commit comments