diff --git a/authserv/test/test_integration.py b/authserv/test/test_integration.py index d348484fed1330c279ae47e6f1947a2b72be0935..d799c2b2a982cee5cd03e9bbb96da06ba5741482 100644 --- a/authserv/test/test_integration.py +++ b/authserv/test/test_integration.py @@ -10,7 +10,6 @@ import urllib2 from authserv.test import * from authserv.ratelimit import * from authserv import protocol -from authserv import server from authserv import app_main URL = '/api/1/auth' @@ -55,34 +54,34 @@ class SSLServerTest(unittest.TestCase): dhparams = _relpath('testca/dhparams') def setUp(self): + # set up the server in a separate process. self.users = { 'user': FakeUser('user', 'pass'), } - app = server.create_app(app_main.app, - userdb=FakeUserDb(self.users), - mc=FakeMemcache(time.time)) - app.config.update({ + + self.port = _free_port() + self.pid = os.fork() + if self.pid == 0: + from authserv import server + app = server.create_app(app_main.app, + userdb=FakeUserDb(self.users), + mc=FakeMemcache(time.time)) + app.config.update({ 'TESTING': True, 'DEBUG': True, }) - self.port = _free_port() - self._start_server(app) + server.run( + app, '127.0.0.1', self.port, self.ssl_ca, + self.ssl_cert, self.ssl_key, self.dhparams) + else: + time.sleep(1) self.opener = urllib2.build_opener( HTTPSClientAuthHandler(self.client_cert, self.client_key)) def tearDown(self): - # os.kill(self.pid, 15) - pass - - def _start_server(self, app): - """Run an SSL-enabled HTTP server as a separate process.""" - gevent.spawn( - server.run, - app, '127.0.0.1', self.port, self.ssl_ca, - self.ssl_cert, self.ssl_key, self.dhparams) - time.sleep(1) + os.kill(self.pid, 15) def test_python_request_failure_without_cert(self): req = urllib2.Request('https://127.0.0.1:%d%s' % (self.port, URL),