diff options
author | Neil Williams <neil.williams@linaro.org> | 2017-11-21 11:35:23 +0000 |
---|---|---|
committer | Matt Hart <matthew.hart@linaro.org> | 2017-11-24 17:18:04 +0000 |
commit | eaeefc82d0861ea390149e411d4d8092bb40960d (patch) | |
tree | b3e09692c69f3c6a546eab8272a816dcc2596630 /lava_scheduler_app/tests/test_pipeline.py | |
parent | 64bb15c3f24701b537f8f99f6786dd4ba4ec75d1 (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.py | 49 |
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): |