diff options
author | Lars Wirzenius <liw@liw.fi> | 2011-08-31 16:16:04 +0100 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2011-08-31 16:16:04 +0100 |
commit | 266f4c381e1327d1ec8904f30f4b8e2ec6fded04 (patch) | |
tree | caf40473249689dc2902f7a6874b17a0ad3719d4 /ttystatus | |
parent | 1ca3ac3c3b69cac571a7d7a93bf51aea83eb273a (diff) | |
download | python-ttystatus-266f4c381e1327d1ec8904f30f4b8e2ec6fded04.tar.gz |
Add ttystatus.TerminalStatus.format method.
Diffstat (limited to 'ttystatus')
-rw-r--r-- | ttystatus/status.py | 5 | ||||
-rw-r--r-- | ttystatus/status_tests.py | 6 |
2 files changed, 11 insertions, 0 deletions
diff --git a/ttystatus/status.py b/ttystatus/status.py index b5d743a..722d69f 100644 --- a/ttystatus/status.py +++ b/ttystatus/status.py @@ -44,6 +44,11 @@ class TerminalStatus(object): else: for key in widget.interesting_keys: self._interests[key] = self._interests.get(key, []) + [widget] + + def format(self, format_string): + '''Add new widgets based on format string.''' + for widget in ttystatus.fmt.parse(format_string): + self.add(widget) def clear(self): '''Remove all widgets.''' diff --git a/ttystatus/status_tests.py b/ttystatus/status_tests.py index 9e6d0ac..3583028 100644 --- a/ttystatus/status_tests.py +++ b/ttystatus/status_tests.py @@ -78,6 +78,12 @@ class TerminalStatusTests(unittest.TestCase): w = W() self.ts.add(w) self.assert_(w in self.ts._wildcards) + + def test_adds_widgets_from_format_string(self): + self.ts.format('hello, %String(name)') + self.assertEqual(len(self.ts._widgets), 2) + self.assertEqual(type(self.ts._widgets[0]), ttystatus.Literal) + self.assertEqual(type(self.ts._widgets[1]), ttystatus.String) def test_removes_all_widgets(self): self.ts.add(ttystatus.Literal('foo')) |