Author: janne.t.harkonen
Date: Thu Sep 25 08:59:04 2008
New Revision: 838

Modified:
   trunk/proto/remote/run_tests.py

Log:
added test to see whether server is up

Modified: trunk/proto/remote/run_tests.py
==============================================================================
--- trunk/proto/remote/run_tests.py     (original)
+++ trunk/proto/remote/run_tests.py     Thu Sep 25 08:59:04 2008
@@ -11,16 +11,31 @@
 import xmlrpclib
 import time
 import os
+import socket


 class Library:

     def __init__(self, lang):
ext = {'python': 'py', 'jython': 'py', 'ruby': 'rb', 'perl': 'pl'}[lang]
-        cmd = '%s %s/examplelibrary.%s' % (lang, lang, ext)
+        dirname = lang if lang != 'jython' else 'python'
+        cmd = '%s %s/examplelibrary.%s' % (lang, dirname, ext)
         stdin, self._stdout, self._stderr = os.popen3(cmd)
         stdin.close()
-        time.sleep(1)  # TODO: Test server is available instead of sleeping
+        self.test(attempts=10)
+
+    def test(self, port=8270, attempts=1):
+        url = 'http://localhost:%s' % port
+        for i in range(attempts):
+            try:
+                server = xmlrpclib.ServerProxy(url)
+                server.get_keyword_names()
+            except socket.error:
+                time.sleep(1)
+            else:
+                print "Server at %s seems to work OK." % url
+                return
+ print "Failed to connect to server at %s with %d attempts." % (url, attempts)

     def stop(self, port=8270):
         server = xmlrpclib.ServerProxy('http://localhost:%s' % port)
@@ -47,4 +62,3 @@
         print 'All tests passed'
     else:
         print '%d test%s failed' % (rc, 's' if rc != 1 else '')
-

Reply via email to