summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Roden-Corrent <ryan@rcorre.net>2017-07-12 22:14:27 -0400
committerRyan Roden-Corrent <ryan@rcorre.net>2017-07-12 22:14:27 -0400
commit1aed2470e5912264c8c90be58b97a729fd0e8bdf (patch)
tree5e7691893eecc27ebf6d1ab3ee0a10f298805700
parentea459a1eca237955cc004da22145a0e6b598a6bf (diff)
downloadqutebrowser-1aed2470e5912264c8c90be58b97a729fd0e8bdf.tar.gz
qutebrowser-1aed2470e5912264c8c90be58b97a729fd0e8bdf.zip
SQL code review.
- Fix flake8 - history.clear should also clear completion table - call _resize_columns in set_model, not set_pattern - add more unit-testing for the history completion table
-rw-r--r--.flake84
-rw-r--r--qutebrowser/browser/history.py1
-rw-r--r--qutebrowser/completion/completionwidget.py3
-rw-r--r--tests/unit/browser/test_history.py16
4 files changed, 19 insertions, 5 deletions
diff --git a/.flake8 b/.flake8
index b87fef8b2..eada2c86d 100644
--- a/.flake8
+++ b/.flake8
@@ -28,7 +28,7 @@ exclude = .*,__pycache__,resources.py
ignore =
E128,E226,E265,E501,E402,E266,E722,E731,
F401,
- N802,N806
+ N802,
P101,P102,P103,
D102,D103,D104,D105,D209,D211,D402,D403
min-version = 3.4.0
@@ -39,7 +39,7 @@ putty-ignore =
/# pragma: no mccabe/ : +C901
tests/*/test_*.py : +D100,D101,D401
tests/conftest.py : +F403
- tests/unit/browser/webkit/test_history.py : +N806
+ tests/unit/browser/test_history.py : +N806
tests/helpers/fixtures.py : +N806
tests/unit/browser/webkit/http/test_content_disposition.py : +D400
scripts/dev/ci/appveyor_install.py : +FI53
diff --git a/qutebrowser/browser/history.py b/qutebrowser/browser/history.py
index b5b8af149..b9e791207 100644
--- a/qutebrowser/browser/history.py
+++ b/qutebrowser/browser/history.py
@@ -115,6 +115,7 @@ class WebHistory(sql.SqlTable):
def _do_clear(self):
self.delete_all()
+ self.completion.delete_all()
def delete_url(self, url):
"""Remove all history entries with the given url.
diff --git a/qutebrowser/completion/completionwidget.py b/qutebrowser/completion/completionwidget.py
index 68466630a..6e1e51680 100644
--- a/qutebrowser/completion/completionwidget.py
+++ b/qutebrowser/completion/completionwidget.py
@@ -286,16 +286,17 @@ class CompletionView(QTreeView):
self._active = True
self._maybe_show()
+ self._resize_columns()
for i in range(model.rowCount()):
self.expand(model.index(i, 0))
def set_pattern(self, pattern):
+ """Set the pattern on the underlying model."""
if not self.model():
return
self.pattern = pattern
with debug.log_time(log.completion, 'Set pattern {}'.format(pattern)):
self.model().set_pattern(pattern)
- self._resize_columns()
self._maybe_update_geometry()
self._maybe_show()
diff --git a/tests/unit/browser/test_history.py b/tests/unit/browser/test_history.py
index 5a8425646..81637f3d4 100644
--- a/tests/unit/browser/test_history.py
+++ b/tests/unit/browser/test_history.py
@@ -123,6 +123,7 @@ def test_clear_force(qtbot, tmpdir, hist):
hist.add_url(QUrl('http://www.qutebrowser.org/'))
hist.clear(force=True)
assert not len(hist)
+ assert not len(hist.completion)
def test_delete_url(hist):
@@ -131,10 +132,16 @@ def test_delete_url(hist):
hist.add_url(QUrl('http://example.com/2'), atime=0)
before = set(hist)
+ completion_before = set(hist.completion)
+
hist.delete_url(QUrl('http://example.com/1'))
+
diff = before.difference(set(hist))
assert diff == {('http://example.com/1', '', 0, False)}
+ completion_diff = completion_before.difference(set(hist.completion))
+ assert completion_diff == {('http://example.com/1', '', 0)}
+
@pytest.mark.parametrize('url, atime, title, redirect, expected_url', [
('http://www.example.com', 12346, 'the title', False,
@@ -146,15 +153,20 @@ def test_delete_url(hist):
('https://user:pass@example.com', 12346, 'the title', False,
'https://user@example.com'),
])
-def test_add_item(qtbot, hist, url, atime, title, redirect, expected_url):
+def test_add_url(qtbot, hist, url, atime, title, redirect, expected_url):
hist.add_url(QUrl(url), atime=atime, title=title, redirect=redirect)
assert list(hist) == [(expected_url, title, atime, redirect)]
+ if redirect:
+ assert not len(hist.completion)
+ else:
+ assert list(hist.completion) == [(expected_url, title, atime)]
-def test_add_item_invalid(qtbot, hist, caplog):
+def test_add_url_invalid(qtbot, hist, caplog):
with caplog.at_level(logging.WARNING):
hist.add_url(QUrl())
assert not list(hist)
+ assert not list(hist.completion)
@pytest.mark.parametrize('level, url, req_url, expected', [