[tor-commits] [stem/master] Couple fixes for prior controller changes

atagar at torproject.org atagar at torproject.org
Tue Jun 12 15:54:16 UTC 2012


commit b8f4d3c75f0d4c085dcba02f47f4808c301e235a
Author: Damian Johnson <atagar at torproject.org>
Date:   Tue Jun 12 08:49:01 2012 -0700

    Couple fixes for prior controller changes
    
    Two minor bugs...
    - our version parsing was broken for versions without a space in them
    - we were quoting the runner password constant rather than using it, breaking
      the RUN_PASSWORD target
    
    Also some minor whitespace tweaks and moving imports to the start of the file
    (we're only doing method level imports if doing otherwise would break things).
    We might change our import style later to resolve our circular imports, but
    that'll be a project-wide change.
---
 stem/control.py                  |   13 ++++++++-----
 test/integ/control/controller.py |   17 +++++++++--------
 2 files changed, 17 insertions(+), 13 deletions(-)

diff --git a/stem/control.py b/stem/control.py
index 9ceb630..f20451b 100644
--- a/stem/control.py
+++ b/stem/control.py
@@ -35,8 +35,10 @@ import time
 import Queue
 import threading
 
+import stem.connection
 import stem.response
 import stem.socket
+import stem.version
 import stem.util.log as log
 
 # state changes a control socket can have
@@ -492,9 +494,11 @@ class Controller(BaseController):
       * ValueError if unable to parse the version
     """
     
-    import stem.version
-    raw_str = self.get_info("version")
-    version_str = raw_str[:raw_str.find(' ')]
+    version_str = self.get_info("version")
+    
+    if " " in version_str:
+      version_str = version_str[:version_str.find(' ')]
+    
     return stem.version.Version(version_str)
   
   def authenticate(self, *args, **kwargs):
@@ -506,7 +510,6 @@ class Controller(BaseController):
     :raises: see :func:`stem.connection.authenticate`
     """
     
-    import stem.connection
     stem.connection.authenticate(self, *args, **kwargs)
   
   def protocolinfo(self):
@@ -520,5 +523,5 @@ class Controller(BaseController):
       * :class:`stem.socket.SocketError` if problems arise in establishing or using the socket
     """
     
-    import stem.connection
     return stem.connection.get_protocolinfo(self)
+
diff --git a/test/integ/control/controller.py b/test/integ/control/controller.py
index 4ebce5b..55a86ec 100644
--- a/test/integ/control/controller.py
+++ b/test/integ/control/controller.py
@@ -74,7 +74,7 @@ class TestController(unittest.TestCase):
       
       self.assertEqual({}, controller.get_info([]))
       self.assertEqual({}, controller.get_info([], {}))
-      
+  
   def test_get_version(self):
     """
     Test that the convenient method get_version() works.
@@ -85,7 +85,7 @@ class TestController(unittest.TestCase):
       version = controller.get_version()
       self.assertTrue(isinstance(version, stem.version.Version))
       self.assertEqual(version, runner.get_tor_version())
-      
+  
   def test_authenticate(self):
     """
     Test that the convenient method authenticate() works.
@@ -93,9 +93,9 @@ class TestController(unittest.TestCase):
     
     runner = test.runner.get_runner()
     with runner.get_tor_controller(False) as controller:
-      controller.authenticate("test.runner.CONTROL_PASSWORD")
+      controller.authenticate(test.runner.CONTROL_PASSWORD)
       test.runner.exercise_controller(self, controller)
-      
+  
   def test_protocolinfo(self):
     """
     Test that the convenient method protocolinfo() works.
@@ -104,7 +104,6 @@ class TestController(unittest.TestCase):
     runner = test.runner.get_runner()
     
     with runner.get_tor_controller(False) as controller:
-      
       protocolinfo = controller.protocolinfo()
       self.assertTrue(isinstance(protocolinfo, stem.response.protocolinfo.ProtocolInfoResponse))
       
@@ -115,13 +114,15 @@ class TestController(unittest.TestCase):
       
       if test.runner.Torrc.COOKIE in tor_options:
         auth_methods.append(stem.response.protocolinfo.AuthMethod.COOKIE)
+        
         if tor_version.meets_requirements(stem.version.Requirement.AUTH_SAFECOOKIE):
           auth_methods.append(stem.response.protocolinfo.AuthMethod.SAFECOOKIE)
-          
+      
       if test.runner.Torrc.PASSWORD in tor_options:
         auth_methods.append(stem.response.protocolinfo.AuthMethod.PASSWORD)
-        
+      
       if not auth_methods:
         auth_methods.append(stem.response.protocolinfo.AuthMethod.NONE)
-        
+      
       self.assertEqual(tuple(auth_methods), protocolinfo.auth_methods)
+



More information about the tor-commits mailing list