Merge remote-tracking branch 'origin/pr/2965'

This commit is contained in:
Florian Bruhin 2017-09-21 09:12:56 +02:00
commit 53b1ffe953
2 changed files with 14 additions and 8 deletions

View File

@ -26,7 +26,7 @@ from PyQt5.QtCore import pyqtSlot, QUrl, QTimer
from qutebrowser.commands import cmdutils, cmdexc from qutebrowser.commands import cmdutils, cmdexc
from qutebrowser.utils import (utils, objreg, log, usertypes, message, from qutebrowser.utils import (utils, objreg, log, usertypes, message,
debug, standarddir) debug, standarddir, qtutils)
from qutebrowser.misc import objects, sql from qutebrowser.misc import objects, sql
@ -144,8 +144,10 @@ class WebHistory(sql.SqlTable):
Args: Args:
url: URL string to delete. url: URL string to delete.
""" """
self.delete('url', url) qurl = QUrl(url)
self.completion.delete('url', url) qtutils.ensure_valid(qurl)
self.delete('url', self._format_url(qurl))
self.completion.delete('url', self._format_completion_url(qurl))
@pyqtSlot(QUrl, QUrl, str) @pyqtSlot(QUrl, QUrl, str)
def add_from_tab(self, url, requested_url, title): def add_from_tab(self, url, requested_url, title):

View File

@ -127,21 +127,25 @@ def test_clear_force(qtbot, tmpdir, hist):
assert not len(hist.completion) assert not len(hist.completion)
def test_delete_url(hist): @pytest.mark.parametrize('raw, escaped', [
('http://example.com/1', 'http://example.com/1'),
('http://example.com/1 2', 'http://example.com/1%202'),
])
def test_delete_url(hist, raw, escaped):
hist.add_url(QUrl('http://example.com/'), atime=0) hist.add_url(QUrl('http://example.com/'), atime=0)
hist.add_url(QUrl('http://example.com/1'), atime=0) hist.add_url(QUrl(escaped), atime=0)
hist.add_url(QUrl('http://example.com/2'), atime=0) hist.add_url(QUrl('http://example.com/2'), atime=0)
before = set(hist) before = set(hist)
completion_before = set(hist.completion) completion_before = set(hist.completion)
hist.delete_url(QUrl('http://example.com/1')) hist.delete_url(QUrl(raw))
diff = before.difference(set(hist)) diff = before.difference(set(hist))
assert diff == {('http://example.com/1', '', 0, False)} assert diff == {(escaped, '', 0, False)}
completion_diff = completion_before.difference(set(hist.completion)) completion_diff = completion_before.difference(set(hist.completion))
assert completion_diff == {('http://example.com/1', '', 0)} assert completion_diff == {(raw, '', 0)}
@pytest.mark.parametrize( @pytest.mark.parametrize(