diff options
author | Florian Bruhin <me@the-compiler.org> | 2021-01-02 17:09:44 +0100 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2021-01-02 17:09:44 +0100 |
commit | cd0000f728459f208c4cf69f29b603fbcab6ffb4 (patch) | |
tree | ca51b590720198cc68cb9e0ad2c703df0bf70495 | |
parent | e609f35850e8435f095d5363d3484c9f28174118 (diff) | |
download | qutebrowser-cd0000f728459f208c4cf69f29b603fbcab6ffb4.tar.gz qutebrowser-cd0000f728459f208c4cf69f29b603fbcab6ffb4.zip |
history: Remove old force_rebuild values
-rw-r--r-- | qutebrowser/browser/history.py | 3 | ||||
-rw-r--r-- | qutebrowser/misc/sql.py | 5 | ||||
-rw-r--r-- | tests/unit/browser/test_history.py | 6 | ||||
-rw-r--r-- | tests/unit/misc/test_sql.py | 5 |
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 |