From c9176b7c581162961748b2321c585cd6a21decf3 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Wed, 13 Jul 2016 18:17:37 +0200 Subject: [PATCH] QtWebEngine: Fix 'unset' with run_js_blocking --- qutebrowser/browser/webengine/webenginetab.py | 5 +++-- tests/unit/browser/test_tab.py | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py index 8a0808408..a03ab24e4 100644 --- a/qutebrowser/browser/webengine/webenginetab.py +++ b/qutebrowser/browser/webengine/webenginetab.py @@ -344,8 +344,9 @@ class WebEngineTab(browsertab.AbstractTab): self._widget.page().runJavaScript(code, callback) def run_js_blocking(self, code): + unset = object() loop = qtutils.EventLoop() - js_ret = None + js_ret = unset def js_cb(val): """Handle return value from JS and stop blocking.""" @@ -355,7 +356,7 @@ class WebEngineTab(browsertab.AbstractTab): self.run_js_async(code, js_cb) loop.exec_() # blocks until loop.quit() in js_cb - assert js_ret is not None + assert js_ret is not unset return js_ret diff --git a/tests/unit/browser/test_tab.py b/tests/unit/browser/test_tab.py index 13bdb9169..d325213ed 100644 --- a/tests/unit/browser/test_tab.py +++ b/tests/unit/browser/test_tab.py @@ -122,8 +122,9 @@ def test_tab(qtbot, view, config_stub, tab_registry): class TestJs: - def test_blocking(self, tab): - assert tab.run_js_blocking('1 + 1') == 2 + @pytest.mark.parametrize('inp, expected', [('1+1', 2), ('undefined', None)]) + def test_blocking(self, tab, inp, expected): + assert tab.run_js_blocking(inp) == expected class TestTabData: