X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/13efb6304b9fcbe0fd3b496c751184c7aa1cc4d0..a32c4f9997a0c8941b62668c5e59941985359c05:/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):