From d984f154c9569556f7cbfa83ad7e9849f5278be7 Mon Sep 17 00:00:00 2001 From: Norman Fomferra Date: Tue, 17 Apr 2018 15:17:04 +0200 Subject: [PATCH] fixed webapi workspace manager tests, which now work on windows too --- test/webapi/test_wsmanag.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/test/webapi/test_wsmanag.py b/test/webapi/test_wsmanag.py index 2682e42eb..c24b07217 100644 --- a/test/webapi/test_wsmanag.py +++ b/test/webapi/test_wsmanag.py @@ -1,25 +1,30 @@ import os -import sys -import time +import signal import unittest +from cate.util.web.serviceinfo import read_service_info from cate.util.web.webapi import find_free_port, WebAPI from cate.webapi.wsmanag import WebAPIWorkspaceManager from test.core.test_wsmanag import WorkspaceManagerTestMixin +_SERVICE_INFO_FILE = 'pytest-service-info.json' + @unittest.skipIf(os.environ.get('CATE_DISABLE_WEB_TESTS', None) == '1', 'CATE_DISABLE_WEB_TESTS = 1') class WebAPIWorkspaceManagerTest(WorkspaceManagerTestMixin, unittest.TestCase): def setUp(self): self.port = find_free_port() - WebAPI.start_subprocess('cate.webapi.start', port=self.port, caller='pytest') + WebAPI.start_subprocess('cate.webapi.start', + port=self.port, + caller='pytest', + service_info_file=_SERVICE_INFO_FILE) def tearDown(self): - WebAPI.stop_subprocess('cate.webapi.stop', port=self.port, caller='pytest') - if sys.platform == 'win32': - # This helps getting around silly error raised inside Popen._internal_poll(): - # OSError: [WinError 6] Das Handle ist ungültig - time.sleep(5) + service_info = read_service_info(_SERVICE_INFO_FILE) + if service_info: + os.kill(service_info['pid'], signal.SIGTERM) + else: + print("WebAPIWorkspaceManagerTest: error: can't find %s" % _SERVICE_INFO_FILE) def new_workspace_manager(self): return WebAPIWorkspaceManager(dict(port=self.port), rpc_timeout=2)