diff --git a/aviary/interface/methods_for_level2.py b/aviary/interface/methods_for_level2.py index 097d476d4..04aa7a971 100644 --- a/aviary/interface/methods_for_level2.py +++ b/aviary/interface/methods_for_level2.py @@ -1366,7 +1366,9 @@ def run_off_design_mission( ) if name is None: - name = name = self._name + '_off_design' + name = self._name + '_' + str(problem_type.value) + curr_time = datetime.now().strftime('%m%d%y%H%M%S') + name += '_' + curr_time off_design_prob = AviaryProblem(name=name) # Set up problem for mission, such as equations of motion, configurators, etc. diff --git a/aviary/interface/test/test_save_results.py b/aviary/interface/test/test_save_results.py index d15e24d86..c79e92b97 100644 --- a/aviary/interface/test/test_save_results.py +++ b/aviary/interface/test/test_save_results.py @@ -1,5 +1,8 @@ import unittest +from unittest.mock import patch, Mock from copy import deepcopy +from datetime import datetime +import re from openmdao.utils.testing_utils import require_pyoptsparse, use_tempdirs @@ -66,6 +69,18 @@ def test_fallout(self): prob = reload_aviary_problem('interface/test/sizing_results_for_test.json') prob.run_off_design_mission(problem_type='fallout', phase_info=local_phase_info) + @require_pyoptsparse(optimizer='IPOPT') + @patch('aviary.interface.methods_for_level2.datetime') + def test_output_naming(self, mock_datetime): + fixed_now = datetime(2026, 2, 5, 12, 1, 1) + mock_datetime.now.return_value = fixed_now + + local_phase_info = deepcopy(phase_info) + + prob = reload_aviary_problem('interface/test/sizing_results_for_test.json') + prob = prob.run_off_design_mission(problem_type='fallout', phase_info=local_phase_info) + self.assertTrue('fallout_020526120101' in prob._name) + def compare_files(self, test_file, validation_file): """ Compares the specified file with a validation file.