Wait for SERVER_READY or PROXY_READ, instead of expecting it as the first line.
authorClaudio-Daniel Freire <claudio-daniel.freire@inria.fr>
Mon, 5 Sep 2011 01:19:40 +0000 (03:19 +0200)
committerClaudio-Daniel Freire <claudio-daniel.freire@inria.fr>
Mon, 5 Sep 2011 01:19:40 +0000 (03:19 +0200)
Allows spurious stderr output in environment_setup code (happens in OpenSUSE)

src/nepi/util/proxy.py
src/nepi/util/server.py

index 49c9989..43c22c5 100644 (file)
@@ -900,10 +900,15 @@ class BaseProxy(object):
                         environment_setup = environment_setup) 
             # Wait for the server to be ready, otherwise nobody
             # will be able to connect to it
-            helo = proc.stderr.readline()
-            if helo != 'SERVER_READY.\n':
-                raise AssertionError, "Expected 'SERVER_READY.', got %r: %s" % (helo,
-                        helo + proc.stderr.read())
+            err = []
+            helo = "nope"
+            while helo:
+                helo = proc.stderr.readline()
+                if helo == 'SERVER_READY.\n':
+                    break
+                err.append(helo)
+            else:
+                raise AssertionError, "Expected 'SERVER_READY.', got: %s" % (''.join(err),)
         # connect client to server
         self._client = server.Client(root_dir, 
                 communication = communication,
index 675ca38..0b9cdae 100644 (file)
@@ -433,10 +433,15 @@ class Client(object):
                
         # Wait for the forwarder to be ready, otherwise nobody
         # will be able to connect to it
-        helo = self._process.stderr.readline()
-        if helo != 'FORWARDER_READY.\n':
-            raise AssertionError, "Expected 'FORWARDER_READY.', got %r: %s" % (helo,
-                    helo + self._process.stderr.read())
+        err = []
+        helo = "nope"
+        while helo:
+            helo = self._process.stderr.readline()
+            if helo == 'FORWARDER_READY.\n':
+                break
+            err.append(helo)
+        else:
+            raise AssertionError, "Expected 'FORWARDER_READY.', got: %s" % (''.join(err),)
         
     def send_msg(self, msg):
         encoded = base64.b64encode(msg)