[tor-commits] [nyx/master] Test _draw_title()

atagar at torproject.org atagar at torproject.org
Sun Jul 10 19:51:05 UTC 2016


commit e59670d68f934ab1d762ee100888ff2fa6986f49
Author: Damian Johnson <atagar at torproject.org>
Date:   Sat Jul 9 15:29:24 2016 -0700

    Test _draw_title()
---
 nyx/panel/connection.py  | 30 +++++++++++++++---------------
 test/panel/__init__.py   |  1 +
 test/panel/connection.py | 44 ++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 60 insertions(+), 15 deletions(-)

diff --git a/nyx/panel/connection.py b/nyx/panel/connection.py
index cee63e2..87930a6 100644
--- a/nyx/panel/connection.py
+++ b/nyx/panel/connection.py
@@ -418,7 +418,7 @@ class ConnectionPanel(nyx.panel.DaemonPanel):
     is_scrollbar_visible = len(lines) > subwindow.height - details_offset - 1
     scroll_offset = 2 if is_scrollbar_visible else 0
 
-    self._draw_title(subwindow, entries, self._show_details)
+    _draw_title(subwindow, entries, self._show_details)
 
     if is_showing_details:
       self._draw_details(subwindow, selected, subwindow.width, is_scrollbar_visible)
@@ -433,20 +433,6 @@ class ConnectionPanel(nyx.panel.DaemonPanel):
       if y >= subwindow.height:
         break
 
-  def _draw_title(self, subwindow, entries, showing_details):
-    """
-    Panel title with the number of connections we presently have.
-    """
-
-    if showing_details:
-      subwindow.addstr(0, 0, 'Connection Details:', HIGHLIGHT)
-    elif not entries:
-      subwindow.addstr(0, 0, 'Connections:', HIGHLIGHT)
-    else:
-      counts = collections.Counter([entry.get_type() for entry in entries])
-      count_labels = ['%i %s' % (counts[category], category.lower()) for category in Category if counts[category]]
-      subwindow.addstr(0, 0, 'Connections (%s):' % ', '.join(count_labels), HIGHLIGHT)
-
   def _draw_details(self, subwindow, selected, width, is_scrollbar_visible):
     """
     Shows detailed information about the selected connection.
@@ -652,3 +638,17 @@ class ConnectionPanel(nyx.panel.DaemonPanel):
           remote_ports.append(line.connection.local_port)
 
       nyx.tracker.get_port_usage_tracker().query(local_ports, remote_ports)
+
+def _draw_title(subwindow, entries, showing_details):
+  """
+  Panel title with the number of connections we presently have.
+  """
+
+  if showing_details:
+    subwindow.addstr(0, 0, 'Connection Details:', HIGHLIGHT)
+  elif not entries:
+    subwindow.addstr(0, 0, 'Connections:', HIGHLIGHT)
+  else:
+    counts = collections.Counter([entry.get_type() for entry in entries])
+    count_labels = ['%i %s' % (counts[category], category.lower()) for category in Category if counts[category]]
+    subwindow.addstr(0, 0, 'Connections (%s):' % ', '.join(count_labels), HIGHLIGHT)
diff --git a/test/panel/__init__.py b/test/panel/__init__.py
index 8980380..f1a9d7d 100644
--- a/test/panel/__init__.py
+++ b/test/panel/__init__.py
@@ -6,4 +6,5 @@ __all__ = [
   'header',
   'graph',
   'log',
+  'connection',
 ]
diff --git a/test/panel/connection.py b/test/panel/connection.py
new file mode 100644
index 0000000..8ff08a2
--- /dev/null
+++ b/test/panel/connection.py
@@ -0,0 +1,44 @@
+"""
+Unit tests for nyx.panel.connection.
+"""
+
+import unittest
+
+import nyx.panel.connection
+import test
+
+from nyx.panel.connection import Category, Entry
+from test import require_curses
+
+
+class MockEntry(Entry):
+  def __init__(self, lines = [], entry_type = Category.INBOUND, is_private = False):
+    self._lines = lines
+    self._type = entry_type
+    self._is_private = is_private
+
+  def lines(self):
+    return self._lines
+
+  def get_type(self):
+    return self._type
+
+  def is_private(self):
+    return self._is_private
+
+
+class TestConnectionPanel(unittest.TestCase):
+  @require_curses
+  def test_draw_title(self):
+    self.assertEqual('Connection Details:', test.render(nyx.panel.connection._draw_title, [], True).content)
+    self.assertEqual('Connections:', test.render(nyx.panel.connection._draw_title, [], False).content)
+
+    entries = [
+      MockEntry(entry_type = Category.INBOUND),
+      MockEntry(entry_type = Category.INBOUND),
+      MockEntry(entry_type = Category.OUTBOUND),
+      MockEntry(entry_type = Category.INBOUND),
+      MockEntry(entry_type = Category.CONTROL),
+    ]
+
+    self.assertEqual('Connections (3 inbound, 1 outbound, 1 control):', test.render(nyx.panel.connection._draw_title, entries, False).content)





More information about the tor-commits mailing list