From 34471a1d0dc06ca5590f5e6303f474e7f7059e85 Mon Sep 17 00:00:00 2001 From: Karl-Hermann Wieners <karl-hermann.wieners@mpimet.mpg.de> Date: Thu, 9 Jun 2022 18:00:20 +0200 Subject: [PATCH] Config: fix missing [jobs] level variables in extended jobs --- CHANGES.txt | 1 + mkexp | 2 +- test.py | 28 ++++++++++++++++++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/CHANGES.txt b/CHANGES.txt index bd1ef16..89b0edd 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 d6146cf..652a902 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 cb4206f..e0c7259 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): -- GitLab