diff options
-rw-r--r-- | wkhtmltopdf/tests/tests.py | 16 | ||||
-rw-r--r-- | wkhtmltopdf/utils.py | 6 |
2 files changed, 18 insertions, 4 deletions
diff --git a/wkhtmltopdf/tests/tests.py b/wkhtmltopdf/tests/tests.py index 8f40c5e..822f529 100644 --- a/wkhtmltopdf/tests/tests.py +++ b/wkhtmltopdf/tests/tests.py @@ -130,8 +130,14 @@ class TestViews(TestCase): self.assertEqual(response['Content-Disposition'], 'attachment; filename="4\'5.pdf"') response = PDFResponse(content=content, filename=u"♥.pdf") + try: + import unidecode + except ImportError: + filename = '?.pdf' + else: + filename = '.pdf' self.assertEqual(response['Content-Disposition'], - 'attachment; filename="?.pdf"') + 'attachment; filename="{0}"'.format(filename)) # Content as a direct output response = PDFResponse(content=content, filename="nospace.pdf", @@ -148,8 +154,14 @@ class TestViews(TestCase): 'inline; filename="4\'5.pdf"') response = PDFResponse(content=content, filename=u"♥.pdf", show_content_in_browser=True) + try: + import unidecode + except ImportError: + filename = '?.pdf' + else: + filename = '.pdf' self.assertEqual(response['Content-Disposition'], - 'inline; filename="?.pdf"') + 'inline; filename="{0}"'.format(filename)) # Content-Type response = PDFResponse(content=content, diff --git a/wkhtmltopdf/utils.py b/wkhtmltopdf/utils.py index 6be961c..1866b4a 100644 --- a/wkhtmltopdf/utils.py +++ b/wkhtmltopdf/utils.py @@ -190,9 +190,11 @@ def http_quote(string): if isinstance(string, six.text_type): try: import unidecode - string = bytes(unidecode.unidecode(string), 'ascii') except ImportError: - string = string.encode('ascii', 'replace') + pass + else: + string = unidecode.unidecode(string) + string = string.encode('ascii', 'replace') # Wrap in double-quotes for ; , and the like string = string.replace(b'\\', b'\\\\').replace(b'"', b'\\"') return '"{0!s}"'.format(string.decode()) |