Fix pylint/coverage errors.

Ensure 100% coverage for sqlcategory and history, and fix some linter
errors
This commit is contained in:
Ryan Roden-Corrent 2017-06-27 12:33:51 -04:00
parent f06880c6e2
commit 6ac940fa32
7 changed files with 37 additions and 7 deletions

View File

@ -21,7 +21,6 @@
import re import re
from PyQt5.QtCore import QModelIndex
from PyQt5.QtSql import QSqlQueryModel from PyQt5.QtSql import QSqlQueryModel
from qutebrowser.misc import sql from qutebrowser.misc import sql

View File

@ -22,7 +22,7 @@
from qutebrowser.completion.models import (completionmodel, listcategory, from qutebrowser.completion.models import (completionmodel, listcategory,
sqlcategory) sqlcategory)
from qutebrowser.config import config from qutebrowser.config import config
from qutebrowser.utils import qtutils, log, objreg from qutebrowser.utils import log, objreg
_URLCOL = 0 _URLCOL = 0

View File

@ -125,6 +125,17 @@ def test_clear_force(qtbot, tmpdir, hist):
assert not len(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', [ @pytest.mark.parametrize('url, atime, title, redirect', [
('http://www.example.com', 12346, 'the title', False), ('http://www.example.com', 12346, 'the title', False),
('http://www.example.com', 12346, 'the title', True) ('http://www.example.com', 12346, 'the title', True)

View File

@ -233,4 +233,4 @@ def test_completion_item_del_no_selection(completionview):
completionview.set_model(model) completionview.set_model(model)
with pytest.raises(cmdexc.CommandError, match='No item selected!'): with pytest.raises(cmdexc.CommandError, match='No item selected!'):
completionview.completion_item_del() completionview.completion_item_del()
func.assert_not_called func.assert_not_called()

View File

@ -20,16 +20,13 @@
"""Tests for completion models.""" """Tests for completion models."""
import collections import collections
import unittest.mock
from datetime import datetime from datetime import datetime
import pytest import pytest
from PyQt5.QtCore import QUrl from PyQt5.QtCore import QUrl
from PyQt5.QtWidgets import QTreeView
from qutebrowser.completion.models import miscmodels, urlmodel, configmodel from qutebrowser.completion.models import miscmodels, urlmodel, configmodel
from qutebrowser.config import sections, value from qutebrowser.config import sections, value
from qutebrowser.utils import objreg
from qutebrowser.misc import sql from qutebrowser.misc import sql

View File

@ -19,11 +19,14 @@
"""Test SQL-based completions.""" """Test SQL-based completions."""
import unittest.mock
import pytest import pytest
from helpers import utils from helpers import utils
from qutebrowser.misc import sql from qutebrowser.misc import sql
from qutebrowser.completion.models import sqlcategory from qutebrowser.completion.models import sqlcategory
from qutebrowser.commands import cmdexc
pytestmark = pytest.mark.usefixtures('init_sql') pytestmark = pytest.mark.usefixtures('init_sql')
@ -151,3 +154,24 @@ def test_group():
select='a, max(b)', group_by='a') select='a, max(b)', group_by='a')
cat.set_pattern('') cat.set_pattern('')
utils.validate_model(cat, [('bar', 3), ('foo', 2)]) 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))

View File

@ -811,7 +811,6 @@ def test_chromium_version_unpatched(qapp):
def test_version_output(git_commit, frozen, style, with_webkit, def test_version_output(git_commit, frozen, style, with_webkit,
known_distribution, stubs, monkeypatch, init_sql): known_distribution, stubs, monkeypatch, init_sql):
"""Test version.version().""" """Test version.version()."""
# pylint: disable=too-many-locals
class FakeWebEngineProfile: class FakeWebEngineProfile:
def httpUserAgent(self): def httpUserAgent(self):
return 'Toaster/4.0.4 Chrome/CHROMIUMVERSION Teapot/4.1.8' return 'Toaster/4.0.4 Chrome/CHROMIUMVERSION Teapot/4.1.8'