Use a condition variable instead of sleeping

This commit is contained in:
Armin Ronacher 2014-02-09 13:25:36 +00:00
parent 280d865960
commit 75f2af7a6a

View file

@ -15,8 +15,7 @@ import flask
import pickle
import unittest
from datetime import datetime
from threading import Thread
from time import sleep
from threading import Thread, Condition
from flask.testsuite import FlaskTestCase, emits_module_deprecation_warning
from flask._compat import text_type
from werkzeug.exceptions import BadRequest, NotFound
@ -1019,12 +1018,16 @@ class BasicFunctionalityTestCase(FlaskTestCase):
def test_before_first_request_functions_concurrent(self):
got = []
app = flask.Flask(__name__)
cv = Condition()
@app.before_first_request
def foo():
sleep(1)
with cv:
cv.wait()
got.append(42)
c = app.test_client()
def get_and_assert():
with cv:
cv.notify()
c.get("/")
self.assert_equal(got, [42])
t = Thread(target=get_and_assert)