diff --git a/CHANGES.txt b/CHANGES.txt index bd1ef16ce3e4048a49544373a0ab763fa919c9f2..89b0edd9c248e3e981a1e7dc1bba4416445475b9 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -14,6 +14,7 @@ Config * Fixed error due to variables at namelist level * Fixed recognition of native variables to ignore invalid variable names +* Fixed missing [jobs] level variables in extended jobs Tools ----- diff --git a/mkexp b/mkexp index d6146cf8e1c5b492fb937a276ec93f3001c20520..652a902dd3eab74883e94ae0bf2c585a3e130e2e 100755 --- a/mkexp +++ b/mkexp @@ -489,7 +489,7 @@ def extend(subjob, jobs_config, extended_jobs, job_dict=None): elif subjob_base != subjob and subjob_base in jobs_config: extended_job = subjob_base if extended_job: - extend(extended_job, jobs_config, extended_jobs) + extend(extended_job, jobs_config, extended_jobs, job_dict) # Add global job settings pre_config = ConfigObj(interpolation=False) diff --git a/test.py b/test.py index cb4206f02ba35cc1c6924418dce8b83b360d1b55..e0c7259c7c6aca7e65579882e7eaf424d8e9b601 100644 --- a/test.py +++ b/test.py @@ -1328,6 +1328,34 @@ class InheritanceTestCase(MkexpSimpleTestCase): result = align(result) self.assertMultiLineEqual(expecteds[i], result) + def test_job_dict_in_extend(self): + writeconfig(self.exp_id, u""" + EXP_TYPE = + [jobs] + var = 42 + [[job1]] + .extends = job + [[job]] + """) + writetemplate(self.exp_id, 'job', u""" + %{JOB.var} # %{JOB.id} + """) + expecteds = { + 'job': align(u""" + 42 # job + """), + 'job1': align(u""" + 42 # job1 + """), + } + ignore = output(script("mkexp "+self.exp_id+".config")) + for i in ('job', 'job1'): + result = readfile(join("test", "experiments", self.exp_id, + self.exp_id+"."+i)) + result = align(result) + self.assertMultiLineEqual(expecteds[i], result) + + class JobSiblingsTestCase(MkexpSimpleTestCase): def test_sibling_lookup(self):