changeset 8280:0b02d98d44d0

util: always use subprocess
author Martin Geisler <mg@lazybytes.net>
date Sat, 02 May 2009 23:05:35 +0200
parents 602ed4982f36
children 3e1e499db9d7
files mercurial/util.py tests/run-tests.py
diffstat 2 files changed, 35 insertions(+), 47 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/util.py	Sat May 02 21:29:00 2009 +0200
+++ b/mercurial/util.py	Sat May 02 23:05:35 2009 +0200
@@ -44,37 +44,29 @@
             _sha1 = sha.sha
     return _sha1(s)
 
-try:
-    import subprocess
-    subprocess.Popen  # trigger ImportError early
-    closefds = os.name == 'posix'
-    def popen2(cmd, mode='t', bufsize=-1):
-        p = subprocess.Popen(cmd, shell=True, bufsize=bufsize,
-                             close_fds=closefds,
-                             stdin=subprocess.PIPE, stdout=subprocess.PIPE)
-        return p.stdin, p.stdout
-    def popen3(cmd, mode='t', bufsize=-1):
-        p = subprocess.Popen(cmd, shell=True, bufsize=bufsize,
-                             close_fds=closefds,
-                             stdin=subprocess.PIPE, stdout=subprocess.PIPE,
-                             stderr=subprocess.PIPE)
-        return p.stdin, p.stdout, p.stderr
-    def Popen3(cmd, capturestderr=False, bufsize=-1):
-        stderr = capturestderr and subprocess.PIPE or None
-        p = subprocess.Popen(cmd, shell=True, bufsize=bufsize,
-                             close_fds=closefds,
-                             stdin=subprocess.PIPE, stdout=subprocess.PIPE,
-                             stderr=stderr)
-        p.fromchild = p.stdout
-        p.tochild = p.stdin
-        p.childerr = p.stderr
-        return p
-except ImportError:
-    subprocess = None
-    from popen2 import Popen3
-    popen2 = os.popen2
-    popen3 = os.popen3
-
+import subprocess
+closefds = os.name == 'posix'
+def popen2(cmd, mode='t', bufsize=-1):
+    p = subprocess.Popen(cmd, shell=True, bufsize=bufsize,
+                         close_fds=closefds,
+                         stdin=subprocess.PIPE, stdout=subprocess.PIPE)
+    return p.stdin, p.stdout
+def popen3(cmd, mode='t', bufsize=-1):
+    p = subprocess.Popen(cmd, shell=True, bufsize=bufsize,
+                         close_fds=closefds,
+                         stdin=subprocess.PIPE, stdout=subprocess.PIPE,
+                         stderr=subprocess.PIPE)
+    return p.stdin, p.stdout, p.stderr
+def Popen3(cmd, capturestderr=False, bufsize=-1):
+    stderr = capturestderr and subprocess.PIPE or None
+    p = subprocess.Popen(cmd, shell=True, bufsize=bufsize,
+                         close_fds=closefds,
+                         stdin=subprocess.PIPE, stdout=subprocess.PIPE,
+                         stderr=stderr)
+    p.fromchild = p.stdout
+    p.tochild = p.stdin
+    p.childerr = p.stderr
+    return p
 
 def version():
     """Return version information if available."""
--- a/tests/run-tests.py	Sat May 02 21:29:00 2009 +0200
+++ b/tests/run-tests.py	Sat May 02 23:05:35 2009 +0200
@@ -11,28 +11,24 @@
 import errno
 import optparse
 import os
-try:
-    import subprocess
-    subprocess.Popen  # trigger ImportError early
-    closefds = os.name == 'posix'
-    def Popen4(cmd, bufsize=-1):
-        p = subprocess.Popen(cmd, shell=True, bufsize=bufsize,
-                             close_fds=closefds,
-                             stdin=subprocess.PIPE, stdout=subprocess.PIPE,
-                             stderr=subprocess.STDOUT)
-        p.fromchild = p.stdout
-        p.tochild = p.stdin
-        p.childerr = p.stderr
-        return p
-except ImportError:
-    subprocess = None
-    from popen2 import Popen4
+import subprocess
 import shutil
 import signal
 import sys
 import tempfile
 import time
 
+closefds = os.name == 'posix'
+def Popen4(cmd, bufsize=-1):
+    p = subprocess.Popen(cmd, shell=True, bufsize=bufsize,
+                         close_fds=closefds,
+                         stdin=subprocess.PIPE, stdout=subprocess.PIPE,
+                         stderr=subprocess.STDOUT)
+    p.fromchild = p.stdout
+    p.tochild = p.stdin
+    p.childerr = p.stderr
+    return p
+
 # reserved exit code to skip test (used by hghave)
 SKIPPED_STATUS = 80
 SKIPPED_PREFIX = 'skipped: '