X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/469102b30008b4ee73c9f44b03a6bd82a2a91fb2..58a7e4f0854e392de979c531ad397bb508a77779:/services/nodemanager/tests/testutil.py?ds=sidebyside diff --git a/services/nodemanager/tests/testutil.py b/services/nodemanager/tests/testutil.py index 1b6aab3caf..1ee76900bf 100644 --- a/services/nodemanager/tests/testutil.py +++ b/services/nodemanager/tests/testutil.py @@ -2,13 +2,15 @@ from __future__ import absolute_import, print_function +import contextlib import datetime +import mock +import pykka +import sys import threading import time import libcloud.common.types as cloud_types -import mock -import pykka from . import pykka_timeout @@ -55,6 +57,17 @@ def cloud_node_fqdn(node): def ip_address_mock(last_octet): return '10.20.30.{}'.format(last_octet) +@contextlib.contextmanager +def redirected_streams(stdout=None, stderr=None): + orig_stdout, sys.stdout = sys.stdout, stdout or sys.stdout + orig_stderr, sys.stderr = sys.stderr, stderr or sys.stderr + try: + yield + finally: + sys.stdout = orig_stdout + sys.stderr = orig_stderr + + class MockShutdownTimer(object): def _set_state(self, is_open, next_opening): self.window_open = lambda: is_open @@ -66,7 +79,8 @@ class MockSize(object): self.id = 'z{}.test'.format(factor) self.name = self.id self.ram = 128 * factor - self.disk = 100 * factor + self.disk = factor # GB + self.scratch = 1000 * factor # MB self.bandwidth = 16 * factor self.price = float(factor) self.extra = {} @@ -196,7 +210,9 @@ class RemotePollLoopActorTestMixin(ActorTestMixin): self.monitor = self.TEST_CLASS.start( self.client, self.timer, *args, **kwargs).proxy() -def cloud_node_mock(node_num=99, size=MockSize(1), **extra): +def cloud_node_mock(node_num=99, size=None, **extra): + if size is None: + size = MockSize(node_num) node = mock.NonCallableMagicMock( ['id', 'name', 'state', 'public_ips', 'private_ips', 'driver', 'size', 'image', 'extra'],