From b72de8ae833bcc4f851e3de45c13474950310a35 Mon Sep 17 00:00:00 2001 From: dbeltran Date: Tue, 26 Nov 2024 10:25:29 +0100 Subject: [PATCH 1/4] Splits are now translated in the template --- autosubmit/job/job.py | 6 +++--- autosubmit/job/job_list.py | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/autosubmit/job/job.py b/autosubmit/job/job.py index ba4d70407..ca3c38619 100644 --- a/autosubmit/job/job.py +++ b/autosubmit/job/job.py @@ -1881,7 +1881,8 @@ class Job(object): return parameters def update_job_parameters(self,as_conf, parameters): - self.splits = as_conf.jobs_data[self.section].get("SPLITS", None) + if self.splits == "auto": + self.splits = as_conf.jobs_data[self.section].get("SPLITS", None) self.delete_when_edgeless = as_conf.jobs_data[self.section].get("DELETE_WHEN_EDGELESS", True) self.check = as_conf.jobs_data[self.section].get("CHECK", False) self.check_warnings = as_conf.jobs_data[self.section].get("CHECK_WARNINGS", False) @@ -1901,8 +1902,7 @@ class Job(object): parameters['MEMBER'] = self.member parameters['SPLIT'] = self.split parameters['SHAPE'] = self.shape - if parameters.get('SPLITS', "auto") == "auto": - parameters['SPLITS'] = self.splits + parameters['SPLITS'] = self.splits parameters['DELAY'] = self.delay parameters['FREQUENCY'] = self.frequency parameters['SYNCHRONIZE'] = self.synchronize diff --git a/autosubmit/job/job_list.py b/autosubmit/job/job_list.py index d373fb6b2..ab4406c3f 100644 --- a/autosubmit/job/job_list.py +++ b/autosubmit/job/job_list.py @@ -1257,6 +1257,7 @@ class JobList(object): if "auto" in filters_to.get("SPLITS_TO", "").lower(): filters_to["SPLITS_TO"] = filters_to["SPLITS_TO"].lower() filters_to["SPLITS_TO"] = filters_to["SPLITS_TO"].replace("auto", auto_splits) + job.splits = auto_splits return dependency def _manage_job_dependencies(self, dic_jobs, job, date_list, member_list, chunk_list, dependencies_keys, -- GitLab From 8b27a8efee70de2bee95e6c4a09dfe7f1202b23f Mon Sep 17 00:00:00 2001 From: dbeltran Date: Tue, 26 Nov 2024 10:52:31 +0100 Subject: [PATCH 2/4] added tests --- test/unit/test_dependencies.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/test/unit/test_dependencies.py b/test/unit/test_dependencies.py index e6dc3e880..cf18f4af3 100644 --- a/test/unit/test_dependencies.py +++ b/test/unit/test_dependencies.py @@ -6,6 +6,8 @@ import tempfile import unittest from copy import deepcopy from datetime import datetime + +from defer import return_value from mock import patch from mock.mock import MagicMock @@ -551,7 +553,7 @@ class TestJobList(unittest.TestCase): self.assertEqual(expected_output, result) -def test_normalize_auto_keyword(autosubmit_config): +def test_normalize_auto_keyword(autosubmit_config, mocker): as_conf = autosubmit_config('a000', experiment_data={ }) @@ -602,6 +604,7 @@ def test_normalize_auto_keyword(autosubmit_config): dependency.section = "minus" dependency = job_list._normalize_auto_keyword(job, dependency) assert dependency.relationships["SPLITS_FROM"]["key"]["SPLITS_TO"] == "40" + assert job.splits == "40" dependency.relationships = { "SPLITS_FROM": { "key": { @@ -613,7 +616,19 @@ def test_normalize_auto_keyword(autosubmit_config): dependency.section = "plus" dependency = job_list._normalize_auto_keyword(job, dependency) assert dependency.relationships["SPLITS_FROM"]["key"]["SPLITS_TO"] == "50" - + assert job.splits == "50" # Test that the param is assigned + + # Test that the param is not being changed after update_job_parameters + as_conf.experiment_data["JOBS"] = {} + as_conf.experiment_data["JOBS"][job.section] = {} + as_conf.experiment_data["JOBS"][job.section]["SPLITS"] = "auto" + job.date = None + # mock calendar_split + # return the argument + mocker.patch("autosubmit.job.job.Job.calendar_split", side_effect=lambda x, y: y) + parameters = job.update_job_parameters(as_conf, {}) + assert job.splits == "50" + assert parameters["SPLITS"] == "50" if __name__ == '__main__': -- GitLab From e183ebc8e396bc78d3a1c8b8e9fb764a56a7674e Mon Sep 17 00:00:00 2001 From: dbeltran Date: Tue, 26 Nov 2024 10:52:58 +0100 Subject: [PATCH 3/4] removed debug comments --- test/unit/test_dependencies.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/test/unit/test_dependencies.py b/test/unit/test_dependencies.py index cf18f4af3..0ba817cec 100644 --- a/test/unit/test_dependencies.py +++ b/test/unit/test_dependencies.py @@ -623,8 +623,6 @@ def test_normalize_auto_keyword(autosubmit_config, mocker): as_conf.experiment_data["JOBS"][job.section] = {} as_conf.experiment_data["JOBS"][job.section]["SPLITS"] = "auto" job.date = None - # mock calendar_split - # return the argument mocker.patch("autosubmit.job.job.Job.calendar_split", side_effect=lambda x, y: y) parameters = job.update_job_parameters(as_conf, {}) assert job.splits == "50" -- GitLab From b9b2943e27bf050687208766ab07df88baf55cf0 Mon Sep 17 00:00:00 2001 From: dbeltran Date: Tue, 26 Nov 2024 10:54:50 +0100 Subject: [PATCH 4/4] changed import that should be there --- test/unit/test_dependencies.py | 1 - 1 file changed, 1 deletion(-) diff --git a/test/unit/test_dependencies.py b/test/unit/test_dependencies.py index 0ba817cec..8c0bb563f 100644 --- a/test/unit/test_dependencies.py +++ b/test/unit/test_dependencies.py @@ -7,7 +7,6 @@ import unittest from copy import deepcopy from datetime import datetime -from defer import return_value from mock import patch from mock.mock import MagicMock -- GitLab