Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(117)

Unified Diff: testing_support/local_rietveld.py

Issue 13997004: Fix presubmit check compatibility with GAE SDK 1.7.6 (bis). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: testing_support/local_rietveld.py
diff --git a/testing_support/local_rietveld.py b/testing_support/local_rietveld.py
index 20aaa611e55e52457e40732154f1c58a65330d30..f88c1f5b9098264e8ccc9131d91b0a812abe39d6 100755
--- a/testing_support/local_rietveld.py
+++ b/testing_support/local_rietveld.py
@@ -10,11 +10,13 @@ It makes sure Google AppEngine SDK is found, download Rietveld and Django code
if necessary and starts the server on a free inbound TCP port.
"""
+import logging
import optparse
import os
import shutil
import socket
import sys
+import tempfile
import time
try:
@@ -61,6 +63,7 @@ class LocalRietveld(object):
self.rietveld = os.path.join(self.base_dir, '_rietveld')
self.test_server = None
self.port = None
+ self.tempdir = None
# Find the GAE SDK
previous_dir = ''
@@ -105,19 +108,23 @@ class LocalRietveld(object):
def start_server(self, verbose=False):
self.install_prerequisites()
+ assert not self.tempdir
+ self.tempdir = tempfile.mkdtemp(prefix='rietveld_test')
self.port = find_free_port()
if verbose:
- pipe = None
+ stdout = stderr = None
else:
- pipe = subprocess2.VOID
+ stdout = subprocess2.PIPE
+ stderr = subprocess2.STDOUT
cmd = [
sys.executable,
self.dev_app,
- '--skip_sdk_update_check',
'.',
- '--port=%d' % self.port,
- '--datastore_path=' + os.path.join(self.rietveld, 'tmp.db'),
- '-c']
+ '--port', str(self.port),
+ '--storage', self.tempdir,
+ '--clear_search_indexes',
+ '--skip_sdk_update_check',
+ ]
# CHEAP TRICK
# By default you only want to bind on loopback but I'm testing over a
@@ -125,16 +132,20 @@ class LocalRietveld(object):
# remotely.
if os.environ.get('GAE_LISTEN_ALL', '') == 'true':
cmd.extend(('-a', '0.0.0.0'))
-
+ logging.info(' '.join(cmd))
self.test_server = subprocess2.Popen(
- cmd, stdout=pipe, stderr=pipe, cwd=self.rietveld)
+ cmd, stdout=stdout, stderr=stderr, 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()
if self.test_server.returncode is not None:
+ if not verbose:
+ out = self.test_server.communicate()[0]
+ shutil.rmtree(self.tempdir)
+ self.tempdir = None
raise Failure(
- 'Test rietveld instance failed early on port %s' %
- self.port)
+ 'Test rietveld instance failed early on port %s\n%s' %
+ (self.port, out))
time.sleep(0.01)
def stop_server(self):
@@ -146,6 +157,9 @@ class LocalRietveld(object):
self.test_server.wait()
self.test_server = None
self.port = None
+ if self.tempdir:
+ shutil.rmtree(self.tempdir)
+ self.tempdir = None
def main():
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698