Update test_stylesheet

This commit is contained in:
Florian Bruhin 2017-07-02 15:21:25 +02:00
parent a5c8a52dd5
commit 81d6406e14
2 changed files with 14 additions and 30 deletions

View File

@ -30,7 +30,7 @@ from PyQt5.QtNetwork import (QNetworkRequest, QAbstractNetworkCache,
from PyQt5.QtWidgets import QCommonStyle, QLineEdit, QWidget, QTabBar from PyQt5.QtWidgets import QCommonStyle, QLineEdit, QWidget, QTabBar
from qutebrowser.browser import browsertab, history from qutebrowser.browser import browsertab, history
from qutebrowser.config import configexc from qutebrowser.config import configexc, configdata
from qutebrowser.utils import usertypes, utils from qutebrowser.utils import usertypes, utils
from qutebrowser.mainwindow import mainwindow from qutebrowser.mainwindow import mainwindow
@ -425,6 +425,8 @@ class ConfigStub(QObject):
def __init__(self, parent=None): def __init__(self, parent=None):
super().__init__(parent) super().__init__(parent)
if configdata.DATA is None:
configdata.init()
self.data = {} self.data = {}
self.val = None self.val = None

View File

@ -22,30 +22,14 @@ import logging
import pytest import pytest
from PyQt5.QtCore import QObject from PyQt5.QtCore import QObject
from PyQt5.QtGui import QColor
from qutebrowser.config import style from qutebrowser.config import style
@pytest.mark.parametrize('template, expected', [ def test_get_stylesheet(config_stub):
("{{ color['completion.bg'] }}", "black"), config_stub.val.colors.completion.bg = 'magenta'
("{{ color['completion.fg'] }}", "red"), rendered = style.get_stylesheet("{{ conf.colors.completion.bg }}")
("{{ font['completion'] }}", "foo"), assert rendered == 'magenta'
("{{ config.get('foo', 'bar') }}", "baz"),
])
def test_get_stylesheet(config_stub, template, expected):
config_stub.data = {
'colors': {
'completion.bg': 'black',
'completion.fg': 'red',
},
'fonts': {
'completion': 'foo',
},
'foo': {'bar': 'baz'},
}
rendered = style.get_stylesheet(template)
assert rendered == expected
class Obj(QObject): class Obj(QObject):
@ -61,27 +45,25 @@ class Obj(QObject):
@pytest.mark.parametrize('delete', [True, False]) @pytest.mark.parametrize('delete', [True, False])
def test_set_register_stylesheet(delete, qtbot, config_stub, caplog): def test_set_register_stylesheet(delete, qtbot, config_stub, caplog):
config_stub.data = {'fonts': {'foo': 'bar'}, 'colors': {}} config_stub.val.colors.completion.fg = 'magenta'
obj = Obj("{{ font['foo'] }}") obj = Obj("{{ conf.colors.completion.fg }}")
with caplog.at_level(9): # VDEBUG with caplog.at_level(9): # VDEBUG
style.set_register_stylesheet(obj) style.set_register_stylesheet(obj)
assert len(caplog.records) == 1 assert len(caplog.records) == 1
assert caplog.records[0].message == 'stylesheet for Obj: bar' assert caplog.records[0].message == 'stylesheet for Obj: magenta'
assert obj.rendered_stylesheet == 'bar' assert obj.rendered_stylesheet == 'magenta'
if delete: if delete:
with qtbot.waitSignal(obj.destroyed): with qtbot.waitSignal(obj.destroyed):
obj.deleteLater() obj.deleteLater()
config_stub.data = {'fonts': {'foo': 'baz'}, 'colors': {}} config_stub.val.colors.completion.fg = 'yellow'
style.get_stylesheet.cache_clear()
config_stub.changed.emit('fonts', 'foo')
if delete: if delete:
expected = 'bar' expected = 'magenta'
else: else:
expected = 'baz' expected = 'yellow'
assert obj.rendered_stylesheet == expected assert obj.rendered_stylesheet == expected