From 6ac940fa32ded695684e998abcd25a1fbea14b15 Mon Sep 17 00:00:00 2001 From: Ryan Roden-Corrent Date: Tue, 27 Jun 2017 12:33:51 -0400 Subject: [PATCH] Fix pylint/coverage errors. Ensure 100% coverage for sqlcategory and history, and fix some linter errors --- qutebrowser/completion/models/sqlcategory.py | 1 - qutebrowser/completion/models/urlmodel.py | 2 +- tests/unit/browser/webkit/test_history.py | 11 +++++++++ .../unit/completion/test_completionwidget.py | 2 +- tests/unit/completion/test_models.py | 3 --- tests/unit/completion/test_sqlcategory.py | 24 +++++++++++++++++++ tests/unit/utils/test_version.py | 1 - 7 files changed, 37 insertions(+), 7 deletions(-) diff --git a/qutebrowser/completion/models/sqlcategory.py b/qutebrowser/completion/models/sqlcategory.py index e20edad3c..b074980b3 100644 --- a/qutebrowser/completion/models/sqlcategory.py +++ b/qutebrowser/completion/models/sqlcategory.py @@ -21,7 +21,6 @@ import re -from PyQt5.QtCore import QModelIndex from PyQt5.QtSql import QSqlQueryModel from qutebrowser.misc import sql diff --git a/qutebrowser/completion/models/urlmodel.py b/qutebrowser/completion/models/urlmodel.py index 397783d6f..0c63f2582 100644 --- a/qutebrowser/completion/models/urlmodel.py +++ b/qutebrowser/completion/models/urlmodel.py @@ -22,7 +22,7 @@ from qutebrowser.completion.models import (completionmodel, listcategory, sqlcategory) from qutebrowser.config import config -from qutebrowser.utils import qtutils, log, objreg +from qutebrowser.utils import log, objreg _URLCOL = 0 diff --git a/tests/unit/browser/webkit/test_history.py b/tests/unit/browser/webkit/test_history.py index 21945b537..4b317acab 100644 --- a/tests/unit/browser/webkit/test_history.py +++ b/tests/unit/browser/webkit/test_history.py @@ -125,6 +125,17 @@ def test_clear_force(qtbot, tmpdir, hist): assert not len(hist) +def test_delete_url(hist): + hist.add_url(QUrl('http://example.com/'), atime=0) + hist.add_url(QUrl('http://example.com/1'), atime=0) + hist.add_url(QUrl('http://example.com/2'), atime=0) + + before = set(hist) + hist.delete_url(QUrl('http://example.com/1')) + diff = before.difference(set(hist)) + assert diff == set([('http://example.com/1', '', 0, False)]) + + @pytest.mark.parametrize('url, atime, title, redirect', [ ('http://www.example.com', 12346, 'the title', False), ('http://www.example.com', 12346, 'the title', True) diff --git a/tests/unit/completion/test_completionwidget.py b/tests/unit/completion/test_completionwidget.py index 03f352194..1625dc60a 100644 --- a/tests/unit/completion/test_completionwidget.py +++ b/tests/unit/completion/test_completionwidget.py @@ -233,4 +233,4 @@ def test_completion_item_del_no_selection(completionview): completionview.set_model(model) with pytest.raises(cmdexc.CommandError, match='No item selected!'): completionview.completion_item_del() - func.assert_not_called + func.assert_not_called() diff --git a/tests/unit/completion/test_models.py b/tests/unit/completion/test_models.py index 1c1a4ce63..959224398 100644 --- a/tests/unit/completion/test_models.py +++ b/tests/unit/completion/test_models.py @@ -20,16 +20,13 @@ """Tests for completion models.""" import collections -import unittest.mock from datetime import datetime import pytest from PyQt5.QtCore import QUrl -from PyQt5.QtWidgets import QTreeView from qutebrowser.completion.models import miscmodels, urlmodel, configmodel from qutebrowser.config import sections, value -from qutebrowser.utils import objreg from qutebrowser.misc import sql diff --git a/tests/unit/completion/test_sqlcategory.py b/tests/unit/completion/test_sqlcategory.py index ad1ff7e75..951a7d865 100644 --- a/tests/unit/completion/test_sqlcategory.py +++ b/tests/unit/completion/test_sqlcategory.py @@ -19,11 +19,14 @@ """Test SQL-based completions.""" +import unittest.mock + import pytest from helpers import utils from qutebrowser.misc import sql from qutebrowser.completion.models import sqlcategory +from qutebrowser.commands import cmdexc pytestmark = pytest.mark.usefixtures('init_sql') @@ -151,3 +154,24 @@ def test_group(): select='a, max(b)', group_by='a') cat.set_pattern('') utils.validate_model(cat, [('bar', 3), ('foo', 2)]) + + +def test_delete_cur_item(): + table = sql.SqlTable('Foo', ['a', 'b']) + table.insert({'a': 'foo', 'b': 1}) + table.insert({'a': 'bar', 'b': 2}) + func = unittest.mock.MagicMock() + cat = sqlcategory.SqlCategory('Foo', filter_fields=['a'], delete_func=func) + cat.set_pattern('') + cat.delete_cur_item(cat.index(0, 0)) + func.assert_called_with(['foo', 1]) + + +def test_delete_cur_item_no_func(): + table = sql.SqlTable('Foo', ['a', 'b']) + table.insert({'a': 'foo', 'b': 1}) + table.insert({'a': 'bar', 'b': 2}) + cat = sqlcategory.SqlCategory('Foo', filter_fields=['a']) + cat.set_pattern('') + with pytest.raises(cmdexc.CommandError, match='Cannot delete this item'): + cat.delete_cur_item(cat.index(0, 0)) diff --git a/tests/unit/utils/test_version.py b/tests/unit/utils/test_version.py index 13dfb09d2..c0c731f88 100644 --- a/tests/unit/utils/test_version.py +++ b/tests/unit/utils/test_version.py @@ -811,7 +811,6 @@ def test_chromium_version_unpatched(qapp): def test_version_output(git_commit, frozen, style, with_webkit, known_distribution, stubs, monkeypatch, init_sql): """Test version.version().""" - # pylint: disable=too-many-locals class FakeWebEngineProfile: def httpUserAgent(self): return 'Toaster/4.0.4 Chrome/CHROMIUMVERSION Teapot/4.1.8'