From ff92ac9dad9c9972f23f0b9bdc2934f226038602 Mon Sep 17 00:00:00 2001 From: Min RK Date: Fri, 7 Oct 2016 10:59:32 +0200 Subject: [PATCH] more mocking in tests avoids no_patience state leaking into other tests --- jupyterhub/tests/conftest.py | 9 +++++++++ jupyterhub/tests/test_api.py | 22 ++++++++++------------ 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/jupyterhub/tests/conftest.py b/jupyterhub/tests/conftest.py index 7be4639f..4d298d3e 100644 --- a/jupyterhub/tests/conftest.py +++ b/jupyterhub/tests/conftest.py @@ -104,3 +104,12 @@ def mockservice(request, app): @yield_fixture def mockservice_url(request, app): yield _mockservice(request, app, url=True) + +@yield_fixture +def no_patience(app): + """Set slow-spawning timeouts to zero""" + with mock.patch.dict(app.tornado_application.settings, + {'slow_spawn_timeout': 0, + 'slow_stop_timeout': 0}): + yield + diff --git a/jupyterhub/tests/test_api.py b/jupyterhub/tests/test_api.py index a82aeaa1..f1318ab8 100644 --- a/jupyterhub/tests/test_api.py +++ b/jupyterhub/tests/test_api.py @@ -4,9 +4,10 @@ import json import time from queue import Queue import sys +from unittest import mock from urllib.parse import urlparse, quote -from pytest import mark +from pytest import mark, yield_fixture import requests from tornado import gen @@ -409,17 +410,14 @@ def test_spawn(app, io_loop): assert tokens == [] -def test_slow_spawn(app, io_loop): - # app.tornado_application.settings['spawner_class'] = mocking.SlowSpawner - app.tornado_settings['spawner_class'] = mocking.SlowSpawner - app.tornado_application.settings['slow_spawn_timeout'] = 0 - app.tornado_application.settings['slow_stop_timeout'] = 0 - +def test_slow_spawn(app, io_loop, no_patience, request): + patch = mock.patch.dict(app.tornado_settings, {'spawner_class': mocking.SlowSpawner}) + patch.start() + request.addfinalizer(patch.stop) db = app.db name = 'zoe' user = add_user(db, app=app, name=name) r = api_request(app, 'users', name, 'server', method='post') - app.tornado_settings['spawner_class'] = mocking.MockSpawner r.raise_for_status() assert r.status_code == 202 app_user = get_app_user(app, name) @@ -461,15 +459,15 @@ def test_slow_spawn(app, io_loop): assert r.status_code == 400 -def test_never_spawn(app, io_loop): - app.tornado_settings['spawner_class'] = mocking.NeverSpawner - app.tornado_application.settings['slow_spawn_timeout'] = 0 +def test_never_spawn(app, io_loop, no_patience, request): + patch = mock.patch.dict(app.tornado_settings, {'spawner_class': mocking.NeverSpawner}) + patch.start() + request.addfinalizer(patch.stop) db = app.db name = 'badger' user = add_user(db, app=app, name=name) r = api_request(app, 'users', name, 'server', method='post') - app.tornado_settings['spawner_class'] = mocking.MockSpawner app_user = get_app_user(app, name) assert app_user.spawner is not None assert app_user.spawn_pending