[core/theme] Add prefix/postfix methods
Add a way to specify prefix and postfix strings to the full text of a widget's text. Currently, the theme does not fill those yet. see #23
This commit is contained in:
parent
e6666becb3
commit
64f5fc100e
6 changed files with 73 additions and 6 deletions
|
@ -10,10 +10,12 @@ except ImportError:
|
|||
|
||||
from bumblebee.output import I3BarOutput
|
||||
from tests.util import MockWidget
|
||||
from tests.util import MockTheme
|
||||
|
||||
class TestI3BarOutput(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.output = I3BarOutput()
|
||||
self.theme = MockTheme()
|
||||
self.output = I3BarOutput(self.theme)
|
||||
self.expectedStart = json.dumps({"version": 1, "click_events": True}) + "[\n"
|
||||
self.expectedStop = "]\n"
|
||||
self.someWidget = MockWidget("foo bar baz")
|
||||
|
@ -46,5 +48,32 @@ class TestI3BarOutput(unittest.TestCase):
|
|||
self.output.flush()
|
||||
self.assertEquals(",\n", stdout.getvalue())
|
||||
|
||||
@mock.patch("sys.stdout", new_callable=StringIO)
|
||||
def test_prefix(self, stdout):
|
||||
self.theme.set_prefix(" - ")
|
||||
self.output.draw(self.someWidget)
|
||||
result = json.loads(stdout.getvalue())[0]
|
||||
self.assertEquals(result["full_text"], "{}{}".format(
|
||||
self.theme.prefix(), self.someWidget.full_text())
|
||||
)
|
||||
|
||||
@mock.patch("sys.stdout", new_callable=StringIO)
|
||||
def test_suffix(self, stdout):
|
||||
self.theme.set_suffix(" - ")
|
||||
self.output.draw(self.someWidget)
|
||||
result = json.loads(stdout.getvalue())[0]
|
||||
self.assertEquals(result["full_text"], "{}{}".format(
|
||||
self.someWidget.full_text(), self.theme.suffix())
|
||||
)
|
||||
|
||||
@mock.patch("sys.stdout", new_callable=StringIO)
|
||||
def test_bothfix(self, stdout):
|
||||
self.theme.set_suffix(" - ")
|
||||
self.theme.set_prefix(" * ")
|
||||
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())
|
||||
)
|
||||
|
||||
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
|
||||
|
|
|
@ -29,4 +29,21 @@ class MockWidget(object):
|
|||
def full_text(self):
|
||||
return self._text
|
||||
|
||||
class MockTheme(object):
|
||||
def __init__(self):
|
||||
self._prefix = None
|
||||
self._suffix = None
|
||||
|
||||
def set_prefix(self, value):
|
||||
self._prefix = value
|
||||
|
||||
def set_suffix(self, value):
|
||||
self._suffix = value
|
||||
|
||||
def prefix(self):
|
||||
return self._prefix
|
||||
|
||||
def suffix(self):
|
||||
return self._suffix
|
||||
|
||||
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue