Index: tests/local_rietveld.py |
diff --git a/tests/local_rietveld.py b/tests/local_rietveld.py |
index efcb6577cb432be43781a91a101efc12b5701100..d14da5628ce307ccd158fb6afaf8b189e52a70ad 100755 |
--- a/tests/local_rietveld.py |
+++ b/tests/local_rietveld.py |
@@ -13,9 +13,12 @@ if necessary and starts the server on a free inbound TCP port. |
import optparse |
import os |
import socket |
-import subprocess |
+import sys |
import time |
+sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) |
+import subprocess2 |
+ |
class Failure(Exception): |
pass |
@@ -55,9 +58,6 @@ class LocalRietveld(object): |
self.rietveld = os.path.join(self.base_dir, 'tests', 'rietveld') |
self.test_server = None |
self.port = None |
- # Generate a friendly environment. |
- self.env = os.environ.copy() |
- self.env['LANGUAGE'] = 'en' |
self.out = None |
self.err = None |
@@ -66,23 +66,21 @@ class LocalRietveld(object): |
if not os.path.isfile(self.dev_app): |
raise Failure('Install google_appengine sdk in %s' % self.sdk_path) |
- def call(*args, **kwargs): |
- kwargs['env'] = self.env |
- x = subprocess.Popen(*args, **kwargs) |
- x.communicate() |
- return x.returncode == 0 |
- |
# Second, checkout rietveld if not available. |
if not os.path.isdir(self.rietveld): |
print('Checking out rietveld...') |
- if not call( |
- ['svn', 'co', '-q', |
- 'http://rietveld.googlecode.com/svn/trunk@681', |
- self.rietveld]): |
+ try: |
+ subprocess2.check_call( |
+ ['svn', 'co', '-q', 'http://rietveld.googlecode.com/svn/trunk@681', |
+ self.rietveld]) |
+ except subprocess2.CalledProcessError: |
raise Failure('Failed to checkout rietveld') |
else: |
print('Syncing rietveld...') |
- if not call(['svn', 'up', '-q', '-r', '681'], cwd=self.rietveld): |
+ try: |
+ subprocess2.check_call( |
+ ['svn', 'up', '-q', '-r', '681'], cwd=self.rietveld) |
+ except subprocess2.CalledProcessError: |
raise Failure('Failed to checkout rietveld') |
def start_server(self, verbose=False): |
@@ -101,9 +99,8 @@ class LocalRietveld(object): |
'--port=%d' % self.port, |
'--datastore_path=' + os.path.join(self.rietveld, 'tmp.db'), |
'-c'] |
- self.test_server = subprocess.Popen( |
- cmd, stdout=self.out, stderr=self.err, env=self.env, |
- cwd=self.rietveld) |
+ self.test_server = subprocess2.Popen( |
+ cmd, stdout=self.out, stderr=self.err, cwd=self.rietveld) |
# Loop until port 127.0.0.1:port opens or the process dies. |
while not test_port(self.port): |
self.test_server.poll() |
@@ -111,11 +108,12 @@ class LocalRietveld(object): |
raise Failure( |
'Test rietveld instance failed early on port %s' % |
self.port) |
- time.sleep(0.001) |
+ time.sleep(0.01) |
def stop_server(self): |
if self.test_server: |
self.test_server.kill() |
+ self.test_server.wait() |
self.test_server = None |
self.port = None |
if self.out: |