summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2010-06-06 15:02:05 +1200
committerLars Wirzenius <liw@liw.fi>2010-06-06 15:02:05 +1200
commitb180061a5f74e156c0667d88ed664c1ede42fda5 (patch)
treefa9b26e7dd70a4cbc4e3bb1d41db2782a8de96f1
parentaf9819a9c30af45ce0590c0d3c44c43cad7738a1 (diff)
downloadpython-ttystatus-b180061a5f74e156c0667d88ed664c1ede42fda5.tar.gz
Add TerminalStatus.increase.
-rw-r--r--ttystatus/status.py4
-rw-r--r--ttystatus/status_tests.py6
2 files changed, 10 insertions, 0 deletions
diff --git a/ttystatus/status.py b/ttystatus/status.py
index 3584499..5a4e0fe 100644
--- a/ttystatus/status.py
+++ b/ttystatus/status.py
@@ -52,6 +52,10 @@ class TerminalStatus(object):
w.update(self, 999)
self._m.write(''.join(str(w) for w in self._widgets))
+ def increase(self, key, delta):
+ '''Increase value for a key by a given amount.'''
+ self[key] = (self[key] or 0) + delta
+
def notify(self, msg):
'''Show a message.'''
self._m.notify(msg)
diff --git a/ttystatus/status_tests.py b/ttystatus/status_tests.py
index 5640680..5b4cada 100644
--- a/ttystatus/status_tests.py
+++ b/ttystatus/status_tests.py
@@ -65,6 +65,12 @@ class TerminalStatusTests(unittest.TestCase):
self.assertEqual(str(w), '')
self.ts['foo'] = 'bar'
self.assertEqual(str(w), 'bar')
+
+ def test_increases_value(self):
+ self.ts['foo'] = 10
+ self.assertEqual(self.ts['foo'], 10)
+ self.ts.increase('foo', 10)
+ self.assertEqual(self.ts['foo'], 20)
def test_has_notify_method(self):
self.assertEqual(self.ts.notify('foo'), None)