aboutsummaryrefslogtreecommitdiff
path: root/lava_scheduler_app/tests/test_pipeline.py
diff options
context:
space:
mode:
authorNeil Williams <neil.williams@linaro.org>2017-11-21 11:35:23 +0000
committerMatt Hart <matthew.hart@linaro.org>2017-11-24 17:18:04 +0000
commiteaeefc82d0861ea390149e411d4d8092bb40960d (patch)
treeb3e09692c69f3c6a546eab8272a816dcc2596630 /lava_scheduler_app/tests/test_pipeline.py
parent64bb15c3f24701b537f8f99f6786dd4ba4ec75d1 (diff)
LAVA-1047 health check issues
Add a unit test and documentation that health check job YAML must still include a device_type which exists in the database. Change-Id: Ic5c7ea443c4763aa47de68ecb2e887f5c3d67692
Diffstat (limited to 'lava_scheduler_app/tests/test_pipeline.py')
-rw-r--r--lava_scheduler_app/tests/test_pipeline.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/lava_scheduler_app/tests/test_pipeline.py b/lava_scheduler_app/tests/test_pipeline.py
index 95c6a9948..fc3d33a4e 100644
--- a/lava_scheduler_app/tests/test_pipeline.py
+++ b/lava_scheduler_app/tests/test_pipeline.py
@@ -22,6 +22,7 @@ from lava_scheduler_app.tests.test_submission import ModelFactory, TestCaseWithF
from lava_scheduler_app.dbutils import (
testjob_submission,
find_device_for_job,
+ initiate_health_check_job,
end_job,
)
from lava_scheduler_app.schema import (
@@ -759,6 +760,54 @@ class TestPipelineSubmit(TestCaseWithFactory):
self.assertEqual(job_data['key'], 'value')
+class TestExtendsSubmit(TestCaseWithFactory):
+
+ def setUp(self):
+ super(TestExtendsSubmit, self).setUp()
+ Device.CONFIG_PATH = os.path.join(os.getcwd(), 'lava_scheduler_app', 'tests', 'devices')
+ Device.HEALTH_CHECK_PATH = os.path.join(os.getcwd(), 'lava_scheduler_app', 'tests', 'health-checks')
+ self.factory = YamlFactory()
+ self.device_type = self.factory.make_device_type(name='juno-r2')
+ self.factory.make_device(device_type=self.device_type, hostname="juno-r2-uboot-01")
+ self.factory.make_device(device_type=self.device_type, hostname="juno-r2-01")
+ logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
+ logger = logging.getLogger('lava_scheduler_app')
+ logger.disabled = True
+ logger.propagate = False
+ logger = logging.getLogger('lava-master')
+ logging.disable(logging.DEBUG)
+ logger.disabled = True
+ logger.propagate = False
+
+ def test_health_checks_extends(self):
+ device1 = Device.objects.get(hostname='juno-r2-uboot-01')
+ self.assertIsNotNone(Device.CONFIG_PATH)
+ self.assertIsNotNone(device1.load_configuration(output_format='raw'))
+ self.assertEqual('juno-r2-uboot', device1.get_extends())
+ self.assertIsNotNone(device1.HEALTH_CHECK_PATH)
+ self.assertTrue(
+ os.path.exists(
+ os.path.join(
+ Device.HEALTH_CHECK_PATH, "%s.yaml" % device1.get_extends())))
+ self.assertIsNotNone(initiate_health_check_job(device1))
+
+ def test_health_checks_dbname(self):
+ device2 = Device.objects.get(hostname='juno-r2-01')
+ self.assertIsNotNone(device2.load_configuration(output_format='raw'))
+ self.assertEqual('juno', device2.get_extends())
+ self.assertIsNotNone(device2.HEALTH_CHECK_PATH)
+ self.assertTrue(
+ os.path.exists(
+ os.path.join(
+ Device.HEALTH_CHECK_PATH, "%s.yaml" % device2.get_extends())))
+ # device_type specified in the job does not exist in the database
+ self.assertIsNone(initiate_health_check_job(device2))
+
+ device_type = self.factory.make_device_type(name='juno')
+ self.factory.make_device(device_type=device_type, hostname="juno-01")
+ self.assertIsNotNone(initiate_health_check_job(device2))
+
+
class TestYamlMultinode(TestCaseWithFactory):
def setUp(self):