cleanup more after mockservices

This commit is contained in:
Min RK
2017-04-04 17:10:00 +02:00
parent c6fe145030
commit d11c7ba4db
2 changed files with 12 additions and 5 deletions

View File

@@ -68,9 +68,12 @@ def app(request):
class MockServiceSpawner(jupyterhub.services.service._ServiceSpawner): class MockServiceSpawner(jupyterhub.services.service._ServiceSpawner):
poll_interval = 1 poll_interval = 1
_mock_service_counter = 0
def _mockservice(request, app, url=False): def _mockservice(request, app, url=False):
name = 'mock-service' global _mock_service_counter
_mock_service_counter += 1
name = 'mock-service-%i' % _mock_service_counter
spec = { spec = {
'name': name, 'name': name,
'command': mockservice_cmd, 'command': mockservice_cmd,
@@ -86,7 +89,11 @@ def _mockservice(request, app, url=False):
assert name in app._service_map assert name in app._service_map
service = app._service_map[name] service = app._service_map[name]
app.io_loop.add_callback(service.start) app.io_loop.add_callback(service.start)
request.addfinalizer(service.stop) def cleanup():
service.stop()
app.services[:] = []
app._service_map.clear()
request.addfinalizer(cleanup)
for i in range(20): for i in range(20):
if not getattr(service, 'proc', False): if not getattr(service, 'proc', False):
time.sleep(0.2) time.sleep(0.2)

View File

@@ -732,8 +732,8 @@ def test_get_services(app, mockservice_url):
services = r.json() services = r.json()
assert services == { assert services == {
'mock-service': { mockservice.name: {
'name': 'mock-service', 'name': mockservice.name,
'admin': True, 'admin': True,
'command': mockservice.command, 'command': mockservice.command,
'pid': mockservice.proc.pid, 'pid': mockservice.proc.pid,
@@ -758,7 +758,7 @@ def test_get_service(app, mockservice_url):
service = r.json() service = r.json()
assert service == { assert service == {
'name': 'mock-service', 'name': mockservice.name,
'admin': True, 'admin': True,
'command': mockservice.command, 'command': mockservice.command,
'pid': mockservice.proc.pid, 'pid': mockservice.proc.pid,