diff options
Diffstat (limited to 'ttystatus/fmt_tests.py')
-rw-r--r-- | ttystatus/fmt_tests.py | 44 |
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) + |