Merge branch '8784-dir-listings'
[arvados.git] / services / nodemanager / tests / test_config.py
index 3aa95410c439daa16b70b795781a058776db9dcc..921281bc517bd7b6bc41935193c0b8562395a6da 100644 (file)
@@ -1,4 +1,7 @@
 #!/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
 
@@ -6,6 +9,8 @@ import io
 import logging
 import unittest
 
+import arvnodeman.computenode.dispatch as dispatch
+import arvnodeman.computenode.dispatch.slurm as slurm_dispatch
 import arvnodeman.config as nmconfig
 
 class NodeManagerConfigTestCase(unittest.TestCase):
@@ -22,6 +27,7 @@ creds = dummy_creds
 
 [Size 1]
 cores = 1
+price = 0.8
 
 [Logging]
 file = /dev/null
@@ -53,6 +59,11 @@ testlogger = INFO
         size, kwargs = sizes[0]
         self.assertEqual('Small', size.name)
         self.assertEqual(1, kwargs['cores'])
+        self.assertEqual(0.8, kwargs['price'])
+
+    def test_default_node_mem_scaling(self):
+        config = self.load_config()
+        self.assertEqual(0.95, config.getfloat('Daemon', 'node_mem_scaling'))
 
     def test_shutdown_windows(self):
         config = self.load_config()
@@ -63,3 +74,19 @@ testlogger = INFO
         self.assertEqual({'level': logging.DEBUG,
                           'testlogger': logging.INFO},
                          config.log_levels())
+
+    def check_dispatch_classes(self, config, module):
+        setup, shutdown, update, monitor = config.dispatch_classes()
+        self.assertIs(setup, module.ComputeNodeSetupActor)
+        self.assertIs(shutdown, module.ComputeNodeShutdownActor)
+        self.assertIs(update, module.ComputeNodeUpdateActor)
+        self.assertIs(monitor, module.ComputeNodeMonitorActor)
+
+    def test_default_dispatch(self):
+        config = self.load_config()
+        self.check_dispatch_classes(config, dispatch)
+
+    def test_custom_dispatch(self):
+        config = self.load_config(
+            config_str=self.TEST_CONFIG + "[Daemon]\ndispatcher=slurm\n")
+        self.check_dispatch_classes(config, slurm_dispatch)