def test_from_overlays(self): self._check_matching(JobConfig()) jc = JobConfig(job_name='TestIngester', preload=True, data_directory='/tmp/a', job_group='gg', tracing='info') jc.comment = 'Test configuration' jc.target_pe_count = 2 self._check_matching(jc) jc = JobConfig(job_name='TestIngester2') jc.comment = 'Test configuration2' self._check_matching(jc) jc = JobConfig(preload=True) jc.raw_overlay = {'a': 34} self._check_matching(jc) jc = JobConfig(preload=True) jc.raw_overlay = {'x': 'fff'} jc.submission_parameters['one'] = 1 jc.submission_parameters['two'] = 2 self._check_matching(jc)
def test_non_empty(self): jc = JobConfig(job_name='TestIngester') jc.comment = 'Test configuration' jc.target_pe_count = 2 jco = self._check_overlays(jc) self.assertIn('jobConfig', jco) self.assertIn('jobName', jco['jobConfig']) self.assertEqual('TestIngester', jco['jobConfig']['jobName'])
def test_overwrite(self): jc = JobConfig('Overwrite') raw = {} raw['jobConfig'] = {'jobName': 'myjob72', 'jobGroup': 'gg'} raw['deploymentConfig'] = {'fusionScheme': 'dummy', 'other': 'xx'} raw['unknown'] = {'hasdsd': 32532} jc.raw_overlay = raw jc.target_pe_count = 93 self.assertEqual('Overwrite', jc.job_name) self.assertEqual(93, jc.target_pe_count) gc = {} jc._add_overlays(gc) #type: ignore self.assertTrue('jobConfigOverlays' in gc) jcol = gc['jobConfigOverlays'] self.assertIsInstance(jcol, list) self.assertEqual(1, len(jcol)) jco = jcol[0] self.assertIsInstance(jco, dict) self.assertEqual(3, len(jco)) # test unknown value copied as-is self.assertTrue('unknown' in jco) self.assertEqual(jc.raw_overlay['unknown'], jco['unknown']) # test overwrite/merge of job config self.assertTrue('jobConfig' in jco) jjc = jco['jobConfig'] self.assertIsInstance(jjc, dict) self.assertEqual(2, len(jjc)) self.assertEqual('Overwrite', jjc.get('jobName')) self.assertEqual('gg', jjc.get('jobGroup')) # test overwrite/merge of deployment config self.assertTrue('deploymentConfig' in jco) dc = jco['deploymentConfig'] self.assertIsInstance(dc, dict) self.assertEqual(3, len(dc)) self.assertEqual('xx', dc.get('other')) self.assertEqual('manual', dc.get('fusionScheme')) self.assertEqual(93, dc.get('fusionTargetPeCount'))
def test_merge(self): jc = JobConfig(job_name='Merge') jc.target_pe_count = 7 jc.raw_overlay = {'jobConfig': {'jobGroup': 'mygroup82'}} jc.raw_overlay['deploymentConfig'] = {'threadingModel': 'manual'} jc.raw_overlay['other'] = {'xx': 'yyy'} gc = {} jc._add_overlays(gc) #type: ignore self.assertTrue('jobConfigOverlays' in gc) jcol = gc['jobConfigOverlays'] self.assertIsInstance(jcol, list) self.assertEqual(1, len(jcol)) jco = jcol[0] self.assertIsInstance(jco, dict) self.assertEqual(3, len(jco)) # test unknown value copied as-is self.assertTrue('other' in jco) self.assertEqual(jc.raw_overlay['other'], jco['other']) # test merge of job config self.assertTrue('jobConfig' in jco) jjc = jco['jobConfig'] self.assertIsInstance(jjc, dict) self.assertEqual(2, len(jjc)) self.assertEqual('Merge', jjc.get('jobName')) self.assertEqual('mygroup82', jjc.get('jobGroup')) # test merge of deployment config self.assertTrue('deploymentConfig' in jco) dc = jco['deploymentConfig'] self.assertIsInstance(dc, dict) self.assertEqual(3, len(dc)) self.assertEqual('manual', dc.get('threadingModel')) self.assertEqual('manual', dc.get('fusionScheme')) self.assertEqual(7, dc.get('fusionTargetPeCount'))
def test_merge(self): jc = JobConfig(job_name='Merge') jc.target_pe_count = 7 jc.raw_overlay = {'jobConfig': {'jobGroup':'mygroup82'}} jc.raw_overlay['deploymentConfig'] = {'threadingModel':'manual'} jc.raw_overlay['other'] = {'xx':'yyy'} gc = {} jc._add_overlays(gc) #type: ignore self.assertTrue('jobConfigOverlays' in gc) jcol = gc['jobConfigOverlays'] self.assertIsInstance(jcol, list) self.assertEqual(1, len(jcol)) jco = jcol[0] self.assertIsInstance(jco, dict) self.assertEqual(3, len(jco)) # test unknown value copied as-is self.assertTrue('other' in jco) self.assertEqual(jc.raw_overlay['other'], jco['other']) # test merge of job config self.assertTrue('jobConfig' in jco) jjc = jco['jobConfig'] self.assertIsInstance(jjc, dict) self.assertEqual(2, len(jjc)) self.assertEqual('Merge', jjc.get('jobName')) self.assertEqual('mygroup82', jjc.get('jobGroup')) # test merge of deployment config self.assertTrue('deploymentConfig' in jco) dc = jco['deploymentConfig'] self.assertIsInstance(dc, dict) self.assertEqual(3, len(dc)) self.assertEqual('manual', dc.get('threadingModel')) self.assertEqual('manual', dc.get('fusionScheme')) self.assertEqual(7, dc.get('fusionTargetPeCount'))