Add missing tests for completions

This commit is contained in:
Florian Bruhin 2018-02-27 15:55:00 +01:00
parent 60f0175a36
commit 5eb340d481
2 changed files with 69 additions and 2 deletions

View File

@ -173,6 +173,8 @@ PERFECT_FILES = [
'completion/models/util.py'),
('tests/unit/completion/test_models.py',
'completion/models/urlmodel.py'),
('tests/unit/completion/test_models.py',
'completion/models/configmodel.py'),
('tests/unit/completion/test_histcategory.py',
'completion/models/histcategory.py'),
('tests/unit/completion/test_listcategory.py',

View File

@ -28,7 +28,7 @@ from PyQt5.QtCore import QUrl
from qutebrowser.completion import completer
from qutebrowser.completion.models import miscmodels, urlmodel, configmodel
from qutebrowser.config import configdata, configtypes
from qutebrowser.utils import objreg
from qutebrowser.utils import objreg, usertypes
from qutebrowser.browser import history
from qutebrowser.commands import cmdutils
@ -91,7 +91,8 @@ def configdata_stub(config_stub, monkeypatch, configdata_init):
valtype=configtypes.Command(),
),
default={'q': 'quit'},
backends=[],
backends=[usertypes.Backend.QtWebKit,
usertypes.Backend.QtWebEngine],
raw_backends=None)),
('bindings.default', configdata.Option(
name='bindings.default',
@ -131,6 +132,13 @@ def configdata_stub(config_stub, monkeypatch, configdata_init):
},
backends=[],
raw_backends=None)),
('content.javascript.enabled', configdata.Option(
name='content.javascript.enabled',
description='Enable/Disable JavaScript',
typ=configtypes.Bool(),
default=True,
backends=[],
raw_backends=None)),
]))
config_stub._init_values()
@ -248,6 +256,7 @@ def test_help_completion(qtmodeltester, cmdutils_stub, key_config_stub,
('aliases', 'Aliases for commands.', None),
('bindings.commands', 'Default keybindings', None),
('bindings.default', 'Default keybindings', None),
('content.javascript.enabled', 'Enable/Disable JavaScript', None),
]
})
@ -648,10 +657,66 @@ def test_setting_option_completion(qtmodeltester, config_stub,
'"I": "invalid", "d": "scroll down"}}')),
('bindings.default', 'Default keybindings',
'{"normal": {"<ctrl+q>": "quit", "d": "tab-close"}}'),
('content.javascript.enabled', 'Enable/Disable JavaScript',
'true'),
]
})
def test_setting_customized_option_completion(qtmodeltester, config_stub,
configdata_stub, info):
info.config.set_obj('aliases', {'foo': 'nop'})
model = configmodel.customized_option(info=info)
model.set_pattern('')
qtmodeltester.data_display_may_return_none = True
qtmodeltester.check(model)
_check_completions(model, {
"Customized options": [
('aliases', 'Aliases for commands.', '{"foo": "nop"}'),
]
})
def test_setting_value_completion(qtmodeltester, config_stub, configdata_stub,
info):
model = configmodel.value(optname='content.javascript.enabled', info=info)
model.set_pattern('')
qtmodeltester.data_display_may_return_none = True
qtmodeltester.check(model)
_check_completions(model, {
"Current/Default": [
('true', 'Current value', None),
('true', 'Default value', None),
],
"Completions": [
('false', '', None),
('true', '', None),
],
})
def test_setting_value_no_completions(qtmodeltester, config_stub,
configdata_stub, info):
model = configmodel.value(optname='aliases', info=info)
model.set_pattern('')
qtmodeltester.data_display_may_return_none = True
qtmodeltester.check(model)
_check_completions(model, {
"Current/Default": [
('{"q": "quit"}', 'Current value', None),
('{"q": "quit"}', 'Default value', None),
],
})
def test_setting_value_completion_invalid(info):
assert configmodel.value(optname='foobarbaz', info=info) is None
def test_bind_completion(qtmodeltester, cmdutils_stub, config_stub,
key_config_stub, configdata_stub, info):
"""Test the results of keybinding command completion.