[tor-commits] [stem/master] Tests requiring man command can't work on bsd

atagar at torproject.org atagar at torproject.org
Mon Sep 4 20:29:23 UTC 2017


commit 336a2a8680964db55610cd63b7b0dc292dfc71d1
Author: Damian Johnson <atagar at torproject.org>
Date:   Mon Sep 4 13:24:15 2017 -0700

    Tests requiring man command can't work on bsd
    
    Several tests skipped on OSX need to also be skipped on BSD. There were also
    some other newer tests that probably aren't running on OSX.
    
      ======================================================================
      ERROR: test_saving_manual_as_config
      ----------------------------------------------------------------------
      Traceback (most recent call last):
        File "/tmp/stem/test/require.py", line 58, in wrapped
          return func(self, *args, **kwargs)
        File "/tmp/stem/test/unit/manual.py", line 205, in test_saving_manual_as_config
          manual = stem.manual.Manual.from_man(EXAMPLE_MAN_PATH)
        File "/tmp/stem/stem/manual.py", line 495, in from_man
          categories, config_options = _get_categories(man_output), OrderedDict()
        File "/tmp/stem/stem/manual.py", line 666, in _get_categories
          if lines[-1] == '':
      IndexError: list index out of range
    
      ----------------------------------------------------------------------
---
 stem/manual.py      |  2 +-
 test/unit/manual.py | 17 +++++++++++++----
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/stem/manual.py b/stem/manual.py
index 6e4869cf..3440b36d 100644
--- a/stem/manual.py
+++ b/stem/manual.py
@@ -663,7 +663,7 @@ def _get_categories(content):
 
     if line and not line.startswith(' '):
       if category:
-        if lines[-1] == '':
+        if lines and lines[-1] == '':
           lines = lines[:-1]  # sections end with an extra empty line
 
         categories[category] = lines
diff --git a/test/unit/manual.py b/test/unit/manual.py
index b7e0adfc..70e28aaf 100644
--- a/test/unit/manual.py
+++ b/test/unit/manual.py
@@ -153,8 +153,8 @@ class TestManual(unittest.TestCase):
     expand our example (or add another).
     """
 
-    if stem.util.system.is_mac():
-      self.skipTest('(man lacks --encoding arg on OSX, #18660)')
+    if stem.util.system.is_mac() or stem.util.system.is_bsd():
+      self.skipTest('(man lacks --encoding arg on OSX and BSD, #18660)')
       return
 
     manual = stem.manual.Manual.from_man(EXAMPLE_MAN_PATH)
@@ -174,8 +174,8 @@ class TestManual(unittest.TestCase):
     options. Unlike most other tests this doesn't require network access.
     """
 
-    if stem.util.system.is_mac():
-      self.skipTest('(man lacks --encoding arg on OSX, #18660)')
+    if stem.util.system.is_mac() or stem.util.system.is_bsd():
+      self.skipTest('(man lacks --encoding arg on OSX and BSD, #18660)')
       return
 
     manual = stem.manual.Manual.from_man(UNKNOWN_OPTIONS_MAN_PATH)
@@ -202,6 +202,10 @@ class TestManual(unittest.TestCase):
     Check that we can save and reload manuals as a config.
     """
 
+    if stem.util.system.is_mac() or stem.util.system.is_bsd():
+      self.skipTest('(man lacks --encoding arg on OSX and BSD, #18660)')
+      return
+
     manual = stem.manual.Manual.from_man(EXAMPLE_MAN_PATH)
 
     with tempfile.NamedTemporaryFile(prefix = 'saved_test_manual.') as tmp:
@@ -209,11 +213,16 @@ class TestManual(unittest.TestCase):
       loaded_manual = stem.manual.Manual.from_cache(tmp.name)
       self.assertEqual(manual, loaded_manual)
 
+  @test.require.command('man')
   def test_saving_manual_as_sqlite(self):
     """
     Check that we can save and reload manuals as sqlite.
     """
 
+    if stem.util.system.is_mac() or stem.util.system.is_bsd():
+      self.skipTest('(man lacks --encoding arg on OSX and BSD, #18660)')
+      return
+
     manual = stem.manual.Manual.from_man(EXAMPLE_MAN_PATH)
 
     with tempfile.NamedTemporaryFile(prefix = 'saved_test_manual.', suffix = '.sqlite') as tmp:



More information about the tor-commits mailing list