From cff61fa0bcd2507b77651704cac8e28d4473fe2b Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Tue, 4 Jul 2017 15:33:58 +0200 Subject: [PATCH] Fix pylint This also reverts commit 8df0b063bea9f746381f43c6a6328e7d45e0a5cc. --- qutebrowser/app.py | 5 ++--- qutebrowser/browser/commands.py | 2 +- qutebrowser/browser/downloads.py | 2 ++ qutebrowser/browser/navigate.py | 3 +++ qutebrowser/browser/network/pac.py | 1 + qutebrowser/browser/shared.py | 3 ++- .../browser/webkit/network/webkitqutescheme.py | 3 +-- qutebrowser/browser/webkit/webkittab.py | 1 - qutebrowser/browser/webkit/webview.py | 2 +- qutebrowser/completion/models/configmodel.py | 3 +++ qutebrowser/completion/models/miscmodels.py | 3 +++ qutebrowser/config/config.py | 12 +++++------- qutebrowser/config/configdata.py | 1 - qutebrowser/config/configtypes.py | 12 ++++++++---- qutebrowser/keyinput/basekeyparser.py | 7 ++++--- qutebrowser/mainwindow/messageview.py | 3 ++- qutebrowser/mainwindow/tabbedbrowser.py | 3 ++- qutebrowser/mainwindow/tabwidget.py | 4 ++-- qutebrowser/misc/keyhintwidget.py | 2 +- qutebrowser/utils/utils.py | 5 +++++ .../dev/pylint_checkers/qute_pylint/config.py | 11 ++++------- scripts/dev/src2asciidoc.py | 1 - tests/end2end/features/test_invoke_bdd.py | 3 ++- tests/end2end/features/test_keyinput_bdd.py | 2 -- tests/helpers/stubs.py | 3 +-- tests/unit/browser/test_adblock.py | 14 +++++++------- tests/unit/commands/test_runners.py | 3 ++- tests/unit/completion/test_completer.py | 3 ++- tests/unit/completion/test_completionwidget.py | 2 +- tests/unit/completion/test_models.py | 6 +++++- tests/unit/config/test_config.py | 18 ++++++++++-------- tests/unit/config/test_configdata.py | 2 +- tests/unit/config/test_configfiles.py | 6 ++++-- tests/unit/config/test_configtypes.py | 4 +--- tests/unit/keyinput/conftest.py | 4 ---- tests/unit/mainwindow/test_tabwidget.py | 4 +--- tests/unit/misc/test_keyhints.py | 1 - tests/unit/utils/test_utils.py | 4 ++++ 38 files changed, 93 insertions(+), 75 deletions(-) diff --git a/qutebrowser/app.py b/qutebrowser/app.py index 2a8b46bc4..66d4d5eb8 100644 --- a/qutebrowser/app.py +++ b/qutebrowser/app.py @@ -22,7 +22,6 @@ import os import sys import subprocess -import configparser import functools import json import shutil @@ -647,8 +646,8 @@ class Quitter: """Quit qutebrowser. Args: - save: When given, save the open windows even if auto_save.session is - turned off. + save: When given, save the open windows even if auto_save.session + is turned off. session: The name of the session to save. """ if session is not None and not save: diff --git a/qutebrowser/browser/commands.py b/qutebrowser/browser/commands.py index 13ba42111..77b288d50 100644 --- a/qutebrowser/browser/commands.py +++ b/qutebrowser/browser/commands.py @@ -33,7 +33,7 @@ import pygments.lexers import pygments.formatters from qutebrowser.commands import userscripts, cmdexc, cmdutils, runners -from qutebrowser.config import config, configexc, configdata +from qutebrowser.config import config, configdata from qutebrowser.browser import (urlmarks, browsertab, inspector, navigate, webelem, downloads) from qutebrowser.keyinput import modeman diff --git a/qutebrowser/browser/downloads.py b/qutebrowser/browser/downloads.py index de16a60ff..72257c859 100644 --- a/qutebrowser/browser/downloads.py +++ b/qutebrowser/browser/downloads.py @@ -472,10 +472,12 @@ class AbstractDownloadItem(QObject): position: The color type requested, can be 'fg' or 'bg'. """ assert position in ["fg", "bg"] + # pylint: disable=bad-config-option start = getattr(config.val.colors.downloads.start, position) stop = getattr(config.val.colors.downloads.stop, position) system = getattr(config.val.colors.downloads.system, position) error = getattr(config.val.colors.downloads.error, position) + # pylint: enable=bad-config-option if self.error_msg is not None: assert not self.successful return error diff --git a/qutebrowser/browser/navigate.py b/qutebrowser/browser/navigate.py index ff620dabb..dcb578072 100644 --- a/qutebrowser/browser/navigate.py +++ b/qutebrowser/browser/navigate.py @@ -83,7 +83,10 @@ def _find_prevnext(prev, elems): option = 'prev_regexes' if prev else 'next_regexes' if not elems: return None + + # pylint: disable=bad-config-option for regex in getattr(config.val.hints, option): + # pylint: enable=bad-config-option log.hints.vdebug("== Checking regex '{}'.".format(regex.pattern)) for e in elems: text = str(e) diff --git a/qutebrowser/browser/network/pac.py b/qutebrowser/browser/network/pac.py index 03fc47350..69158fe62 100644 --- a/qutebrowser/browser/network/pac.py +++ b/qutebrowser/browser/network/pac.py @@ -249,6 +249,7 @@ class PACFetcher(QObject): self._manager.setProxy(QNetworkProxy(QNetworkProxy.NoProxy)) self._pac = None self._error_message = None + self._reply = None def __eq__(self, other): # pylint: disable=protected-access diff --git a/qutebrowser/browser/shared.py b/qutebrowser/browser/shared.py index 260e3d863..146785c4b 100644 --- a/qutebrowser/browser/shared.py +++ b/qutebrowser/browser/shared.py @@ -40,7 +40,8 @@ def custom_headers(): headers[b'DNT'] = dnt headers[b'X-Do-Not-Track'] = dnt - for header, value in config.val.content.headers.custom.items(): + conf_headers = config.val.content.headers.custom + for header, value in conf_headers.items(): headers[header.encode('ascii')] = value.encode('ascii') accept_language = config.val.content.headers.accept_language diff --git a/qutebrowser/browser/webkit/network/webkitqutescheme.py b/qutebrowser/browser/webkit/network/webkitqutescheme.py index 806cdde33..5413a4a8d 100644 --- a/qutebrowser/browser/webkit/network/webkitqutescheme.py +++ b/qutebrowser/browser/webkit/network/webkitqutescheme.py @@ -21,12 +21,11 @@ import mimetypes -from PyQt5.QtCore import pyqtSlot from PyQt5.QtNetwork import QNetworkReply from qutebrowser.browser import pdfjs, qutescheme from qutebrowser.browser.webkit.network import schemehandler, networkreply -from qutebrowser.utils import jinja, log, message, usertypes, qtutils +from qutebrowser.utils import log, usertypes, qtutils class QuteSchemeHandler(schemehandler.SchemeHandler): diff --git a/qutebrowser/browser/webkit/webkittab.py b/qutebrowser/browser/webkit/webkittab.py index b716f5ff7..abf77f048 100644 --- a/qutebrowser/browser/webkit/webkittab.py +++ b/qutebrowser/browser/webkit/webkittab.py @@ -27,7 +27,6 @@ import sip from PyQt5.QtCore import (pyqtSlot, Qt, QEvent, QUrl, QPoint, QTimer, QSizeF, QSize) from PyQt5.QtGui import QKeyEvent -from PyQt5.QtWidgets import QApplication from PyQt5.QtWebKitWidgets import QWebPage, QWebFrame from PyQt5.QtWebKit import QWebSettings from PyQt5.QtPrintSupport import QPrinter diff --git a/qutebrowser/browser/webkit/webview.py b/qutebrowser/browser/webkit/webview.py index ab7805213..95e8c14f0 100644 --- a/qutebrowser/browser/webkit/webview.py +++ b/qutebrowser/browser/webkit/webview.py @@ -25,7 +25,7 @@ from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt, QUrl from PyQt5.QtGui import QPalette from PyQt5.QtWidgets import QStyleFactory from PyQt5.QtWebKit import QWebSettings -from PyQt5.QtWebKitWidgets import QWebView, QWebPage, QWebFrame +from PyQt5.QtWebKitWidgets import QWebView, QWebPage from qutebrowser.config import config from qutebrowser.keyinput import modeman diff --git a/qutebrowser/completion/models/configmodel.py b/qutebrowser/completion/models/configmodel.py index b13bcee8b..678811f9c 100644 --- a/qutebrowser/completion/models/configmodel.py +++ b/qutebrowser/completion/models/configmodel.py @@ -19,6 +19,9 @@ """CompletionModels for the config.""" +# FIXME:conf +# pylint: disable=no-member + from PyQt5.QtCore import pyqtSlot, Qt from qutebrowser.config import config, configdata diff --git a/qutebrowser/completion/models/miscmodels.py b/qutebrowser/completion/models/miscmodels.py index bda8f29ae..a85ba2db9 100644 --- a/qutebrowser/completion/models/miscmodels.py +++ b/qutebrowser/completion/models/miscmodels.py @@ -19,6 +19,9 @@ """Misc. CompletionModels.""" +# FIXME:conf +# pylint: disable=unused-argument + from PyQt5.QtCore import Qt, QTimer, pyqtSlot from qutebrowser.browser import browsertab diff --git a/qutebrowser/config/config.py b/qutebrowser/config/config.py index 2d7ae035e..6f5d42dfa 100644 --- a/qutebrowser/config/config.py +++ b/qutebrowser/config/config.py @@ -20,15 +20,13 @@ """Configuration storage and config-related utilities.""" import copy -import os.path import contextlib import functools from PyQt5.QtCore import pyqtSignal, pyqtSlot, QObject, QUrl from qutebrowser.config import configdata, configexc, configtypes, configfiles -from qutebrowser.utils import (utils, objreg, message, standarddir, log, - usertypes) +from qutebrowser.utils import utils, objreg, message, log, usertypes from qutebrowser.misc import objects from qutebrowser.commands import cmdexc, cmdutils @@ -279,8 +277,8 @@ class ConfigCommands: def _print_value(self, option): """Print the value of the given option.""" with self._handle_config_error(): - val = self._config.get_str(option) - message.info("{} = {}".format(option, val)) + value = self._config.get_str(option) + message.info("{} = {}".format(option, value)) def _set_next(self, option, values, *, temp): """Set the next value out of a list of values.""" @@ -292,9 +290,9 @@ class ConfigCommands: # Use the next valid value from values, or the first if the current # value does not appear in the list - val = self._config.get_str(option) + old_value = self._config.get_str(option) try: - idx = values.index(str(val)) + idx = values.index(str(old_value)) idx = (idx + 1) % len(values) value = values[idx] except ValueError: diff --git a/qutebrowser/config/configdata.py b/qutebrowser/config/configdata.py index 646f9d887..efa94b6aa 100644 --- a/qutebrowser/config/configdata.py +++ b/qutebrowser/config/configdata.py @@ -27,7 +27,6 @@ DATA: A dict of Option objects after init() has been called. # FIXME:conf reintroduce interpolation? import sys -import re import collections import functools diff --git a/qutebrowser/config/configtypes.py b/qutebrowser/config/configtypes.py index e82fe8f26..86514e4f0 100644 --- a/qutebrowser/config/configtypes.py +++ b/qutebrowser/config/configtypes.py @@ -170,7 +170,10 @@ class BaseType: self._basic_str_validation(value) def _basic_str_validation(self, value): - """Do some basic validation for string values (empty, non-printable chars). + """Do some basic validation for string values. + + This checks that the value isn't empty and doesn't contain any + unprintable chars. Arguments: value: The value to check. @@ -211,9 +214,9 @@ class BaseType: def from_str(self, value): """Get the setting value from a string. - By default this invokes to_py() for validation and returns the unaltered - value. This means that if to_py() returns a string rather than something - more sophisticated, this doesn't need to be implemented. + By default this invokes to_py() for validation and returns the + unaltered value. This means that if to_py() returns a string rather + than something more sophisticated, this doesn't need to be implemented. Args: value: The original string value. @@ -256,6 +259,7 @@ class BaseType: This currently uses asciidoc syntax. """ + utils.unused(indent) # only needed for Dict/List if not value: return 'empty' return '+pass:[{}]+'.format(html.escape(self.to_str(value))) diff --git a/qutebrowser/keyinput/basekeyparser.py b/qutebrowser/keyinput/basekeyparser.py index 3f62f025a..bc27c7ffe 100644 --- a/qutebrowser/keyinput/basekeyparser.py +++ b/qutebrowser/keyinput/basekeyparser.py @@ -23,10 +23,10 @@ import re import functools import unicodedata -from PyQt5.QtCore import pyqtSignal, pyqtSlot, QObject +from PyQt5.QtCore import pyqtSignal, QObject from qutebrowser.config import config -from qutebrowser.utils import usertypes, log, utils, objreg +from qutebrowser.utils import usertypes, log, utils class BaseKeyParser(QObject): @@ -190,7 +190,8 @@ class BaseKeyParser(QObject): return self.Match.none self._stop_timers() - txt = config.val.bindings.key_mappings.get(txt, txt) + key_mappings = config.val.bindings.key_mappings + txt = key_mappings.get(txt, txt) self._keystring += txt count, cmd_input = self._split_count() diff --git a/qutebrowser/mainwindow/messageview.py b/qutebrowser/mainwindow/messageview.py index ee22ee80d..d485ae9c1 100644 --- a/qutebrowser/mainwindow/messageview.py +++ b/qutebrowser/mainwindow/messageview.py @@ -65,7 +65,8 @@ class Message(QLabel): raise ValueError("Invalid level {!r}".format(level)) # We don't bother with set_register_stylesheet here as it's short-lived # anyways. - config.set_register_stylesheet(self, stylesheet=stylesheet, update=False) + config.set_register_stylesheet(self, stylesheet=stylesheet, + update=False) class MessageView(QWidget): diff --git a/qutebrowser/mainwindow/tabbedbrowser.py b/qutebrowser/mainwindow/tabbedbrowser.py index b160de007..b3eccd154 100644 --- a/qutebrowser/mainwindow/tabbedbrowser.py +++ b/qutebrowser/mainwindow/tabbedbrowser.py @@ -176,7 +176,8 @@ class TabbedBrowser(tabwidget.TabWidget): fields = self.get_tab_fields(idx) fields['id'] = self._win_id - title = config.val.window.title_format.format(**fields) + title_format = config.val.window.title_format + title = title_format.format(**fields) self.window().setWindowTitle(title) def _connect_tab_signals(self, tab): diff --git a/qutebrowser/mainwindow/tabwidget.py b/qutebrowser/mainwindow/tabwidget.py index b576fddb6..476e6752e 100644 --- a/qutebrowser/mainwindow/tabwidget.py +++ b/qutebrowser/mainwindow/tabwidget.py @@ -546,15 +546,15 @@ class TabBar(QTabBar): def paintEvent(self, _e): """Override paintEvent to draw the tabs like we want to.""" - # pylint: disable=bad-config-call - # WORKAROUND for https://bitbucket.org/logilab/astroid/issue/104 p = QStylePainter(self) selected = self.currentIndex() for idx in range(self.count()): tab = QStyleOptionTab() self.initStyleOption(tab, idx) + # pylint: disable=bad-config-option setting = config.val.colors.tabs + # pylint: enable=bad-config-option if idx == selected: setting = setting.selected setting = setting.odd if idx % 2 else setting.even diff --git a/qutebrowser/misc/keyhintwidget.py b/qutebrowser/misc/keyhintwidget.py index a1fa7661c..cfac8ba8e 100644 --- a/qutebrowser/misc/keyhintwidget.py +++ b/qutebrowser/misc/keyhintwidget.py @@ -31,7 +31,7 @@ from PyQt5.QtWidgets import QLabel, QSizePolicy from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt from qutebrowser.config import config -from qutebrowser.utils import objreg, utils, usertypes +from qutebrowser.utils import utils, usertypes class KeyHintView(QLabel): diff --git a/qutebrowser/utils/utils.py b/qutebrowser/utils/utils.py index c70d69693..241a20afc 100644 --- a/qutebrowser/utils/utils.py +++ b/qutebrowser/utils/utils.py @@ -864,6 +864,11 @@ def open_file(filename, cmdline=None): proc.start_detached(cmd, args) +def unused(_arg): + """Function which does nothing to avoid pylint complaining.""" + pass + + def expand_windows_drive(path): r"""Expand a drive-path like E: into E:\. diff --git a/scripts/dev/pylint_checkers/qute_pylint/config.py b/scripts/dev/pylint_checkers/qute_pylint/config.py index bfd8d6ba0..df08e6833 100644 --- a/scripts/dev/pylint_checkers/qute_pylint/config.py +++ b/scripts/dev/pylint_checkers/qute_pylint/config.py @@ -40,20 +40,17 @@ class ConfigChecker(checkers.BaseChecker): name = 'config' msgs = { 'E9998': ('%s is no valid config option.', # flake8: disable=S001 - 'bad-config-call', - None), - 'E9999': ('old config call', # flake8: disable=S001 - 'old-config-call', + 'bad-config-option', None), } priority = -1 - @utils.check_messages('bad-config-call') + @utils.check_messages('bad-config-option') def visit_attribute(self, node): """Visit a getattr node.""" # At the end of a config.val.foo.bar chain if not isinstance(node.parent, astroid.Attribute): - # FIXME do some proper check for this... + # FIXME:conf do some proper check for this... node_str = node.as_string() prefix = 'config.val.' if node_str.startswith(prefix): @@ -62,7 +59,7 @@ class ConfigChecker(checkers.BaseChecker): def _check_config(self, node, name): """Check that we're accessing proper config options.""" if name not in OPTIONS: - self.add_message('bad-config-call', node=node, args=name) + self.add_message('bad-config-option', node=node, args=name) def register(linter): diff --git a/scripts/dev/src2asciidoc.py b/scripts/dev/src2asciidoc.py index 9217f7efb..13861e431 100755 --- a/scripts/dev/src2asciidoc.py +++ b/scripts/dev/src2asciidoc.py @@ -22,7 +22,6 @@ import os import sys -import html import shutil import os.path import inspect diff --git a/tests/end2end/features/test_invoke_bdd.py b/tests/end2end/features/test_invoke_bdd.py index f8de1002c..46a6ca637 100644 --- a/tests/end2end/features/test_invoke_bdd.py +++ b/tests/end2end/features/test_invoke_bdd.py @@ -27,4 +27,5 @@ def invoke_with(quteproc): quteproc.log_summary("Create a new window") quteproc.send_ipc([], target_arg='window') quteproc.wait_for(category='init', module='app', - function='_open_startpage', message='Opening start pages') + function='_open_startpage', + message='Opening start pages') diff --git a/tests/end2end/features/test_keyinput_bdd.py b/tests/end2end/features/test_keyinput_bdd.py index 461db491c..ef5be0ee9 100644 --- a/tests/end2end/features/test_keyinput_bdd.py +++ b/tests/end2end/features/test_keyinput_bdd.py @@ -17,7 +17,5 @@ # You should have received a copy of the GNU General Public License # along with qutebrowser. If not, see . -import pytest - import pytest_bdd as bdd bdd.scenarios('keyinput.feature') diff --git a/tests/helpers/stubs.py b/tests/helpers/stubs.py index fb1232396..06fc5ef39 100644 --- a/tests/helpers/stubs.py +++ b/tests/helpers/stubs.py @@ -30,8 +30,7 @@ from PyQt5.QtNetwork import (QNetworkRequest, QAbstractNetworkCache, from PyQt5.QtWidgets import QCommonStyle, QLineEdit, QWidget, QTabBar from qutebrowser.browser import browsertab, history -from qutebrowser.config import configexc, configdata -from qutebrowser.utils import usertypes, utils +from qutebrowser.utils import usertypes from qutebrowser.mainwindow import mainwindow diff --git a/tests/unit/browser/test_adblock.py b/tests/unit/browser/test_adblock.py index ca80706bd..8ca82aaf6 100644 --- a/tests/unit/browser/test_adblock.py +++ b/tests/unit/browser/test_adblock.py @@ -34,24 +34,24 @@ pytestmark = pytest.mark.usefixtures('qapp', 'config_tmpdir') # TODO See ../utils/test_standarddirutils for OSError and caplog assertion -WHITELISTED_HOSTS = ['qutebrowser.org', 'mediumhost.io'] +WHITELISTED_HOSTS = ('qutebrowser.org', 'mediumhost.io') -BLOCKLIST_HOSTS = ['localhost', +BLOCKLIST_HOSTS = ('localhost', 'mediumhost.io', 'malware.badhost.org', '4-verybadhost.com', - 'ads.worsthostever.net'] + 'ads.worsthostever.net') -CLEAN_HOSTS = ['goodhost.gov', 'verygoodhost.com'] +CLEAN_HOSTS = ('goodhost.gov', 'verygoodhost.com') -URLS_TO_CHECK = ['http://localhost', +URLS_TO_CHECK = ('http://localhost', 'http://mediumhost.io', 'ftp://malware.badhost.org', 'http://4-verybadhost.com', 'http://ads.worsthostever.net', 'http://goodhost.gov', 'ftp://verygoodhost.com', - 'http://qutebrowser.org'] + 'http://qutebrowser.org') class BaseDirStub: @@ -374,7 +374,7 @@ def test_blocking_with_whitelist(config_stub, basedir, download_stub, line_format='one_per_line') config_stub.val.content.host_blocking.lists = [blocklist] config_stub.val.content.host_blocking.enabled = True - config_stub.val.content.host_blocking.whitelist = WHITELISTED_HOSTS + config_stub.val.content.host_blocking.whitelist = list(WHITELISTED_HOSTS) host_blocker = adblock.HostBlocker() host_blocker.read_hosts() diff --git a/tests/unit/commands/test_runners.py b/tests/unit/commands/test_runners.py index 209216cbe..5e9aa3dfc 100644 --- a/tests/unit/commands/test_runners.py +++ b/tests/unit/commands/test_runners.py @@ -42,7 +42,8 @@ class TestCommandParser: with pytest.raises(cmdexc.NoSuchCommandError): parser.parse_all(cmdline_test.cmd, aliases=False) - def test_parse_all_with_alias(self, cmdline_test, monkeypatch, config_stub): + def test_parse_all_with_alias(self, cmdline_test, monkeypatch, + config_stub): if not cmdline_test.cmd: pytest.skip("Empty command") diff --git a/tests/unit/completion/test_completer.py b/tests/unit/completion/test_completer.py index 200227461..80e3cd05a 100644 --- a/tests/unit/completion/test_completer.py +++ b/tests/unit/completion/test_completer.py @@ -30,7 +30,8 @@ from qutebrowser.utils import usertypes from qutebrowser.commands import command, cmdutils -pytestmark = pytest.mark.skip("FIXME:conf reintroduce after new completion is in") +pytestmark = pytest.mark.skip("FIXME:conf reintroduce after new completion " + "is in") class FakeCompletionModel(QStandardItemModel): diff --git a/tests/unit/completion/test_completionwidget.py b/tests/unit/completion/test_completionwidget.py index c82583ef0..c35bf6e18 100644 --- a/tests/unit/completion/test_completionwidget.py +++ b/tests/unit/completion/test_completionwidget.py @@ -22,7 +22,7 @@ import unittest.mock import pytest -from PyQt5.QtGui import QStandardItem, QColor +from PyQt5.QtGui import QStandardItem from qutebrowser.completion import completionwidget from qutebrowser.completion.models import base, sortfilter diff --git a/tests/unit/completion/test_models.py b/tests/unit/completion/test_models.py index 8e2fde77c..5004fe077 100644 --- a/tests/unit/completion/test_models.py +++ b/tests/unit/completion/test_models.py @@ -17,6 +17,9 @@ # You should have received a copy of the GNU General Public License # along with qutebrowser. If not, see . +# FIXME:conf +# pylint: disable=undefined-variable + """Tests for completion models.""" import collections @@ -31,7 +34,8 @@ from qutebrowser.completion.models import (miscmodels, urlmodel, configmodel, from qutebrowser.browser import history -pytestmark = pytest.mark.skip("FIXME:conf reintroduce after new completion is in") +pytestmark = pytest.mark.skip("FIXME:conf reintroduce after new completion " + "is in") def _check_completions(model, expected): diff --git a/tests/unit/config/test_config.py b/tests/unit/config/test_config.py index b365914f7..d5bca4454 100644 --- a/tests/unit/config/test_config.py +++ b/tests/unit/config/test_config.py @@ -26,7 +26,7 @@ from PyQt5.QtCore import QObject, QUrl from PyQt5.QtGui import QColor from qutebrowser.commands import cmdexc -from qutebrowser.config import config, configdata, configexc, configfiles +from qutebrowser.config import config, configdata, configexc from qutebrowser.utils import objreg, usertypes from qutebrowser.misc import objects @@ -83,7 +83,7 @@ class TestChangeFilter: was_called = True foo = Foo() - foo.meth(changed) + foo.meth(changed) # pylint: disable=too-many-function-args else: @@ -92,7 +92,7 @@ class TestChangeFilter: nonlocal was_called was_called = True - func(changed) + func(changed) # pylint: disable=too-many-function-args assert was_called == matches @@ -127,7 +127,8 @@ class TestKeyConfig: ({'a': None}, {'b': 'message-info bar'}), # Additional binding ({'c': 'message-info baz'}, - {'a': 'message-info foo', 'b': 'message-info bar', 'c': 'message-info baz'}), + {'a': 'message-info foo', 'b': 'message-info bar', + 'c': 'message-info baz'}), # Unbinding unknown key ({'x': None}, {'a': 'message-info foo', 'b': 'message-info bar'}), ]) @@ -638,8 +639,9 @@ class TestConfig: When we get a mutable object from the config, some invariants should be true: - - The object we get from the config is always a copy, i.e. mutating it - doesn't change the internal value (or default) stored in the config. + - The object we get from the config is always a copy, i.e. mutating + it doesn't change the internal value (or default) stored in the + config. - If we mutate the object (mutated=True) and the config watches for mutables (mutable=True), it should notice that the object changed. - With mutable=False, we should always get the old object back. @@ -760,7 +762,7 @@ class TestContainer: def test_getattr_invalid_private(self, container): """Make sure an invalid _attribute doesn't try getting a container.""" with pytest.raises(AttributeError): - container._foo + container._foo # pylint: disable=pointless-statement def test_getattr_prefix(self, container): new_container = container.tabs @@ -773,7 +775,7 @@ class TestContainer: def test_getattr_invalid(self, container): with pytest.raises(configexc.NoOptionError) as excinfo: - container.tabs.foobar + container.tabs.foobar # pylint: disable=pointless-statement assert excinfo.value.option == 'tabs.foobar' def test_setattr_option(self, config_stub, container): diff --git a/tests/unit/config/test_configdata.py b/tests/unit/config/test_configdata.py index 27733f0a2..d4677e9b3 100644 --- a/tests/unit/config/test_configdata.py +++ b/tests/unit/config/test_configdata.py @@ -24,7 +24,7 @@ import yaml import pytest # To run cmdutils.register decorators -from qutebrowser import app +from qutebrowser import app # pylint: disable=unused-import from qutebrowser.config import configdata, configtypes from qutebrowser.utils import usertypes diff --git a/tests/unit/config/test_configfiles.py b/tests/unit/config/test_configfiles.py index b44598888..e4275176a 100644 --- a/tests/unit/config/test_configfiles.py +++ b/tests/unit/config/test_configfiles.py @@ -44,7 +44,8 @@ def test_state_config(fake_save_manager, data_tmpdir, if insert: state['general']['newval'] = '23' - if 'foobar' in (old_data or ''): + # WORKAROUND for https://github.com/PyCQA/pylint/issues/574 + if 'foobar' in (old_data or ''): # pylint: disable=superfluous-parens assert state['general']['foobar'] == '42' state._save() @@ -81,7 +82,8 @@ def test_yaml_config(fake_save_manager, config_tmpdir, old_config, insert): else: assert lines[3] == 'global:' - if 'magenta' in (old_config or ''): + # WORKAROUND for https://github.com/PyCQA/pylint/issues/574 + if 'magenta' in (old_config or ''): # pylint: disable=superfluous-parens assert ' colors.hints.fg: magenta' in lines if insert: assert ' tabs.show: never' in lines diff --git a/tests/unit/config/test_configtypes.py b/tests/unit/config/test_configtypes.py index ae850d0dd..dcf18a675 100644 --- a/tests/unit/config/test_configtypes.py +++ b/tests/unit/config/test_configtypes.py @@ -19,8 +19,6 @@ """Tests for qutebrowser.config.configtypes.""" import re -import os -import sys import json import math import collections @@ -187,7 +185,7 @@ class TestAll: """Various tests which apply to all available config types.""" - def gen_classes(): + def gen_classes(): # pylint: disable=no-method-argument """Yield all configtypes classes to test. Not a method as it's used in decorators. diff --git a/tests/unit/keyinput/conftest.py b/tests/unit/keyinput/conftest.py index 8ed74a41f..bdae15272 100644 --- a/tests/unit/keyinput/conftest.py +++ b/tests/unit/keyinput/conftest.py @@ -19,12 +19,8 @@ """pytest fixtures for tests.keyinput.""" -from unittest import mock - import pytest -from qutebrowser.utils import objreg - BINDINGS = {'prompt': {'': 'message-info ctrla', 'a': 'message-info a', diff --git a/tests/unit/mainwindow/test_tabwidget.py b/tests/unit/mainwindow/test_tabwidget.py index e8d32c6f3..e05e6a164 100644 --- a/tests/unit/mainwindow/test_tabwidget.py +++ b/tests/unit/mainwindow/test_tabwidget.py @@ -21,11 +21,9 @@ import pytest -from PyQt5.QtGui import QIcon, QPixmap, QFont, QColor -from PyQt5.QtCore import Qt +from PyQt5.QtGui import QIcon, QPixmap from qutebrowser.mainwindow import tabwidget -from qutebrowser.config import configtypes from qutebrowser.utils import usertypes diff --git a/tests/unit/misc/test_keyhints.py b/tests/unit/misc/test_keyhints.py index 16c25df35..c40958c86 100644 --- a/tests/unit/misc/test_keyhints.py +++ b/tests/unit/misc/test_keyhints.py @@ -19,7 +19,6 @@ """Test the keyhint widget.""" -from collections import OrderedDict import pytest from qutebrowser.misc.keyhintwidget import KeyHintView diff --git a/tests/unit/utils/test_utils.py b/tests/unit/utils/test_utils.py index ec464569f..dc925e215 100644 --- a/tests/unit/utils/test_utils.py +++ b/tests/unit/utils/test_utils.py @@ -922,6 +922,10 @@ class TestOpenFile: m.assert_called_with(QUrl('file:///foo/bar')) +def test_unused(): + utils.unused(None) + + @pytest.mark.parametrize('path, expected', [ ('E:', 'E:\\'), ('e:', 'e:\\'),