projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
7478: Fix nodemanager's libcloud install dependency.
[arvados.git]
/
services
/
nodemanager
/
tests
/
testutil.py
diff --git
a/services/nodemanager/tests/testutil.py
b/services/nodemanager/tests/testutil.py
index 15337c4120173b6a7f2ca6b21f0924bd571f2326..2ec13c0b8bbdb00d375b70cccb7fd31f31d66fe6 100644
(file)
--- a/
services/nodemanager/tests/testutil.py
+++ b/
services/nodemanager/tests/testutil.py
@@
-1,4
+1,7
@@
#!/usr/bin/env python
#!/usr/bin/env python
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
from __future__ import absolute_import, print_function
from __future__ import absolute_import, print_function
@@
-52,7
+55,7
@@
def cloud_object_mock(name_id, **extra):
def cloud_node_fqdn(node):
# We intentionally put the FQDN somewhere goofy to make sure tested code is
# using this function for lookups.
def cloud_node_fqdn(node):
# We intentionally put the FQDN somewhere goofy to make sure tested code is
# using this function for lookups.
- return node.extra.get('testname',
'NoTestName
')
+ return node.extra.get('testname',
node.name+'.NoTestName.invalid
')
def ip_address_mock(last_octet):
return '10.20.30.{}'.format(last_octet)
def ip_address_mock(last_octet):
return '10.20.30.{}'.format(last_octet)
@@
-75,14
+78,17
@@
class MockShutdownTimer(object):
class MockSize(object):
class MockSize(object):
- def __init__(self, factor):
+ def __init__(self, factor
, preemptable=False
):
self.id = 'z{}.test'.format(factor)
self.id = 'z{}.test'.format(factor)
- self.name = self.id
+ self.name =
'test size '+
self.id
self.ram = 128 * factor
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 = {}
self.bandwidth = 16 * factor
self.price = float(factor)
self.extra = {}
+ self.real = self
+ self.preemptable = preemptable
def __eq__(self, other):
return self.id == other.id
def __eq__(self, other):
return self.id == other.id
@@
-119,7
+125,10
@@
class ActorTestMixin(object):
pykka.ActorRegistry.stop_all()
def stop_proxy(self, proxy):
pykka.ActorRegistry.stop_all()
def stop_proxy(self, proxy):
- return proxy.actor_ref.stop(timeout=self.TIMEOUT)
+ th = proxy.get_thread().get()
+ t = proxy.actor_ref.stop(timeout=self.TIMEOUT)
+ th.join()
+ return t
def wait_for_assignment(self, proxy, attr_name, unassigned=None,
timeout=TIMEOUT):
def wait_for_assignment(self, proxy, attr_name, unassigned=None,
timeout=TIMEOUT):
@@
-132,11
+141,13
@@
class ActorTestMixin(object):
if result is not unassigned:
return result
if result is not unassigned:
return result
- def busywait(self, f):
+ def busywait(self, f
, finalize=None
):
n = 0
n = 0
- while not f() and n <
1
0:
+ while not f() and n <
2
0:
time.sleep(.1)
n += 1
time.sleep(.1)
n += 1
+ if finalize is not None:
+ finalize()
self.assertTrue(f())
self.assertTrue(f())
@@
-209,7
+220,9
@@
class RemotePollLoopActorTestMixin(ActorTestMixin):
self.monitor = self.TEST_CLASS.start(
self.client, self.timer, *args, **kwargs).proxy()
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'],
node = mock.NonCallableMagicMock(
['id', 'name', 'state', 'public_ips', 'private_ips', 'driver', 'size',
'image', 'extra'],