[tor-commits] [stem/master] Dropping get_* prefix from proc functions

atagar at torproject.org atagar at torproject.org
Tue Sep 2 03:55:48 UTC 2014


commit 666a831342cb1bc9311ae6e8767a10c4fd1dac5c
Author: Damian Johnson <atagar at torproject.org>
Date:   Mon Sep 1 16:49:04 2014 -0700

    Dropping get_* prefix from proc functions
    
    Just about all the proc functions started with get_*. Bad habbit from my days
    of doing java. Dropping them, with an alias for the old names for backward
    compatability.
---
 stem/control.py         |    1 +
 stem/util/proc.py       |   50 ++++++++++++++++++++++--------------
 test/integ/util/proc.py |   32 ++++++++++++------------
 test/unit/util/proc.py  |   64 +++++++++++++++++++++++------------------------
 4 files changed, 80 insertions(+), 67 deletions(-)

diff --git a/stem/control.py b/stem/control.py
index 8571a7f..7c5d7bd 100644
--- a/stem/control.py
+++ b/stem/control.py
@@ -128,6 +128,7 @@ If you're fine with allowing your script to raise exceptions then this can be mo
   BaseController - Base controller class asynchronous message handling
     |- msg - communicates with the tor process
     |- is_alive - reports if our connection to tor is open or closed
+    |- connection_time - time when we last connected or disconnected
     |- is_authenticated - checks if we're authenticated to tor
     |- connect - connects or reconnects to tor
     |- close - shuts down our connection to the tor process
diff --git a/stem/util/proc.py b/stem/util/proc.py
index f9b2a59..ac1f6f6 100644
--- a/stem/util/proc.py
+++ b/stem/util/proc.py
@@ -20,18 +20,18 @@ future, use them at your own risk.**
 ::
 
   is_available - checks if proc utilities can be used on this system
-  get_system_start_time - unix timestamp for when the system started
-  get_physical_memory - memory available on this system
-  get_cwd - provides the current working directory for a process
-  get_uid - provides the user id a process is running under
-  get_memory_usage - provides the memory usage of a process
-  get_stats - queries statistics about a process
-  get_file_descriptors_used - number of file descriptors used by a process
-  get_connections - provides the connections made by a process
+  system_start_time - unix timestamp for when the system started
+  physical_memory - memory available on this system
+  cwd - provides the current working directory for a process
+  uid - provides the user id a process is running under
+  memory_usage - provides the memory usage of a process
+  stats - queries statistics about a process
+  file_descriptors_used - number of file descriptors used by a process
+  connections - provides the connections made by a process
 
 .. data:: Stat (enum)
 
-  Types of data available via the :func:`~stem.util.proc.get_stats` function.
+  Types of data available via the :func:`~stem.util.proc.stats` function.
 
   ============== ===========
   Stat           Description
@@ -94,7 +94,7 @@ def is_available():
 
 
 @lru_cache()
-def get_system_start_time():
+def system_start_time():
   """
   Provides the unix time (seconds since epoch) when the system started.
 
@@ -117,7 +117,7 @@ def get_system_start_time():
 
 
 @lru_cache()
-def get_physical_memory():
+def physical_memory():
   """
   Provides the total physical memory on the system in bytes.
 
@@ -139,7 +139,7 @@ def get_physical_memory():
     raise exc
 
 
-def get_cwd(pid):
+def cwd(pid):
   """
   Provides the current working directory for the given process.
 
@@ -167,7 +167,7 @@ def get_cwd(pid):
   return cwd
 
 
-def get_uid(pid):
+def uid(pid):
   """
   Provides the user ID the given process is running under.
 
@@ -192,7 +192,7 @@ def get_uid(pid):
     raise exc
 
 
-def get_memory_usage(pid):
+def memory_usage(pid):
   """
   Provides the memory usage in bytes for the given process.
 
@@ -225,7 +225,7 @@ def get_memory_usage(pid):
     raise exc
 
 
-def get_stats(pid, *stat_types):
+def stats(pid, *stat_types):
   """
   Provides process specific information. See the :data:`~stem.util.proc.Stat`
   enum for valid options.
@@ -281,19 +281,19 @@ def get_stats(pid, *stat_types):
         results.append(str(float(stat_comp[14]) / CLOCK_TICKS))
     elif stat_type == Stat.START_TIME:
       if pid == 0:
-        return get_system_start_time()
+        return system_start_time()
       else:
         # According to documentation, starttime is in field 21 and the unit is
         # jiffies (clock ticks). We divide it for clock ticks, then add the
         # uptime to get the seconds since the epoch.
         p_start_time = float(stat_comp[21]) / CLOCK_TICKS
-        results.append(str(p_start_time + get_system_start_time()))
+        results.append(str(p_start_time + system_start_time()))
 
   _log_runtime(parameter, stat_path, start_time)
   return tuple(results)
 
 
-def get_file_descriptors_used(pid):
+def file_descriptors_used(pid):
   """
   Provides the number of file descriptors currently being used by a process.
 
@@ -318,7 +318,7 @@ def get_file_descriptors_used(pid):
     raise IOError("Unable to check number of file descriptors used: %s" % exc)
 
 
-def get_connections(pid):
+def connections(pid):
   """
   Queries connection related information from the proc contents. This provides
   similar results to netstat, lsof, sockstat, and other connection resolution
@@ -524,3 +524,15 @@ def _log_failure(parameter, exc):
   """
 
   log.debug('proc call failed (%s): %s' % (parameter, exc))
+
+# TODO: drop with stem 2.x
+# We renamed our methods to drop a redundant 'get_*' prefix, so alias the old
+# names for backward compatability.
+
+get_system_start_time = system_start_time
+get_physical_memory = physical_memory
+get_cwd = cwd
+get_uid = uid
+get_memory_usage = memory_usage
+get_stats = stats
+get_connections = connections
diff --git a/test/integ/util/proc.py b/test/integ/util/proc.py
index 8b76dd6..cad0114 100644
--- a/test/integ/util/proc.py
+++ b/test/integ/util/proc.py
@@ -12,9 +12,9 @@ from stem.util import proc
 
 
 class TestProc(unittest.TestCase):
-  def test_get_cwd(self):
+  def test_cwd(self):
     """
-    Checks that stem.util.proc.get_cwd matches our tor instance's cwd.
+    Checks that stem.util.proc.cwd matches our tor instance's cwd.
     """
 
     if not proc.is_available():
@@ -26,11 +26,11 @@ class TestProc(unittest.TestCase):
 
     runner = test.runner.get_runner()
     runner_pid, tor_cwd = runner.get_pid(), runner.get_tor_cwd()
-    self.assertEquals(tor_cwd, proc.get_cwd(runner_pid))
+    self.assertEquals(tor_cwd, proc.cwd(runner_pid))
 
-  def test_get_uid(self):
+  def test_uid(self):
     """
-    Checks that stem.util.proc.get_uid matches our tor instance's uid.
+    Checks that stem.util.proc.uid matches our tor instance's uid.
     """
 
     if not proc.is_available():
@@ -38,11 +38,11 @@ class TestProc(unittest.TestCase):
       return
 
     tor_pid = test.runner.get_runner().get_pid()
-    self.assertEquals(os.geteuid(), proc.get_uid(tor_pid))
+    self.assertEquals(os.geteuid(), proc.uid(tor_pid))
 
-  def test_get_memory_usage(self):
+  def test_memory_usage(self):
     """
-    Checks that stem.util.proc.get_memory_usage looks somewhat reasonable.
+    Checks that stem.util.proc.memory_usage looks somewhat reasonable.
     """
 
     if not proc.is_available():
@@ -50,15 +50,15 @@ class TestProc(unittest.TestCase):
       return
 
     tor_pid = test.runner.get_runner().get_pid()
-    res_size, vir_size = proc.get_memory_usage(tor_pid)
+    res_size, vir_size = proc.memory_usage(tor_pid)
 
     # checks that they're larger than a kilobyte
     self.assertTrue(res_size > 1024)
     self.assertTrue(vir_size > 1024)
 
-  def test_get_stats(self):
+  def test_stats(self):
     """
-    Checks that stem.util.proc.get_stats looks somewhat reasonable.
+    Checks that stem.util.proc.stats looks somewhat reasonable.
     """
 
     if not proc.is_available():
@@ -66,16 +66,16 @@ class TestProc(unittest.TestCase):
       return
 
     tor_pid = test.runner.get_runner().get_pid()
-    command, utime, stime, start_time = proc.get_stats(tor_pid, 'command', 'utime', 'stime', 'start time')
+    command, utime, stime, start_time = proc.stats(tor_pid, 'command', 'utime', 'stime', 'start time')
 
     self.assertEquals('tor', command)
     self.assertTrue(float(utime) > 0)
     self.assertTrue(float(stime) >= 0)
-    self.assertTrue(float(start_time) > proc.get_system_start_time())
+    self.assertTrue(float(start_time) > proc.system_start_time())
 
-  def test_get_connections(self):
+  def test_connections(self):
     """
-    Checks for our control port in the stem.util.proc.get_connections output if
+    Checks for our control port in the stem.util.proc.connections output if
     we have one.
     """
 
@@ -95,7 +95,7 @@ class TestProc(unittest.TestCase):
     with runner.get_tor_socket():
       tor_pid = test.runner.get_runner().get_pid()
 
-      for conn in proc.get_connections(tor_pid):
+      for conn in proc.connections(tor_pid):
         if ('127.0.0.1', test.runner.CONTROL_PORT) == conn[:2]:
           return
 
diff --git a/test/unit/util/proc.py b/test/unit/util/proc.py
index 1786a99..c8defd7 100644
--- a/test/unit/util/proc.py
+++ b/test/unit/util/proc.py
@@ -17,45 +17,45 @@ except ImportError:
 
 class TestProc(unittest.TestCase):
   @patch('stem.util.proc._get_line')
-  def test_get_system_start_time(self, get_line_mock):
+  def test_system_start_time(self, get_line_mock):
     """
-    Tests the get_system_start_time function.
+    Tests the system_start_time function.
     """
 
     get_line_mock.side_effect = lambda *params: {
       ('/proc/stat', 'btime', 'system start time'): 'btime 1001001',
     }[params]
 
-    self.assertEquals(1001001, proc.get_system_start_time())
+    self.assertEquals(1001001, proc.system_start_time())
 
   @patch('stem.util.proc._get_line')
-  def test_get_physical_memory(self, get_line_mock):
+  def test_physical_memory(self, get_line_mock):
     """
-    Tests the get_physical_memory function.
+    Tests the physical_memory function.
     """
 
     get_line_mock.side_effect = lambda *params: {
       ('/proc/meminfo', 'MemTotal:', 'system physical memory'): 'MemTotal:       12345 kB',
     }[params]
 
-    self.assertEquals((12345 * 1024), proc.get_physical_memory())
+    self.assertEquals((12345 * 1024), proc.physical_memory())
 
   @patch('os.readlink')
-  def test_get_cwd(self, readlink_mock):
+  def test_cwd(self, readlink_mock):
     """
-    Tests the get_cwd function with a given pid.
+    Tests the cwd function with a given pid.
     """
 
     readlink_mock.side_effect = lambda param: {
       '/proc/24019/cwd': '/home/directory/TEST'
     }[param]
 
-    self.assertEquals('/home/directory/TEST', proc.get_cwd(24019))
+    self.assertEquals('/home/directory/TEST', proc.cwd(24019))
 
   @patch('stem.util.proc._get_line')
-  def test_get_uid(self, get_line_mock):
+  def test_uid(self, get_line_mock):
     """
-    Tests the get_uid function with a given pid.
+    Tests the uid function with a given pid.
     """
 
     for test_value in [(24019, 11111), (0, 22222)]:
@@ -65,12 +65,12 @@ class TestProc(unittest.TestCase):
         ('/proc/%s/status' % pid, 'Uid:', 'uid'): 'Uid: %s' % uid,
       }[params]
 
-      self.assertEquals(uid, proc.get_uid(pid))
+      self.assertEquals(uid, proc.uid(pid))
 
   @patch('stem.util.proc._get_lines')
-  def test_get_memory_usage(self, get_lines_mock):
+  def test_memory_usage(self, get_lines_mock):
     """
-    Tests the get_memory_usage function with a given pid.
+    Tests the memory_usage function with a given pid.
     """
 
     get_lines_mock.side_effect = lambda *params: {
@@ -78,14 +78,14 @@ class TestProc(unittest.TestCase):
         {'VmRSS:': 'VmRSS: 100 kB', 'VmSize:': 'VmSize: 1800 kB'}
     }[params]
 
-    self.assertEqual((0, 0), proc.get_memory_usage(0))
-    self.assertEqual((100 * 1024, 1800 * 1024), proc.get_memory_usage(1111))
+    self.assertEqual((0, 0), proc.memory_usage(0))
+    self.assertEqual((100 * 1024, 1800 * 1024), proc.memory_usage(1111))
 
   @patch('stem.util.proc._get_line')
-  @patch('stem.util.proc.get_system_start_time', Mock(return_value = 10))
-  def test_get_stats(self, get_line_mock):
+  @patch('stem.util.proc.system_start_time', Mock(return_value = 10))
+  def test_stats(self, get_line_mock):
     """
-    Tests get_stats() with all combinations of stat_type arguments.
+    Tests stats() with all combinations of stat_type arguments.
     """
 
     # list of all combinations of args with respective return values
@@ -105,7 +105,7 @@ class TestProc(unittest.TestCase):
       (stat_path, '24062', 'process '): stat
     }[params]
 
-    self.assertEquals((), proc.get_stats(24062))
+    self.assertEquals((), proc.stats(24062))
 
     for stats in stat_combinations:
       # the stats variable is...
@@ -120,7 +120,7 @@ class TestProc(unittest.TestCase):
         (stat_path, '24062', 'process %s' % ', '.join(args)): stat
       }[params]
 
-      self.assertEquals(response, proc.get_stats(24062, *args))
+      self.assertEquals(response, proc.stats(24062, *args))
 
       # tests the case where pid = 0
 
@@ -141,18 +141,18 @@ class TestProc(unittest.TestCase):
         ('/proc/0/stat', '0', 'process %s' % ', '.join(args)): stat
       }[params]
 
-      self.assertEquals(response, proc.get_stats(0, *args))
+      self.assertEquals(response, proc.stats(0, *args))
 
   @patch('os.listdir')
-  def test_get_file_descriptors_used(self, listdir_mock):
+  def test_file_descriptors_used(self, listdir_mock):
     """
-    Tests the get_file_descriptors_used function.
+    Tests the file_descriptors_used function.
     """
 
     # check that we reject bad pids
 
     for arg in (None, -100, 'hello',):
-      self.assertRaises(IOError, proc.get_file_descriptors_used, arg)
+      self.assertRaises(IOError, proc.file_descriptors_used, arg)
 
     # when proc directory doesn't exist
 
@@ -160,7 +160,7 @@ class TestProc(unittest.TestCase):
     listdir_mock.side_effect = OSError(error_msg)
 
     try:
-      proc.get_file_descriptors_used(2118)
+      proc.file_descriptors_used(2118)
       self.fail("We should raise when listdir() fails")
     except IOError as exc:
       expected = "Unable to check number of file descriptors used: %s" % error_msg
@@ -171,15 +171,15 @@ class TestProc(unittest.TestCase):
     listdir_mock.return_value = ['0', '1', '2', '3', '4', '5']
     listdir_mock.side_effect = None
 
-    self.assertEqual(6, proc.get_file_descriptors_used(2118))
-    self.assertEqual(6, proc.get_file_descriptors_used('2118'))
+    self.assertEqual(6, proc.file_descriptors_used(2118))
+    self.assertEqual(6, proc.file_descriptors_used('2118'))
 
   @patch('os.listdir')
   @patch('os.readlink')
   @patch('stem.util.proc.open', create = True)
-  def test_get_connections(self, open_mock, readlink_mock, listdir_mock):
+  def test_connections(self, open_mock, readlink_mock, listdir_mock):
     """
-    Tests the get_connections function.
+    Tests the connections function.
     """
 
     pid = 1111
@@ -204,11 +204,11 @@ class TestProc(unittest.TestCase):
     }[param]
 
     # tests the edge case of pid = 0
-    self.assertEquals([], proc.get_connections(0))
+    self.assertEquals([], proc.connections(0))
 
     expected_results = [
       ('17.17.17.17', 4369, '34.34.34.34', 8738, 'tcp'),
       ('187.187.187.187', 48059, '204.204.204.204', 52428, 'udp'),
     ]
 
-    self.assertEquals(expected_results, proc.get_connections(pid))
+    self.assertEquals(expected_results, proc.connections(pid))





More information about the tor-commits mailing list