Skip to content

Commit 73b2a84

Browse files
committed
refactor(filesystem): rename functions to improve consistency
1 parent 215dab1 commit 73b2a84

5 files changed

Lines changed: 24 additions & 11 deletions

File tree

ardupilot_methodic_configurator/__main__.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,9 @@ def initialize_filesystem(state: ApplicationState) -> None:
371371

372372
# Write parameter default values if available
373373
if state.param_default_values:
374-
state.param_default_values_dirty = state.local_filesystem.write_param_default_values(state.param_default_values)
374+
state.param_default_values_dirty = state.local_filesystem.set_param_default_values_if_different(
375+
state.param_default_values
376+
)
375377

376378

377379
def initialize_flight_controller_and_filesystem(state: ApplicationState) -> None:

ardupilot_methodic_configurator/backend_filesystem.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -984,17 +984,27 @@ def merge_forced_or_derived_parameters(
984984
dest[param_name] = param
985985
return at_least_one_param_changed
986986

987-
def write_param_default_values(self, param_default_values: ParDict) -> bool:
987+
def set_param_default_values_if_different(self, param_default_values: ParDict) -> bool:
988+
"""
989+
Set the default parameter values if they are different from the current ones.
990+
991+
Args: param_default_values: A ParDict containing the default parameter values to compare against the current ones.
992+
Returns: bool: True if the default parameter values were updated, False if they were the same as the current ones.
993+
"""
988994
param_default_values = ParDict(dict(sorted(param_default_values.items())))
989995
if self.param_default_dict != param_default_values:
990996
self.param_default_dict = param_default_values
991997
return True
992998
return False
993999

994-
def write_param_default_values_to_file(self, param_default_values: ParDict, filename: str = "00_default.param") -> None:
995-
if self.write_param_default_values(param_default_values):
1000+
def write_param_default_values_to_file(
1001+
self, param_default_values: ParDict, filename: str = "00_default.param", vehicle_dir: str = ""
1002+
) -> None:
1003+
if self.set_param_default_values_if_different(param_default_values):
9961004
self.file_parameters[filename] = param_default_values
997-
self.param_default_dict.export_to_param(os_path.join(self.vehicle_dir, filename))
1005+
if len(vehicle_dir) == 0:
1006+
vehicle_dir = self.vehicle_dir
1007+
self.param_default_dict.export_to_param(os_path.join(vehicle_dir, filename))
9981008

9991009
@staticmethod
10001010
def _safe_path_join(base_dir: str, untrusted_path: str) -> str:

tests/test__main__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ def test_user_can_initialize_with_connected_hardware(
354354
mock_fc_info = MagicMock()
355355
mock_fc_info.get_param_default_values.return_value = default_params
356356
mock_fc_window.return_value = mock_fc_info
357-
mock_local_filesystem.write_param_default_values.return_value = True
357+
mock_local_filesystem.set_param_default_values_if_different.return_value = True
358358

359359
# Act: User initializes with connected hardware
360360
initialize_flight_controller_and_filesystem(application_state)
@@ -364,6 +364,7 @@ def test_user_can_initialize_with_connected_hardware(
364364
assert application_state.vehicle_type == "ArduCopter"
365365
assert application_state.local_filesystem is mock_local_filesystem
366366
assert application_state.param_default_values == default_params
367+
mock_local_filesystem.set_param_default_values_if_different.assert_called_once_with(default_params)
367368
assert application_state.param_default_values_dirty is True
368369

369370
def test_user_can_work_in_simulation_mode(self, application_state: ApplicationState) -> None:

tests/test_backend_filesystem.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -580,19 +580,19 @@ def test_tolerance_check_with_zero_values(self) -> None:
580580
assert result == test_filename
581581
mock_file.assert_called_once_with(expected_path, encoding="utf-8")
582582

583-
def test_write_param_default_values(self) -> None:
583+
def test_set_param_default_values_if_different(self) -> None:
584584
lfs = LocalFilesystem(
585585
"vehicle_dir", "vehicle_type", None, allow_editing_template_files=False, save_component_to_system_templates=False
586586
)
587587

588588
# Test with new values
589589
new_values = {"PARAM1": MagicMock(value=1.0)}
590-
result = lfs.write_param_default_values(new_values)
590+
result = lfs.set_param_default_values_if_different(new_values)
591591
assert result is True
592592
assert lfs.param_default_dict == new_values
593593

594594
# Test with same values (no change)
595-
result = lfs.write_param_default_values(new_values)
595+
result = lfs.set_param_default_values_if_different(new_values)
596596
assert result is False
597597

598598
def test_get_start_file(self) -> None:

tests/test_data_model_vehicle_project.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1081,7 +1081,7 @@ def test_user_can_create_project_from_bin_log_successfully(self) -> None:
10811081
# Assert: vehicle directory opened immediately after creation
10821082
mock_open.assert_called_once_with("/vehicles/my_flight")
10831083
# Assert: extracted defaults written (replacing the template's 00_default.param)
1084-
mock_write.assert_called_once_with(fake_defaults)
1084+
mock_write.assert_called_once_with(fake_defaults, "00_default.param", "/vehicles/my_flight")
10851085

10861086
def test_bin_log_defaults_are_written_to_vehicle_directory(self) -> None:
10871087
"""
@@ -1116,7 +1116,7 @@ def test_bin_log_defaults_are_written_to_vehicle_directory(self) -> None:
11161116
manager.create_new_vehicle_from_bin_log("/logs/flight.bin")
11171117

11181118
# Assert: the extracted defaults — not the template's — are written
1119-
mock_write.assert_called_once_with(fake_defaults)
1119+
mock_write.assert_called_once_with(fake_defaults, "00_default.param", "/vehicles/flight")
11201120

11211121
def test_missing_params_exported_to_import_file(self) -> None:
11221122
"""

0 commit comments

Comments
 (0)