[core/theme] Add support for default -> prefix/suffix in themes

Themes can now define default prefix and suffix strings.

see #23
This commit is contained in:
Tobi-wan Kenobi 2016-12-08 11:52:47 +01:00
parent 64f5fc100e
commit 394ef61760
5 changed files with 45 additions and 15 deletions

View file

@ -54,7 +54,7 @@ class TestI3BarOutput(unittest.TestCase):
self.output.draw(self.someWidget)
result = json.loads(stdout.getvalue())[0]
self.assertEquals(result["full_text"], "{}{}".format(
self.theme.prefix(), self.someWidget.full_text())
self.theme.prefix(self.someWidget), self.someWidget.full_text())
)
@mock.patch("sys.stdout", new_callable=StringIO)
@ -63,7 +63,7 @@ class TestI3BarOutput(unittest.TestCase):
self.output.draw(self.someWidget)
result = json.loads(stdout.getvalue())[0]
self.assertEquals(result["full_text"], "{}{}".format(
self.someWidget.full_text(), self.theme.suffix())
self.someWidget.full_text(), self.theme.suffix(self.someWidget))
)
@mock.patch("sys.stdout", new_callable=StringIO)
@ -73,7 +73,7 @@ class TestI3BarOutput(unittest.TestCase):
self.output.draw(self.someWidget)
result = json.loads(stdout.getvalue())[0]
self.assertEquals(result["full_text"], "{}{}{}".format(
self.theme.prefix(), self.someWidget.full_text(), self.theme.suffix())
self.theme.prefix(self.someWidget), self.someWidget.full_text(), self.theme.suffix(self.someWidget))
)
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4

View file

@ -3,15 +3,18 @@
import unittest
from bumblebee.theme import Theme
from bumblebee.error import ThemeLoadError
from tests.util import MockWidget
class TestTheme(unittest.TestCase):
def setUp(self):
self.nonexistentThemeName = "no-such-theme"
self.invalidThemeName = "invalid"
self.validThemeName = "solarized-powerline"
self.someWidget = MockWidget("foo")
def test_load_valid_theme(self):
try:
Theme("solarized-powerline")
Theme(self.validThemeName)
except Exception as e:
self.fail(e)
@ -23,4 +26,14 @@ class TestTheme(unittest.TestCase):
with self.assertRaises(ThemeLoadError):
Theme(self.invalidThemeName)
def test_prefix(self):
theme = Theme(self.validThemeName)
theme.loads('{"defaults": { "prefix": "test" }}')
self.assertEquals(theme.prefix(self.someWidget), "test")
def test_suffix(self):
theme = Theme(self.validThemeName)
theme.loads('{"defaults": { "suffix": "test" }}')
self.assertEquals(theme.suffix(self.someWidget), "test")
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4

View file

@ -40,10 +40,10 @@ class MockTheme(object):
def set_suffix(self, value):
self._suffix = value
def prefix(self):
def prefix(self, widget):
return self._prefix
def suffix(self):
def suffix(self, widget):
return self._suffix
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4