You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by ad...@apache.org on 2014/07/19 06:02:06 UTC

svn commit: r1611843 - in /labs/panopticon/pan-utils: src/asf/utils/execute.py src/asf/utils/ezmlm.py tests/test_execute.py

Author: adc
Date: Sat Jul 19 04:02:06 2014
New Revision: 1611843

URL: http://svn.apache.org/r1611843
Log:
execute() takes a sequence instead of a string.

Modified:
    labs/panopticon/pan-utils/src/asf/utils/execute.py
    labs/panopticon/pan-utils/src/asf/utils/ezmlm.py
    labs/panopticon/pan-utils/tests/test_execute.py

Modified: labs/panopticon/pan-utils/src/asf/utils/execute.py
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/src/asf/utils/execute.py?rev=1611843&r1=1611842&r2=1611843&view=diff
==============================================================================
--- labs/panopticon/pan-utils/src/asf/utils/execute.py (original)
+++ labs/panopticon/pan-utils/src/asf/utils/execute.py Sat Jul 19 04:02:06 2014
@@ -34,13 +34,13 @@ class ExecutionError(ValueError):
         return self.__repr__()
 
 
-def execute(command):
+def execute(args):
     """ Executes a command and returns both stdout and stderr as lists
-    :param str command: the command to be executed
+    :param args: a sequence of program arguments. Rhe program to execute is the first item in args.
     :returns stdout, stderr as lists
     :raises ExecutionError if the command does not execute correctly.
     """
-    p = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+    p = subprocess.Popen(args, shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 
     stdout = []
     for line in p.stdout.readlines():

Modified: labs/panopticon/pan-utils/src/asf/utils/ezmlm.py
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/src/asf/utils/ezmlm.py?rev=1611843&r1=1611842&r2=1611843&view=diff
==============================================================================
--- labs/panopticon/pan-utils/src/asf/utils/ezmlm.py (original)
+++ labs/panopticon/pan-utils/src/asf/utils/ezmlm.py Sat Jul 19 04:02:06 2014
@@ -41,7 +41,7 @@ class Ezmlm(object):
 
     @property
     def subscribers(self):
-        stdout, _ = execute(os.path.join(self.command_location, 'ezmlm-list') + ' ' + self.list_dir)
+        stdout, _ = execute([os.path.join(self.command_location, 'ezmlm-list'), self.list_dir])
 
         subscribers = set()
         for line in stdout:
@@ -51,7 +51,7 @@ class Ezmlm(object):
 
     @property
     def moderators(self):
-        stdout, _ = execute(os.path.join(self.command_location, 'ezmlm-list') + ' ' + self.list_dir + ' mod')
+        stdout, _ = execute([os.path.join(self.command_location, 'ezmlm-list'), self.list_dir, 'mod'])
         moderators = set()
         for line in stdout:
             moderators.add(line.strip())
@@ -62,25 +62,25 @@ class Ezmlm(object):
         if subscriber in self.subscribers:
             log.warning('Subscriber %s already in list')
         else:
-            execute(os.path.join(self.command_location, 'ezmlm-sub') + ' ' + self.list_dir + ' ' + subscriber)
+            execute([os.path.join(self.command_location, 'ezmlm-sub'), self.list_dir, subscriber])
 
     def remove_subscriber(self, subscriber):
         if subscriber not in self.subscribers:
             log.warning('Subscriber %s not in list')
         else:
-            execute(os.path.join(self.command_location, 'ezmlm-unsub') + ' ' + self.list_dir + ' ' + subscriber)
+            execute([os.path.join(self.command_location, 'ezmlm-unsub'), self.list_dir, subscriber])
 
     def add_moderator(self, moderator):
         if moderator in self.moderators:
             log.warning('Subscriber %s already in list')
         else:
-            execute(os.path.join(self.command_location, 'ezmlm-sub') + ' ' + self.list_dir + ' mod ' + moderator)
+            execute([os.path.join(self.command_location, 'ezmlm-sub'), self.list_dir, 'mod', moderator])
 
     def remove_moderator(self, moderator):
         if moderator not in self.moderators:
             log.warning('Subscriber %s not in list')
         else:
-            execute(os.path.join(self.command_location, 'ezmlm-unsub') + ' ' + self.list_dir + ' mod ' + moderator)
+            execute([os.path.join(self.command_location, 'ezmlm-unsub'), self.list_dir, 'mod', moderator])
 
     def path_to_archived_message(self, number):
         m = str(number / 100)

Modified: labs/panopticon/pan-utils/tests/test_execute.py
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/tests/test_execute.py?rev=1611843&r1=1611842&r2=1611843&view=diff
==============================================================================
--- labs/panopticon/pan-utils/tests/test_execute.py (original)
+++ labs/panopticon/pan-utils/tests/test_execute.py Sat Jul 19 04:02:06 2014
@@ -23,14 +23,14 @@ from asf.utils.execute import execute, E
 
 def test_execute():
     data_dir = os.path.join(os.path.dirname(__file__), 'data')
-    stdout, stderr = execute('ls %s' % data_dir)
+    stdout, stderr = execute(['ls', '%s' % data_dir])
     assert ['podlings.xml', 'test.apache.org'] == stdout
     assert [] == stderr
 
 
 def test_execute_fail():
     try:
-        execute('ls ZZZ')
+        execute(['ls', 'ZZZ'])
         assert False, 'Execution should have thrown an error'
     except ExecutionError as ee:
         assert ee.code



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org