more mocking in tests

avoids no_patience state leaking into other tests
This commit is contained in:
Min RK
2016-10-07 10:59:32 +02:00
parent 933478bfff
commit ff92ac9dad
2 changed files with 19 additions and 12 deletions

View File

@@ -104,3 +104,12 @@ def mockservice(request, app):
@yield_fixture @yield_fixture
def mockservice_url(request, app): def mockservice_url(request, app):
yield _mockservice(request, app, url=True) 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

View File

@@ -4,9 +4,10 @@ import json
import time import time
from queue import Queue from queue import Queue
import sys import sys
from unittest import mock
from urllib.parse import urlparse, quote from urllib.parse import urlparse, quote
from pytest import mark from pytest import mark, yield_fixture
import requests import requests
from tornado import gen from tornado import gen
@@ -409,17 +410,14 @@ def test_spawn(app, io_loop):
assert tokens == [] assert tokens == []
def test_slow_spawn(app, io_loop): def test_slow_spawn(app, io_loop, no_patience, request):
# app.tornado_application.settings['spawner_class'] = mocking.SlowSpawner patch = mock.patch.dict(app.tornado_settings, {'spawner_class': mocking.SlowSpawner})
app.tornado_settings['spawner_class'] = mocking.SlowSpawner patch.start()
app.tornado_application.settings['slow_spawn_timeout'] = 0 request.addfinalizer(patch.stop)
app.tornado_application.settings['slow_stop_timeout'] = 0
db = app.db db = app.db
name = 'zoe' name = 'zoe'
user = add_user(db, app=app, name=name) user = add_user(db, app=app, name=name)
r = api_request(app, 'users', name, 'server', method='post') r = api_request(app, 'users', name, 'server', method='post')
app.tornado_settings['spawner_class'] = mocking.MockSpawner
r.raise_for_status() r.raise_for_status()
assert r.status_code == 202 assert r.status_code == 202
app_user = get_app_user(app, name) app_user = get_app_user(app, name)
@@ -461,15 +459,15 @@ def test_slow_spawn(app, io_loop):
assert r.status_code == 400 assert r.status_code == 400
def test_never_spawn(app, io_loop): def test_never_spawn(app, io_loop, no_patience, request):
app.tornado_settings['spawner_class'] = mocking.NeverSpawner patch = mock.patch.dict(app.tornado_settings, {'spawner_class': mocking.NeverSpawner})
app.tornado_application.settings['slow_spawn_timeout'] = 0 patch.start()
request.addfinalizer(patch.stop)
db = app.db db = app.db
name = 'badger' name = 'badger'
user = add_user(db, app=app, name=name) user = add_user(db, app=app, name=name)
r = api_request(app, 'users', name, 'server', method='post') r = api_request(app, 'users', name, 'server', method='post')
app.tornado_settings['spawner_class'] = mocking.MockSpawner
app_user = get_app_user(app, name) app_user = get_app_user(app, name)
assert app_user.spawner is not None assert app_user.spawner is not None
assert app_user.spawn_pending assert app_user.spawn_pending