diff options
author | Lars Wirzenius <liw@liw.fi> | 2011-01-30 19:07:14 +0000 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2011-01-30 19:07:14 +0000 |
commit | 5ddae1fc138cdcc2974a5b67686f554ee7caa87f (patch) | |
tree | 3d07d9d273252bbe3469e4e863ccbe8bc8fec2b8 | |
parent | c70818c596b752d3e807736723a1cf64353ccbaf (diff) | |
download | python-ttystatus-5ddae1fc138cdcc2974a5b67686f554ee7caa87f.tar.gz |
Implement enable and disable output.
-rw-r--r-- | ttystatus/messager.py | 12 | ||||
-rw-r--r-- | ttystatus/messager_tests.py | 12 | ||||
-rw-r--r-- | ttystatus/status.py | 3 | ||||
-rw-r--r-- | ttystatus/status_tests.py | 21 |
4 files changed, 39 insertions, 9 deletions
diff --git a/ttystatus/messager.py b/ttystatus/messager.py index c322590..21ea843 100644 --- a/ttystatus/messager.py +++ b/ttystatus/messager.py @@ -27,6 +27,7 @@ class Messager(object): '''Write messages to the terminal.''' def __init__(self, output=None, period=None): + self._enabled = True self.output = output or sys.stderr self._period = 1.0 if period is None else period self._last_msg = '' # What did we write last? @@ -72,7 +73,7 @@ class Messager(object): def _raw_write(self, string): '''Write raw data if output is terminal.''' - if self.output.isatty(): + if self._enabled and self.output.isatty(): try: self.output.write(string) except IOError: # pragma: no cover @@ -128,3 +129,12 @@ class Messager(object): '''Finalize output.''' self._overwrite(self._cached_msg) self._raw_write('\n') + + def disable(self): + '''Disable all output.''' + self._enabled = False + + def enable(self): + '''Enable output to happen.''' + self._enabled = True + diff --git a/ttystatus/messager_tests.py b/ttystatus/messager_tests.py index b57fbaf..1356ae3 100644 --- a/ttystatus/messager_tests.py +++ b/ttystatus/messager_tests.py @@ -104,3 +104,15 @@ class MessagerTests(unittest.TestCase): self.messager.set_width(4) self.messager.write('foobar') self.assertEqual(self.output.getvalue(), 'foo') + + def test_disables_output(self): + self.messager.disable() + self.messager.write('foo') + self.assertEqual(self.output.getvalue(), '') + + def test_enables_output(self): + self.messager.disable() + self.messager.enable() + self.messager.write('foo') + self.assertEqual(self.output.getvalue(), 'foo') + diff --git a/ttystatus/status.py b/ttystatus/status.py index 81354f9..7725e83 100644 --- a/ttystatus/status.py +++ b/ttystatus/status.py @@ -88,6 +88,9 @@ class TerminalStatus(object): def disable(self): '''Disable all output.''' + self._m.disable() def enable(self): '''Enable output if it has been disabled.''' + self._m.enable() + diff --git a/ttystatus/status_tests.py b/ttystatus/status_tests.py index 78a7f44..b2b1b04 100644 --- a/ttystatus/status_tests.py +++ b/ttystatus/status_tests.py @@ -26,6 +26,7 @@ class DummyMessager(object): def __init__(self): self.written = StringIO.StringIO() + self.enabled = True def clear(self): pass @@ -41,6 +42,12 @@ class DummyMessager(object): def finish(self): pass + + def enable(self): + self.enabled = True + + def disable(self): + self.enabled = False class TerminalStatusTests(unittest.TestCase): @@ -113,14 +120,12 @@ class TerminalStatusTests(unittest.TestCase): def test_has_finish_method(self): self.assertEqual(self.ts.finish(), None) - def test_writes_output_by_default(self): - self.ts.add(ttystatus.String('foo')) - self.ts['foo'] = 'bar' - self.assertEqual(self.ts._m.written.getvalue(), 'bar') + def test_disable_calls_messager_disable(self): + self.ts.disable() + self.assertFalse(self.ts._m.enabled) - def test_disables_output(self): - self.ts.add(ttystatus.String('foo')) + def test_enable_calls_messager_enable(self): self.ts.disable() - self.ts['foo'] = 'bar' - self.assertEqual(self.ts._m.written.getvalue(), '') + self.ts.enable() + self.assert_(self.ts._m.enabled) |