From 1f10b070d1d6942791d16c8f60fe10812804c0f8 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Tue, 10 Nov 2020 15:11:33 +0100 Subject: tests: Fix pdfjs broken installation if bundled available See #5752 (cherry picked from commit 5181b6084df972f2ba0484086119797797012e1f) --- tests/unit/browser/test_pdfjs.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/tests/unit/browser/test_pdfjs.py b/tests/unit/browser/test_pdfjs.py index d05ff1fc0..bf49098c4 100644 --- a/tests/unit/browser/test_pdfjs.py +++ b/tests/unit/browser/test_pdfjs.py @@ -52,15 +52,6 @@ def test_generate_pdfjs_page(available, snippet, monkeypatch): assert snippet in content -def test_broken_installation(data_tmpdir, monkeypatch): - """Make sure we don't crash with a broken local installation.""" - monkeypatch.setattr(pdfjs, '_SYSTEM_PATHS', []) - (data_tmpdir / 'pdfjs' / 'pdf.js').ensure() # But no viewer.html - - content = pdfjs.generate_pdfjs_page('example.pdf', QUrl()) - assert '

No pdf.js installation found

' in content - - # Note that we got double protection, once because we use QUrl.FullyEncoded and # because we use qutebrowser.utils.javascript.to_js. Characters like " are # already replaced by QUrl. @@ -166,6 +157,18 @@ class TestResources: expected = 'OSError while reading PDF.js file: Message' assert caplog.messages == [expected] + def test_broken_installation(self, data_tmpdir, tmpdir, monkeypatch, + read_file_mock): + """Make sure we don't crash with a broken local installation.""" + monkeypatch.setattr(pdfjs, '_SYSTEM_PATHS', []) + monkeypatch.setattr(pdfjs.os.path, 'expanduser', lambda _in: tmpdir / 'fallback') + read_file_mock.side_effect = FileNotFoundError + + (data_tmpdir / 'pdfjs' / 'pdf.js').ensure() # But no viewer.html + + content = pdfjs.generate_pdfjs_page('example.pdf', QUrl()) + assert '

No pdf.js installation found

' in content + @pytest.mark.parametrize('path, expected', [ ('web/viewer.js', 'viewer.js'), -- cgit v1.2.3-54-g00ecf