Get rid of qute://spawn-output
This commit is contained in:
parent
a3adba81c7
commit
ac52268a45
|
|
@ -1077,19 +1077,19 @@ class CommandDispatcher:
|
|||
log.procs.debug("Executing {} with args {}, userscript={}".format(
|
||||
cmd, args, userscript))
|
||||
|
||||
@pyqtSlot()
|
||||
def _on_proc_finished():
|
||||
def _on_proc_finished(proc):
|
||||
if output:
|
||||
tb = objreg.get('tabbed-browser', scope='window',
|
||||
window='last-focused')
|
||||
tb.load_url(QUrl('qute://spawn-output'), newtab=True)
|
||||
tb.load_url(QUrl(f'qute://process/{proc.pid}'), newtab=True)
|
||||
|
||||
if userscript:
|
||||
def _selection_callback(s):
|
||||
try:
|
||||
runner = self._run_userscript(
|
||||
s, cmd, args, verbose, output_messages, count)
|
||||
runner.finished.connect(_on_proc_finished)
|
||||
runner.finished.connect(functools.partial(
|
||||
_on_proc_finished, runner.proc))
|
||||
except cmdutils.CommandError as e:
|
||||
message.error(str(e))
|
||||
|
||||
|
|
@ -1112,7 +1112,7 @@ class CommandDispatcher:
|
|||
"detailed error")
|
||||
else:
|
||||
proc.start(cmd, args)
|
||||
proc.finished.connect(_on_proc_finished)
|
||||
proc.finished.connect(functools.partial(_on_proc_finished, proc))
|
||||
|
||||
def _run_userscript(self, selection, cmd, args, verbose, output_messages,
|
||||
count):
|
||||
|
|
|
|||
|
|
@ -46,7 +46,6 @@ from qutebrowser.qt import sip
|
|||
|
||||
|
||||
pyeval_output = ":pyeval was never called"
|
||||
spawn_output = ":spawn was never called"
|
||||
csrf_token = None
|
||||
|
||||
|
||||
|
|
@ -284,13 +283,6 @@ def qute_pyeval(_url: QUrl) -> _HandlerRet:
|
|||
return 'text/html', src
|
||||
|
||||
|
||||
@add_handler('spawn-output')
|
||||
def qute_spawn_output(_url: QUrl) -> _HandlerRet:
|
||||
"""Handler for qute://spawn-output."""
|
||||
src = jinja.render('pre.html', title='spawn output', content=spawn_output)
|
||||
return 'text/html', src
|
||||
|
||||
|
||||
@add_handler('process')
|
||||
def qute_process(url: QUrl) -> _HandlerRet:
|
||||
"""Handler for qute://process."""
|
||||
|
|
|
|||
|
|
@ -117,7 +117,7 @@ class _BaseUserscriptRunner(QObject):
|
|||
super().__init__(parent)
|
||||
self._cleaned_up = False
|
||||
self._filepath = None
|
||||
self._proc = None
|
||||
self.proc = None
|
||||
self._env: MutableMapping[str, str] = {}
|
||||
self._text_stored = False
|
||||
self._html_stored = False
|
||||
|
|
@ -168,12 +168,12 @@ class _BaseUserscriptRunner(QObject):
|
|||
if env is not None:
|
||||
self._env.update(env)
|
||||
|
||||
self._proc = guiprocess.GUIProcess(
|
||||
self.proc = guiprocess.GUIProcess(
|
||||
'userscript', additional_env=self._env,
|
||||
output_messages=output_messages, verbose=verbose, parent=self)
|
||||
self._proc.finished.connect(self.on_proc_finished)
|
||||
self._proc.error.connect(self.on_proc_error)
|
||||
self._proc.start(cmd, args)
|
||||
self.proc.finished.connect(self.on_proc_finished)
|
||||
self.proc.error.connect(self.on_proc_error)
|
||||
self.proc.start(cmd, args)
|
||||
|
||||
def _cleanup(self):
|
||||
"""Clean up temporary files."""
|
||||
|
|
@ -199,7 +199,7 @@ class _BaseUserscriptRunner(QObject):
|
|||
fn, e))
|
||||
|
||||
self._filepath = None
|
||||
self._proc = None
|
||||
self.proc = None
|
||||
self._env = {}
|
||||
self._text_stored = False
|
||||
self._html_stored = False
|
||||
|
|
|
|||
|
|
@ -201,8 +201,6 @@ class GUIProcess(QObject):
|
|||
if self.stderr:
|
||||
log.procs.error("Process stderr:\n" + self.stderr.strip())
|
||||
|
||||
qutescheme.spawn_output = self._spawn_format(exitinfo, self.stdout, self.stderr)
|
||||
|
||||
def _spawn_format(self, exitinfo, stdout, stderr):
|
||||
"""Produce a formatted string for spawn output."""
|
||||
stdout = (stdout or "(No output)").strip()
|
||||
|
|
|
|||
|
|
@ -80,7 +80,6 @@ def whitelist_generator(): # noqa: C901
|
|||
yield 'qutebrowser.utils.jinja.Loader.get_source'
|
||||
yield 'qutebrowser.utils.log.QtWarningFilter.filter'
|
||||
yield 'qutebrowser.browser.pdfjs.is_available'
|
||||
yield 'qutebrowser.misc.guiprocess.spawn_output'
|
||||
yield 'qutebrowser.utils.usertypes.ExitStatus.reserved'
|
||||
yield 'QEvent.posted'
|
||||
yield 'log_stack' # from message.py
|
||||
|
|
|
|||
|
|
@ -59,10 +59,7 @@ def test_start(proc, qtbot, message_mock, py_proc):
|
|||
argv = py_proc("import sys; print('test'); sys.exit(0)")
|
||||
proc.start(*argv)
|
||||
|
||||
expected = proc._spawn_format(exitinfo="Testprocess exited successfully.",
|
||||
stdout="test", stderr="")
|
||||
assert not message_mock.messages
|
||||
assert qutescheme.spawn_output == expected
|
||||
assert proc.exit_status() == QProcess.NormalExit
|
||||
|
||||
|
||||
|
|
@ -75,14 +72,11 @@ def test_start_verbose(proc, qtbot, message_mock, py_proc):
|
|||
argv = py_proc("import sys; print('test'); sys.exit(0)")
|
||||
proc.start(*argv)
|
||||
|
||||
expected = proc._spawn_format(exitinfo="Testprocess exited successfully.",
|
||||
stdout="test", stderr="")
|
||||
msgs = message_mock.messages
|
||||
assert msgs[0].level == usertypes.MessageLevel.info
|
||||
assert msgs[1].level == usertypes.MessageLevel.info
|
||||
assert msgs[0].text.startswith("Executing:")
|
||||
assert msgs[1].text == "Testprocess exited successfully."
|
||||
assert qutescheme.spawn_output == expected
|
||||
|
||||
|
||||
@pytest.mark.parametrize('stdout', [True, False])
|
||||
|
|
@ -153,9 +147,8 @@ def test_start_env(monkeypatch, qtbot, py_proc):
|
|||
order='strict'):
|
||||
proc.start(*argv)
|
||||
|
||||
data = qutescheme.spawn_output
|
||||
assert 'QUTEBROWSER_TEST_1' in data
|
||||
assert 'QUTEBROWSER_TEST_2' in data
|
||||
assert 'QUTEBROWSER_TEST_1' in proc.stdout
|
||||
assert 'QUTEBROWSER_TEST_2' in proc.stdout
|
||||
|
||||
|
||||
def test_start_detached(fake_proc):
|
||||
|
|
@ -299,7 +292,6 @@ def test_stdout_not_decodable(proc, qtbot, message_mock, py_proc):
|
|||
sys.exit(0)
|
||||
""")
|
||||
proc.start(*argv)
|
||||
expected = proc._spawn_format(exitinfo="Testprocess exited successfully.",
|
||||
stdout="A\ufffdB", stderr="")
|
||||
|
||||
assert not message_mock.messages
|
||||
assert qutescheme.spawn_output == expected
|
||||
assert proc.stdout == "A\ufffdB"
|
||||
|
|
|
|||
Loading…
Reference in New Issue