[tor-commits] [stem/master] Returning unicode from stem.util.system.call()

atagar at torproject.org atagar at torproject.org
Sat Feb 2 18:20:49 UTC 2013


commit 7d1e8a4ffc08ca3b5e7fb34d3b025ec3c8755497
Author: Damian Johnson <atagar at torproject.org>
Date:   Sun Jan 27 19:08:40 2013 -0800

    Returning unicode from stem.util.system.call()
    
    The call() method is the basic call for shelling out and, like tor's stdout
    earlier, its output was ASCII bytes. This is fine in python 2.x, but causes
    problems for python 3.x. Both are fine with this being unicode output so going
    with that.
    
    ======================================================================
    ERROR: test_get_cwd
    ----------------------------------------------------------------------
    Traceback:
      File "/home/atagar/Desktop/stem/test/data/python3/test/integ/util/system.py", line 334, in test_get_cwd
        self.assertEquals(None, stem.util.system.get_cwd(99999))
      File "/home/atagar/Desktop/stem/test/data/python3/stem/util/system.py", line 528, in get_cwd
        elif results[0].endswith("No such process"):
    TypeError: expected an object with the buffer interface
---
 stem/util/system.py      |    4 ++--
 test/unit/util/system.py |    2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/stem/util/system.py b/stem/util/system.py
index 4f9ba29..f61c3d8 100644
--- a/stem/util/system.py
+++ b/stem/util/system.py
@@ -209,7 +209,7 @@ def is_running(command):
       command_listing = call(secondary_resolver)
 
     if command_listing:
-      command_listing = map(str.strip, command_listing)
+      command_listing = map(unicode.strip, command_listing)
       return command in command_listing
 
   return None
@@ -678,7 +678,7 @@ def call(command, default = UNDEFINED):
       log.trace(trace_prefix + ", stderr:\n%s" % stderr)
 
     if stdout:
-      return stdout.splitlines()
+      return stdout.decode("utf-8", "replace").splitlines()
     else:
       return []
   except OSError, exc:
diff --git a/test/unit/util/system.py b/test/unit/util/system.py
index 5bdbc86..4a3473c 100644
--- a/test/unit/util/system.py
+++ b/test/unit/util/system.py
@@ -110,7 +110,7 @@ class TestSystem(unittest.TestCase):
     """
 
     # mock response with a linux and bsd resolver
-    running_commands = ["irssi", "moc", "tor", "ps", "  firefox  "]
+    running_commands = [u"irssi", u"moc", u"tor", u"ps", u"  firefox  "]
 
     for ps_cmd in (system.IS_RUNNING_PS_LINUX, system.IS_RUNNING_PS_BSD):
       mocking.mock(system.call, mock_call(ps_cmd, running_commands))





More information about the tor-commits mailing list