X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/6c68141eb50255128cf38b5717b15b16f2a8cdff..bff57ea5cd61b02b829d831e3637151b1cf4b94c:/services/nodemanager/tests/testutil.py diff --git a/services/nodemanager/tests/testutil.py b/services/nodemanager/tests/testutil.py index 56f22c8e08..30808ac738 100644 --- a/services/nodemanager/tests/testutil.py +++ b/services/nodemanager/tests/testutil.py @@ -2,6 +2,7 @@ from __future__ import absolute_import, print_function +import threading import time import mock @@ -62,8 +63,23 @@ class MockSize(object): class MockTimer(object): + def __init__(self, deliver_immediately=True): + self.deliver_immediately = deliver_immediately + self.messages = [] + self.lock = threading.Lock() + + def deliver(self): + with self.lock: + to_deliver = self.messages + self.messages = [] + for callback, args, kwargs in to_deliver: + callback(*args, **kwargs) + def schedule(self, want_time, callback, *args, **kwargs): - return callback(*args, **kwargs) + with self.lock: + self.messages.append((callback, args, kwargs)) + if self.deliver_immediately: + self.deliver() class ActorTestMixin(object):