summaryrefslogtreecommitdiff
path: root/ttystatus/fmt_tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'ttystatus/fmt_tests.py')
-rw-r--r--ttystatus/fmt_tests.py44
1 files changed, 43 insertions, 1 deletions
diff --git a/ttystatus/fmt_tests.py b/ttystatus/fmt_tests.py
index 1848114..af39948 100644
--- a/ttystatus/fmt_tests.py
+++ b/ttystatus/fmt_tests.py
@@ -23,7 +23,49 @@ class FormatTests(unittest.TestCase):
def test_knows_widgets(self):
self.assertEqual(type(ttystatus.fmt.widgets), list)
+ self.assert_(len(ttystatus.fmt.widgets) > 0)
for widget in ttystatus.fmt.widgets:
- self.assert_(isinstance(widget, ttystatus.Widget))
+ self.assert_(issubclass(widget, ttystatus.Widget))
self.assertNotEqual(widget, ttystatus.Widget)
+ def test_parses_string_without_widgets(self):
+ x = ttystatus.fmt.parse('hello, world')
+ self.assertEqual(len(x), 1)
+ self.assertEqual(type(x[0]), ttystatus.Literal)
+ self.assertEqual(str(x[0]), 'hello, world')
+
+ def test_parses_escaped_pecent(self):
+ x = ttystatus.fmt.parse('%%')
+ self.assertEqual(len(x), 1)
+ self.assertEqual(type(x[0]), ttystatus.Literal)
+ self.assertEqual(str(x[0]), '%')
+
+ def test_parses_parameterless_widget(self):
+ x = ttystatus.fmt.parse('%ElapsedTime()')
+
+ self.assertEqual(len(x), 1)
+ self.assertEqual(type(x[0]), ttystatus.ElapsedTime)
+
+ def test_parses_widget_with_one_parameter(self):
+ x = ttystatus.fmt.parse('%String(name)')
+
+ self.assertEqual(len(x), 1)
+
+ self.assertEqual(type(x[0]), ttystatus.String)
+ self.assertEqual(x[0]._key, 'name')
+
+ def test_parses_some_widgets(self):
+ x = ttystatus.fmt.parse('hello, %String(name): %ElapsedTime()')
+
+ self.assertEqual(len(x), 4)
+
+ self.assertEqual(type(x[0]), ttystatus.Literal)
+ self.assertEqual(str(x[0]), 'hello, ')
+
+ self.assertEqual(type(x[1]), ttystatus.String)
+
+ self.assertEqual(type(x[2]), ttystatus.Literal)
+ self.assertEqual(str(x[2]), ': ')
+
+ self.assertEqual(type(x[3]), ttystatus.ElapsedTime)
+