summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2021-01-02 17:09:44 +0100
committerFlorian Bruhin <me@the-compiler.org>2021-01-02 17:09:44 +0100
commitcd0000f728459f208c4cf69f29b603fbcab6ffb4 (patch)
treeca51b590720198cc68cb9e0ad2c703df0bf70495
parente609f35850e8435f095d5363d3484c9f28174118 (diff)
downloadqutebrowser-cd0000f728459f208c4cf69f29b603fbcab6ffb4.tar.gz
qutebrowser-cd0000f728459f208c4cf69f29b603fbcab6ffb4.zip
history: Remove old force_rebuild values
-rw-r--r--qutebrowser/browser/history.py3
-rw-r--r--qutebrowser/misc/sql.py5
-rw-r--r--tests/unit/browser/test_history.py6
-rw-r--r--tests/unit/misc/test_sql.py5
4 files changed, 18 insertions, 1 deletions
diff --git a/qutebrowser/browser/history.py b/qutebrowser/browser/history.py
index 37bc03181..cf944f184 100644
--- a/qutebrowser/browser/history.py
+++ b/qutebrowser/browser/history.py
@@ -89,6 +89,9 @@ class CompletionMetaInfo(sql.SqlTable):
if key not in self:
self[key] = default
+ # force_rebuild is not in use anymore
+ self.delete('key', 'force_rebuild', optional=True)
+
def _check_key(self, key):
if key not in self.KEYS:
raise KeyError(key)
diff --git a/qutebrowser/misc/sql.py b/qutebrowser/misc/sql.py
index 2af95ac15..a339f890a 100644
--- a/qutebrowser/misc/sql.py
+++ b/qutebrowser/misc/sql.py
@@ -318,12 +318,13 @@ class SqlTable(QObject):
q.run()
return q.value()
- def delete(self, field, value):
+ def delete(self, field, value, *, optional=False):
"""Remove all rows for which `field` equals `value`.
Args:
field: Field to use as the key.
value: Key value to delete.
+ optional: If set, non-existant values are ignored.
Return:
The number of rows deleted.
@@ -332,6 +333,8 @@ class SqlTable(QObject):
.format(table=self._name, field=field))
q.run(val=value)
if not q.rows_affected():
+ if optional:
+ return
raise KeyError('No row with {} = "{}"'.format(field, value))
self.changed.emit()
diff --git a/tests/unit/browser/test_history.py b/tests/unit/browser/test_history.py
index 829a7e6de..cac167028 100644
--- a/tests/unit/browser/test_history.py
+++ b/tests/unit/browser/test_history.py
@@ -479,6 +479,12 @@ class TestCompletionMetaInfo:
def test_contains(self, metainfo):
assert 'excluded_patterns' in metainfo
+ def test_delete_old_key(self, monkeypatch, metainfo):
+ metainfo.insert({'key': 'force_rebuild', 'value': False})
+ info2 = history.CompletionMetaInfo()
+ monkeypatch.setitem(info2.KEYS, 'force_rebuild', False)
+ assert 'force_rebuild' not in info2
+
def test_modify(self, metainfo):
assert not metainfo['excluded_patterns']
value = 'https://example.com/'
diff --git a/tests/unit/misc/test_sql.py b/tests/unit/misc/test_sql.py
index c8efe6ef6..5f14ebec4 100644
--- a/tests/unit/misc/test_sql.py
+++ b/tests/unit/misc/test_sql.py
@@ -176,6 +176,11 @@ def test_delete(qtbot):
assert not list(table)
+def test_delete_optional(qtbot):
+ table = sql.SqlTable('Foo', ['name', 'val'])
+ table.delete('name', 'doesnotexist', optional=True)
+
+
def test_len():
table = sql.SqlTable('Foo', ['name', 'val', 'lucky'])
assert len(table) == 0