X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/060d38d627bd1e51dd2b3c6e7de9af6aa7d7b6f3..080c940d7a8134a6e277a53b7e45eb27e2b2c87f:/services/nodemanager/tests/test_nodelist.py diff --git a/services/nodemanager/tests/test_nodelist.py b/services/nodemanager/tests/test_nodelist.py index 11f41b8d9a..df31a12267 100644 --- a/services/nodemanager/tests/test_nodelist.py +++ b/services/nodemanager/tests/test_nodelist.py @@ -21,7 +21,7 @@ class ArvadosNodeListMonitorActorTestCase(testutil.RemotePollLoopActorTestMixin, *args, **kwargs) self.client.nodes().list().execute.side_effect = side_effect - @mock.patch("subprocess.check_output") + @mock.patch("subprocess32.check_output") def test_uuid_is_subscription_key(self, sinfo_mock): sinfo_mock.return_value = "" node = testutil.arvados_node_mock() @@ -40,12 +40,17 @@ class ArvadosNodeListMonitorActorTestCase(testutil.RemotePollLoopActorTestMixin, self.subscriber.assert_called_with(node) self.assertEqual("down", node["crunch_worker_state"]) - @mock.patch("subprocess.check_output") + @mock.patch("subprocess32.check_output") def test_update_from_sinfo(self, sinfo_mock): - sinfo_mock.return_value = "compute99 alloc" - node = testutil.arvados_node_mock() + sinfo_mock.return_value = """compute1|idle|instancetype=a1.test +compute2|alloc|(null) +notarvados12345|idle|(null) +""" + nodeIdle = testutil.arvados_node_mock(node_num=1) + nodeBusy = testutil.arvados_node_mock(node_num=2) + nodeMissing = testutil.arvados_node_mock(node_num=99) self.build_monitor([{ - 'items': [node], + 'items': [nodeIdle, nodeBusy, nodeMissing], 'items_available': 1, 'offset': 0 }, { @@ -53,11 +58,18 @@ class ArvadosNodeListMonitorActorTestCase(testutil.RemotePollLoopActorTestMixin, 'items_available': 1, 'offset': 1 }]) - self.monitor.subscribe_to(node['uuid'], + self.monitor.subscribe_to(nodeMissing['uuid'], self.subscriber).get(self.TIMEOUT) self.stop_proxy(self.monitor) - self.subscriber.assert_called_with(node) - self.assertEqual("busy", node["crunch_worker_state"]) + self.subscriber.assert_called_with(nodeMissing) + + self.assertEqual("idle", nodeIdle["crunch_worker_state"]) + self.assertEqual("busy", nodeBusy["crunch_worker_state"]) + self.assertEqual("down", nodeMissing["crunch_worker_state"]) + + self.assertEqual("instancetype=a1.test", nodeIdle["slurm_node_features"]) + self.assertEqual("", nodeBusy["slurm_node_features"]) + self.assertEqual("", nodeMissing["slurm_node_features"]) class CloudNodeListMonitorActorTestCase(testutil.RemotePollLoopActorTestMixin, @@ -72,6 +84,7 @@ class CloudNodeListMonitorActorTestCase(testutil.RemotePollLoopActorTestMixin, self.public_ips = [] self.size = testutil.MockSize(1) self.state = 0 + self.extra = {'arvados_node_size': self.size.id} def build_monitor(self, side_effect, *args, **kwargs):