Move command-history init to cmdhistory.py

This commit is contained in:
Florian Bruhin 2017-09-15 14:27:15 +02:00
parent 54214873f4
commit e87a782411
6 changed files with 33 additions and 18 deletions

View File

@ -52,7 +52,7 @@ from qutebrowser.browser.webkit.network import networkmanager
from qutebrowser.keyinput import macros from qutebrowser.keyinput import macros
from qutebrowser.mainwindow import mainwindow, prompt from qutebrowser.mainwindow import mainwindow, prompt
from qutebrowser.misc import (readline, ipc, savemanager, sessions, from qutebrowser.misc import (readline, ipc, savemanager, sessions,
crashsignal, earlyinit, objects, sql) crashsignal, earlyinit, objects, sql, cmdhistory)
from qutebrowser.misc import utilcmds # pylint: disable=unused-import from qutebrowser.misc import utilcmds # pylint: disable=unused-import
from qutebrowser.utils import (log, version, message, utils, qtutils, urlutils, from qutebrowser.utils import (log, version, message, utils, qtutils, urlutils,
objreg, usertypes, standarddir, error) objreg, usertypes, standarddir, error)
@ -419,6 +419,9 @@ def _init_modules(args, crash_handler):
pre_text='Error initializing SQL') pre_text='Error initializing SQL')
sys.exit(usertypes.Exit.err_init) sys.exit(usertypes.Exit.err_init)
log.init.debug("Initializing command history...")
cmdhistory.init()
log.init.debug("Initializing web history...") log.init.debug("Initializing web history...")
history.init(qApp) history.init(qApp)

View File

@ -199,18 +199,6 @@ def init(config):
state = StateConfig() state = StateConfig()
objreg.register('state-config', state) objreg.register('state-config', state)
# We need to import this here because lineparser needs config.
# FIXME:conf add this to the Command widget or something?
from qutebrowser.misc import lineparser
save_manager = objreg.get('save-manager')
command_history = lineparser.LimitLineParser(
standarddir.data(), 'cmd-history',
limit='completion.cmd_history_max_items',
parent=config)
objreg.register('command-history', command_history)
save_manager.add_saveable('command-history', command_history.save,
command_history.changed)
# Set the QSettings path to something like # Set the QSettings path to something like
# ~/.config/qutebrowser/qsettings/qutebrowser/qutebrowser.conf so it # ~/.config/qutebrowser/qsettings/qutebrowser/qutebrowser.conf so it
# doesn't overwrite our config. # doesn't overwrite our config.

View File

@ -21,7 +21,8 @@
from PyQt5.QtCore import pyqtSlot, pyqtSignal, QObject from PyQt5.QtCore import pyqtSlot, pyqtSignal, QObject
from qutebrowser.utils import usertypes, log from qutebrowser.utils import usertypes, log, standarddir, objreg
from qutebrowser.misc import lineparser
class HistoryEmptyError(Exception): class HistoryEmptyError(Exception):
@ -129,3 +130,14 @@ class History(QObject):
if not self.history or text != self.history[-1]: if not self.history or text != self.history[-1]:
self.history.append(text) self.history.append(text)
self.changed.emit() self.changed.emit()
def init():
"""Initialize the LimitLineParser storing the history."""
save_manager = objreg.get('save-manager')
command_history = lineparser.LimitLineParser(
standarddir.data(), 'cmd-history',
limit='completion.cmd_history_max_items')
objreg.register('command-history', command_history)
save_manager.add_saveable('command-history', command_history.save,
command_history.changed)

View File

@ -869,7 +869,7 @@ def init_patch(qapp, fake_save_manager, monkeypatch, config_tmpdir,
monkeypatch.setattr(config, 'key_instance', None) monkeypatch.setattr(config, 'key_instance', None)
monkeypatch.setattr(config, '_change_filters', []) monkeypatch.setattr(config, '_change_filters', [])
yield yield
for obj in ['config-commands', 'state-config', 'command-history']: for obj in ['config-commands', 'state-config']:
try: try:
objreg.delete(obj) objreg.delete(obj)
except KeyError: except KeyError:
@ -906,8 +906,6 @@ def test_init(qtbot, init_patch, fake_save_manager, config_tmpdir,
objreg.get('config-commands') objreg.get('config-commands')
assert isinstance(config.instance, config.Config) assert isinstance(config.instance, config.Config)
assert isinstance(config.key_instance, config.KeyConfig) assert isinstance(config.key_instance, config.KeyConfig)
fake_save_manager.add_saveable.assert_any_call(
'command-history', unittest.mock.ANY, unittest.mock.ANY)
fake_save_manager.add_saveable.assert_any_call( fake_save_manager.add_saveable.assert_any_call(
'state-config', unittest.mock.ANY) 'state-config', unittest.mock.ANY)
fake_save_manager.add_saveable.assert_any_call( fake_save_manager.add_saveable.assert_any_call(

View File

@ -277,7 +277,6 @@ def init_patch(qapp, fake_save_manager, config_tmpdir, data_tmpdir,
config_stub): config_stub):
yield yield
objreg.delete('state-config') objreg.delete('state-config')
objreg.delete('command-history')
def test_init(init_patch, config_tmpdir): def test_init(init_patch, config_tmpdir):

View File

@ -20,9 +20,12 @@
"""Tests for misc.cmdhistory.History.""" """Tests for misc.cmdhistory.History."""
import unittest.mock
import pytest import pytest
from qutebrowser.misc import cmdhistory from qutebrowser.misc import cmdhistory
from qutebrowser.utils import objreg
HISTORY = ['first', 'second', 'third', 'fourth', 'fifth'] HISTORY = ['first', 'second', 'third', 'fourth', 'fifth']
@ -167,3 +170,15 @@ def test_append_double(hist):
hist.append('fifth') hist.append('fifth')
# assert that the new 'fifth' is not added # assert that the new 'fifth' is not added
assert hist.history[-2:] == ['fourth', 'fifth'] assert hist.history[-2:] == ['fourth', 'fifth']
@pytest.fixture
def init_patch():
yield
objreg.delete('command-history')
def test_init(init_patch, fake_save_manager, data_tmpdir, config_stub):
cmdhistory.init()
fake_save_manager.add_saveable.assert_any_call(
'command-history', unittest.mock.ANY, unittest.mock.ANY)