diff --git a/qutebrowser/browser/commands.py b/qutebrowser/browser/commands.py index fdca10628..089425e9d 100644 --- a/qutebrowser/browser/commands.py +++ b/qutebrowser/browser/commands.py @@ -733,7 +733,8 @@ class CommandDispatcher: ':' + str(port) if port > -1 else '') elif what in ['url', 'pretty-url']: url = self._current_url() - s = urlutils.get_url_yank_text(url, what == 'pretty-url') + pretty = what == 'pretty-url' + s = urlutils.get_url_yank_text(url, is_pretty=pretty) what = 'URL' # For printing elif what == 'selection': def _selection_callback(s): diff --git a/qutebrowser/browser/hints.py b/qutebrowser/browser/hints.py index abdcab905..fe9901c36 100644 --- a/qutebrowser/browser/hints.py +++ b/qutebrowser/browser/hints.py @@ -237,7 +237,7 @@ class HintActions: sel = (context.target == Target.yank_primary and utils.supports_selection()) - urlstr = urlutils.get_url_yank_text(url, False) + urlstr = urlutils.get_url_yank_text(url, is_pretty=False) new_content = urlstr # only second and consecutive yanks are to append to the clipboard diff --git a/qutebrowser/commands/runners.py b/qutebrowser/commands/runners.py index 7293d2576..1d6c39afa 100644 --- a/qutebrowser/commands/runners.py +++ b/qutebrowser/commands/runners.py @@ -57,7 +57,8 @@ def _init_variable_replacements() -> Mapping[str, _ReplacementFunction]: _url(tb).port()) if _url(tb).port() != -1 else "", 'url:path': lambda tb: _url(tb).path(), 'url:query': lambda tb: _url(tb).query(), - 'url:yank': lambda tb: urlutils.get_url_yank_text(_url(tb), False), + 'url:yank': lambda tb: urlutils.get_url_yank_text(_url(tb), + is_pretty=False), 'title': lambda tb: tb.widget.page_title(tb.widget.currentIndex()), 'clipboard': lambda _: utils.get_clipboard(), 'primary': lambda _: utils.get_clipboard(selection=True), diff --git a/qutebrowser/mainwindow/prompt.py b/qutebrowser/mainwindow/prompt.py index 53f3eddc2..baf266801 100644 --- a/qutebrowser/mainwindow/prompt.py +++ b/qutebrowser/mainwindow/prompt.py @@ -443,7 +443,8 @@ class PromptContainer(QWidget): else: sel = False target = 'clipboard' - url_str = urlutils.get_url_yank_text(QUrl(question.url), False) + url_str = urlutils.get_url_yank_text(QUrl(question.url), + is_pretty=False) utils.set_clipboard(url_str, sel) message.info("Yanked to {}: {}".format(target, url_str)) diff --git a/qutebrowser/utils/urlutils.py b/qutebrowser/utils/urlutils.py index a73b46681..ab141bf64 100644 --- a/qutebrowser/utils/urlutils.py +++ b/qutebrowser/utils/urlutils.py @@ -684,7 +684,7 @@ def widened_hostnames(hostname: str) -> Iterable[str]: hostname = hostname.partition(".")[-1] -def get_url_yank_text(url: QUrl, is_pretty: bool) -> str: +def get_url_yank_text(url: QUrl, *, is_pretty: bool) -> str: """Get the text that should be yanked for the given URL.""" flags = FormatOption.REMOVE_PASSWORD if url.scheme() == 'mailto': diff --git a/tests/unit/utils/test_urlutils.py b/tests/unit/utils/test_urlutils.py index e11c367d2..85b0499c4 100644 --- a/tests/unit/utils/test_urlutils.py +++ b/tests/unit/utils/test_urlutils.py @@ -804,7 +804,7 @@ class TestParseJavascriptUrl: (QUrl('https://example.com/?pipe=%7C'), True, 'https://example.com/?pipe=|'), ]) def test_get_url_yank_text(url, is_pretty, expected): - assert urlutils.get_url_yank_text(url, is_pretty) == expected + assert urlutils.get_url_yank_text(url, is_pretty=is_pretty) == expected class TestWiden: