Merge "Fix time related check in rejection test"
This commit is contained in:
commit
fef9387dc1
|
@ -12,8 +12,10 @@
|
||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
|
import threading
|
||||||
import time
|
import time
|
||||||
|
|
||||||
|
from eventlet.green import threading as green_threading
|
||||||
import testscenarios
|
import testscenarios
|
||||||
from testtools import testcase
|
from testtools import testcase
|
||||||
|
|
||||||
|
@ -140,29 +142,41 @@ class TestExecutors(testscenarios.TestWithScenarios, base.TestCase):
|
||||||
self.assertEqual(5, len(happy_completed))
|
self.assertEqual(5, len(happy_completed))
|
||||||
|
|
||||||
|
|
||||||
_REJECTION = rejection.reject_when_reached(1)
|
|
||||||
|
|
||||||
|
|
||||||
class TestRejection(testscenarios.TestWithScenarios, base.TestCase):
|
class TestRejection(testscenarios.TestWithScenarios, base.TestCase):
|
||||||
|
rejector = rejection.reject_when_reached(1)
|
||||||
|
|
||||||
scenarios = [
|
scenarios = [
|
||||||
('green', {'executor_cls': futurist.GreenThreadPoolExecutor,
|
('green', {'executor_cls': futurist.GreenThreadPoolExecutor,
|
||||||
'executor_kwargs': {'check_and_reject': _REJECTION,
|
'executor_kwargs': {'check_and_reject': rejector,
|
||||||
'max_workers': 1}}),
|
'max_workers': 1},
|
||||||
|
'event_cls': green_threading.Event}),
|
||||||
('thread', {'executor_cls': futurist.ThreadPoolExecutor,
|
('thread', {'executor_cls': futurist.ThreadPoolExecutor,
|
||||||
'executor_kwargs': {'check_and_reject': _REJECTION,
|
'executor_kwargs': {'check_and_reject': rejector,
|
||||||
'max_workers': 1}}),
|
'max_workers': 1},
|
||||||
|
'event_cls': threading.Event}),
|
||||||
]
|
]
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestRejection, self).setUp()
|
super(TestRejection, self).setUp()
|
||||||
self.executor = self.executor_cls(**self.executor_kwargs)
|
self.executor = self.executor_cls(**self.executor_kwargs)
|
||||||
|
self.addCleanup(self.executor.shutdown, wait=True)
|
||||||
|
|
||||||
def test_rejection(self):
|
def test_rejection(self):
|
||||||
self.addCleanup(self.executor.shutdown)
|
ev = self.event_cls()
|
||||||
|
ev_thread_started = self.event_cls()
|
||||||
|
self.addCleanup(ev.set)
|
||||||
|
|
||||||
|
def wait_until_set(check_delay):
|
||||||
|
ev_thread_started.set()
|
||||||
|
while not ev.is_set():
|
||||||
|
ev.wait(check_delay)
|
||||||
|
|
||||||
# 1 worker + 1 item of backlog
|
# 1 worker + 1 item of backlog
|
||||||
for _i in range(2):
|
self.executor.submit(wait_until_set, 0.1)
|
||||||
self.executor.submit(delayed, 0.5)
|
# ensure the above thread has started before doing anything
|
||||||
|
# else.
|
||||||
|
ev_thread_started.wait()
|
||||||
|
self.executor.submit(wait_until_set, 0.1)
|
||||||
|
|
||||||
self.assertRaises(futurist.RejectedSubmission,
|
self.assertRaises(futurist.RejectedSubmission,
|
||||||
self.executor.submit, returns_one)
|
self.executor.submit, returns_one)
|
||||||
|
|
Loading…
Reference in New Issue