diff options
author | Florian Bruhin <me@the-compiler.org> | 2023-12-01 23:14:49 +0100 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2023-12-01 23:31:34 +0100 |
commit | eabbdb8ea31167e53407c21830ed7f13ea7ce805 (patch) | |
tree | d4c42a2425df9bd946fe6571d191fcaf04b5a970 | |
parent | 0c3c1310748d85f26f8b0ba9ed8b0c0c464c02bd (diff) | |
download | qutebrowser-eabbdb8ea31167e53407c21830ed7f13ea7ce805.tar.gz qutebrowser-eabbdb8ea31167e53407c21830ed7f13ea7ce805.zip |
pdfjs: Fix :version crash with no pdf.js
pdfjs.get_pdf_basename() returned None, causing in a TypeError. Instead of
throwing mocker.patch at it, fix the underlying issue.
Given we made the same mistake in three places:
- :version
- test_real_file for PDF.js
- is_available() in pdfjs.py (calls the function but doesn't use the result, so
is a nop now, even if PDF.js wasn't found)
...evidently we need to change the API so it still raises an exception if no
PDF.js is available.
Amends 0144ae3576aaecde295d40e22d636f04240d6761.
-rw-r--r-- | qutebrowser/browser/pdfjs.py | 3 | ||||
-rw-r--r-- | tests/unit/utils/test_version.py | 5 |
2 files changed, 3 insertions, 5 deletions
diff --git a/qutebrowser/browser/pdfjs.py b/qutebrowser/browser/pdfjs.py index 53baea93d..ad8f54b0d 100644 --- a/qutebrowser/browser/pdfjs.py +++ b/qutebrowser/browser/pdfjs.py @@ -212,7 +212,8 @@ def get_pdfjs_basename(): pass else: return ext - return None + + raise PDFJSNotFound(" or ".join(f"'build/{ext}'" for ext in exts)) def is_available(): diff --git a/tests/unit/utils/test_version.py b/tests/unit/utils/test_version.py index dcb625b1e..1a337d7c5 100644 --- a/tests/unit/utils/test_version.py +++ b/tests/unit/utils/test_version.py @@ -849,13 +849,11 @@ class TestPDFJSVersion: """Tests for _pdfjs_version.""" def test_not_found(self, mocker): - mocker.patch('qutebrowser.utils.version.pdfjs.get_pdfjs_basename') mocker.patch('qutebrowser.utils.version.pdfjs.get_pdfjs_res_and_path', side_effect=pdfjs.PDFJSNotFound('/build/pdf.js')) assert version._pdfjs_version() == 'no' - def test_unknown(self, monkeypatch, mocker): - mocker.patch('qutebrowser.utils.version.pdfjs.get_pdfjs_basename') + def test_unknown(self, monkeypatch): monkeypatch.setattr( 'qutebrowser.utils.version.pdfjs.get_pdfjs_res_and_path', lambda path: (b'foobar', None)) @@ -880,7 +878,6 @@ class TestPDFJSVersion: // Use strict in our context only - users might not want it 'use strict'; """.replace('VARNAME', varname)).strip().encode('utf-8') - mocker.patch('qutebrowser.utils.version.pdfjs.get_pdfjs_basename') monkeypatch.setattr( 'qutebrowser.utils.version.pdfjs.get_pdfjs_res_and_path', lambda path: (pdfjs_code, '/foo/bar/pdf.js')) |