[tor-commits] [nyx/master] Draw helper for status message

atagar at torproject.org atagar at torproject.org
Mon Apr 18 20:23:16 UTC 2016


commit 68cb4ab6a854d41aab575c5f0ac934aa263b6444
Author: Damian Johnson <atagar at torproject.org>
Date:   Sun Apr 17 12:52:52 2016 -0700

    Draw helper for status message
    
    Just a small helper so this can be uniform with the rest.
---
 nyx/panel/header.py  | 24 ++++++++++++++++--------
 test/panel/header.py | 10 ++++++++++
 2 files changed, 26 insertions(+), 8 deletions(-)

diff --git a/nyx/panel/header.py b/nyx/panel/header.py
index 84b4b38..115bd3b 100644
--- a/nyx/panel/header.py
+++ b/nyx/panel/header.py
@@ -56,7 +56,7 @@ class HeaderPanel(nyx.panel.Panel, threading.Thread):
     self._reported_inactive = False
 
     self._message = None
-    self._message_attr = None
+    self._message_attr = []
 
     tor_controller().add_status_listener(self.reset_listener)
 
@@ -197,13 +197,7 @@ class HeaderPanel(nyx.panel.Panel, threading.Thread):
         _draw_fingerprint_and_fd_usage(subwindow, 0, 3, left_width, vals)
         _draw_flags(subwindow, 0, 4, vals.flags)
 
-    if self._message:
-      subwindow.addstr(0, subwindow.height - 1, self._message, *self._message_attr)
-    elif not self.is_paused():
-      controller = nyx.controller.get_controller()
-      subwindow.addstr(0, subwindow.height - 1, 'page %i / %i - m: menu, p: pause, h: page help, q: quit' % (controller.get_page() + 1, controller.get_page_count()))
-    else:
-      subwindow.addstr(0, subwindow.height - 1, 'Paused', HIGHLIGHT)
+    _draw_status(subwindow, 0, subwindow.height - 1, self.is_paused(), self._message, *self._message_attr)
 
   def run(self):
     """
@@ -544,3 +538,17 @@ def _draw_newnym_option(subwindow, x, y, newnym_wait):
   else:
     plural = 's' if newnym_wait > 1 else ''
     subwindow.addstr(x, y, 'building circuits, available again in %i second%s' % (newnym_wait, plural))
+
+
+def _draw_status(subwindow, x, y, is_paused, message, *attr):
+  """
+  Provides general usage information or a custom message.
+  """
+
+  if message:
+    subwindow.addstr(x, y, message, *attr)
+  elif not is_paused:
+    controller = nyx.controller.get_controller()
+    subwindow.addstr(x, y, 'page %i / %i - m: menu, p: pause, h: page help, q: quit' % (controller.get_page() + 1, controller.get_page_count()))
+  else:
+    subwindow.addstr(x, y, 'Paused', HIGHLIGHT)
diff --git a/test/panel/header.py b/test/panel/header.py
index e601f00..58f700c 100644
--- a/test/panel/header.py
+++ b/test/panel/header.py
@@ -275,3 +275,13 @@ class TestHeader(unittest.TestCase):
     self.assertEqual("press 'n' for a new identity", test.render(nyx.panel.header._draw_newnym_option, 0, 0, 0).content)
     self.assertEqual('building circuits, available again in 1 second', test.render(nyx.panel.header._draw_newnym_option, 0, 0, 1).content)
     self.assertEqual('building circuits, available again in 5 seconds', test.render(nyx.panel.header._draw_newnym_option, 0, 0, 5).content)
+
+  @require_curses
+  @patch('nyx.controller.get_controller')
+  def test_draw_status(self, nyx_controller_mock):
+    nyx_controller_mock().get_page.return_value = 1
+    nyx_controller_mock().get_page_count.return_value = 4
+
+    self.assertEqual('page 2 / 4 - m: menu, p: pause, h: page help, q: quit', test.render(nyx.panel.header._draw_status, 0, 0, False, None).content)
+    self.assertEqual('Paused', test.render(nyx.panel.header._draw_status, 0, 0, True, None).content)
+    self.assertEqual('pepperjack is wonderful!', test.render(nyx.panel.header._draw_status, 0, 0, False, 'pepperjack is wonderful!').content)





More information about the tor-commits mailing list