diff --git a/unittests/annotate_params_test.py b/unittests/annotate_params_test.py
index aff1236c..f3d31c12 100755
--- a/unittests/annotate_params_test.py
+++ b/unittests/annotate_params_test.py
@@ -15,7 +15,7 @@
import tempfile
import unittest
from unittest import mock
-from unittest.mock import Mock, mock_open, patch
+from unittest.mock import patch
from xml.etree import ElementTree as ET # no parsing, just data-structure manipulation
import pytest
@@ -40,20 +40,20 @@
@pytest.fixture
def mock_update() -> mock.Mock:
- with patch("ardupilot_methodic_configurator.annotate_params.update_parameter_documentation") as mock:
- yield mock
+ with patch("ardupilot_methodic_configurator.annotate_params.update_parameter_documentation") as mock_fun:
+ yield mock_fun
@pytest.fixture
def mock_get_xml_dir() -> mock.Mock:
- with patch("ardupilot_methodic_configurator.annotate_params.get_xml_dir") as mock:
- yield mock
+ with patch("ardupilot_methodic_configurator.annotate_params.get_xml_dir") as mock_fun:
+ yield mock_fun
@pytest.fixture
def mock_get_xml_url() -> mock.Mock:
- with patch("ardupilot_methodic_configurator.annotate_params.get_xml_url") as mock:
- yield mock
+ with patch("ardupilot_methodic_configurator.annotate_params.get_xml_url") as mock_fun:
+ yield mock_fun
class TestParamDocsUpdate(unittest.TestCase): # pylint: disable=missing-class-docstring, too-many-public-methods
@@ -88,7 +88,7 @@ def setUp(self) -> None:
},
}
- @patch("builtins.open", new_callable=mock_open, read_data="")
+ @patch("builtins.open", new_callable=mock.mock_open, read_data="")
@patch("os.path.isfile")
@patch("ardupilot_methodic_configurator.annotate_params.Par.load_param_file_into_dict")
def test_get_xml_data_local_file(self, mock_load_param, mock_isfile, mock_open_) -> None:
@@ -139,7 +139,7 @@ def side_effect(_filename) -> bool:
mock_load_param.side_effect = FileNotFoundError
# Mock the open function to return a dummy XML string
- mock_open = mock.mock_open(read_data="") # pylint: disable=redefined-outer-name
+ mock_open = mock.mock_open(read_data="")
with patch("builtins.open", mock_open):
# Call the function with a filename that exists in the script directory
result = get_xml_data(BASE_URL, ".", PARAM_DEFINITION_XML_FILE, "ArduCopter")
@@ -602,10 +602,10 @@ class TestAnnotateParamsExceptionHandling(unittest.TestCase):
"""Test parameter exception handling."""
@pytest.mark.usefixtures("mock_update", "mock_get_xml_dir", "mock_get_xml_url")
- @patch("builtins.open", new_callable=mock_open)
+ @patch("builtins.open", new_callable=mock.mock_open)
def test_main_ioerror(self, mock_file) -> None:
with patch("ardupilot_methodic_configurator.annotate_params.arg_parser") as mock_arg_parser:
- mock_arg_parser.return_value = Mock(
+ mock_arg_parser.return_value = mock.Mock(
vehicle_type="ArduCopter",
firmware_version="4.0",
target=".",
@@ -621,10 +621,10 @@ def test_main_ioerror(self, mock_file) -> None:
assert cm.value.code in [1, 2]
@pytest.mark.usefixtures("mock_update", "mock_get_xml_dir", "mock_get_xml_url")
- @patch("builtins.open", new_callable=mock_open)
+ @patch("builtins.open", new_callable=mock.mock_open)
def test_main_oserror(self, mock_file) -> None:
with patch("ardupilot_methodic_configurator.annotate_params.arg_parser") as mock_arg_parser:
- mock_arg_parser.return_value = Mock(
+ mock_arg_parser.return_value = mock.Mock(
vehicle_type="ArduCopter",
firmware_version="4.0",
target=".",
@@ -640,8 +640,8 @@ def test_main_oserror(self, mock_file) -> None:
assert cm.value.code in [1, 2]
@patch("ardupilot_methodic_configurator.annotate_params.get_xml_url")
- def test_get_xml_url_exception(self, mock_get_xml_url) -> None:
- mock_get_xml_url.side_effect = ValueError("Mocked Value Error")
+ def test_get_xml_url_exception(self, mock_get_xml_url_) -> None:
+ mock_get_xml_url_.side_effect = ValueError("Mocked Value Error")
with pytest.raises(ValueError, match="Vehicle type 'NonExistingVehicle' is not supported."):
get_xml_url("NonExistingVehicle", "4.0")
diff --git a/unittests/extract_param_defaults_test.py b/unittests/extract_param_defaults_test.py
index 88d2a8c6..676562a8 100755
--- a/unittests/extract_param_defaults_test.py
+++ b/unittests/extract_param_defaults_test.py
@@ -191,7 +191,7 @@ def test_mavproxy_sort(self) -> None:
@pytest.mark.usefixtures("mock_print")
class TestOutputParams(unittest.TestCase): # pylint: disable=missing-class-docstring
@patch("builtins.print")
- def test_output_params(self, mock_print) -> None:
+ def test_output_params(self, mock_print_) -> None:
# Prepare a dummy defaults dictionary
defaults = {"PARAM2": 1.0, "PARAM1": 2.0}
@@ -200,10 +200,10 @@ def test_output_params(self, mock_print) -> None:
# Check if the print function was called with the correct parameters
expected_calls = [unittest.mock.call("PARAM2,1"), unittest.mock.call("PARAM1,2")]
- mock_print.assert_has_calls(expected_calls, any_order=False)
+ mock_print_.assert_has_calls(expected_calls, any_order=False)
@patch("builtins.print")
- def test_output_params_missionplanner_non_numeric(self, mock_print) -> None:
+ def test_output_params_missionplanner_non_numeric(self, mock_print_) -> None:
# Prepare a dummy defaults dictionary
defaults = {"PARAM1": "non-numeric"}
@@ -212,10 +212,10 @@ def test_output_params_missionplanner_non_numeric(self, mock_print) -> None:
# Check if the print function was called with the correct parameters
expected_calls = [unittest.mock.call("PARAM1,non-numeric")]
- mock_print.assert_has_calls(expected_calls, any_order=False)
+ mock_print_.assert_has_calls(expected_calls, any_order=False)
@patch("builtins.print")
- def test_output_params_mavproxy(self, mock_print) -> None:
+ def test_output_params_mavproxy(self, mock_print_) -> None:
# Prepare a dummy defaults dictionary
defaults = {"PARAM2": 2.0, "PARAM1": 1.0}
@@ -228,10 +228,10 @@ def test_output_params_mavproxy(self, mock_print) -> None:
unittest.mock.call("%-15s %.6f" % ("PARAM1", 1.0)), # pylint: disable=consider-using-f-string
unittest.mock.call("%-15s %.6f" % ("PARAM2", 2.0)), # pylint: disable=consider-using-f-string
]
- mock_print.assert_has_calls(expected_calls, any_order=False)
+ mock_print_.assert_has_calls(expected_calls, any_order=False)
@patch("builtins.print")
- def test_output_params_qgcs(self, mock_print) -> None:
+ def test_output_params_qgcs(self, mock_print_) -> None:
# Prepare a dummy defaults dictionary
defaults = {"PARAM2": 2.0, "PARAM1": 1.0}
@@ -245,10 +245,10 @@ def test_output_params_qgcs(self, mock_print) -> None:
unittest.mock.call("%u %u %-15s %.6f %u" % (1, 1, "PARAM1", 1.0, 9)), # pylint: disable=consider-using-f-string
unittest.mock.call("%u %u %-15s %.6f %u" % (1, 1, "PARAM2", 2.0, 9)), # pylint: disable=consider-using-f-string
]
- mock_print.assert_has_calls(expected_calls, any_order=False)
+ mock_print_.assert_has_calls(expected_calls, any_order=False)
@patch("builtins.print")
- def test_output_params_qgcs_2_4(self, mock_print) -> None:
+ def test_output_params_qgcs_2_4(self, mock_print_) -> None:
# Prepare a dummy defaults dictionary
defaults = {"PARAM2": 2.0, "PARAM1": 1.0}
@@ -262,10 +262,10 @@ def test_output_params_qgcs_2_4(self, mock_print) -> None:
unittest.mock.call("%u %u %-15s %.6f %u" % (2, 4, "PARAM1", 1.0, 9)), # pylint: disable=consider-using-f-string
unittest.mock.call("%u %u %-15s %.6f %u" % (2, 4, "PARAM2", 2.0, 9)), # pylint: disable=consider-using-f-string
]
- mock_print.assert_has_calls(expected_calls, any_order=False)
+ mock_print_.assert_has_calls(expected_calls, any_order=False)
@patch("builtins.print")
- def test_output_params_qgcs_SYSID_THISMAV(self, mock_print) -> None: # noqa: N802, pylint: disable=invalid-name
+ def test_output_params_qgcs_SYSID_THISMAV(self, mock_print_) -> None: # noqa: N802, pylint: disable=invalid-name
# Prepare a dummy defaults dictionary
defaults = {"PARAM2": 2.0, "PARAM1": 1.0, "SYSID_THISMAV": 3.0}
@@ -280,7 +280,7 @@ def test_output_params_qgcs_SYSID_THISMAV(self, mock_print) -> None: # noqa: N8
unittest.mock.call("%u %u %-15s %.6f %u" % (3, 7, "PARAM2", 2.0, 9)), # pylint: disable=consider-using-f-string
unittest.mock.call("%u %u %-15s %.6f %u" % (3, 7, "SYSID_THISMAV", 3.0, 9)), # pylint: disable=consider-using-f-string
]
- mock_print.assert_has_calls(expected_calls, any_order=False)
+ mock_print_.assert_has_calls(expected_calls, any_order=False)
def test_output_params_qgcs_SYSID_INVALID(self) -> None: # noqa: N802, pylint: disable=invalid-name
# Prepare a dummy defaults dictionary
@@ -313,7 +313,7 @@ def test_output_params_qgcs_COMPID_INVALID(self) -> None: # noqa: N802, pylint:
assert str(cm.value) == f"Invalid component ID parameter 259 must be smaller than {MAVLINK_COMPID_MAX}"
@patch("builtins.print")
- def test_output_params_integer(self, mock_print) -> None:
+ def test_output_params_integer(self, mock_print_) -> None:
# Prepare a dummy defaults dictionary with an integer value
defaults = {"PARAM1": 1.01, "PARAM2": 2.00}
@@ -323,7 +323,7 @@ def test_output_params_integer(self, mock_print) -> None:
# Check if the print function was called with the correct parameters
expected_calls = [unittest.mock.call("PARAM1,1.01"), unittest.mock.call("PARAM2,2")]
- mock_print.assert_has_calls(expected_calls, any_order=False)
+ mock_print_.assert_has_calls(expected_calls, any_order=False)
if __name__ == "__main__":
diff --git a/unittests/frontend_tkinter_parameter_editor_documentation_frame_test.py b/unittests/frontend_tkinter_parameter_editor_documentation_frame_test.py
index 2c81d7da..ba91be74 100755
--- a/unittests/frontend_tkinter_parameter_editor_documentation_frame_test.py
+++ b/unittests/frontend_tkinter_parameter_editor_documentation_frame_test.py
@@ -53,7 +53,7 @@ def test_create_documentation_frame(self) -> None:
assert label in self.doc_frame.documentation_labels
@patch("ardupilot_methodic_configurator.frontend_tkinter_parameter_editor_documentation_frame.webbrowser_open")
- def test_auto_open_documentation_links(self, mock_webbrowser_open) -> None:
+ def test_auto_open_documentation_links(self, mock_webbrowser_open_) -> None:
"""Test the automatic opening of documentation links."""
self.local_filesystem.get_documentation_text_and_url.side_effect = [
("Blog text", "http://blog.url"),
@@ -65,9 +65,9 @@ def test_auto_open_documentation_links(self, mock_webbrowser_open) -> None:
self.doc_frame.update_documentation_labels(self.current_file)
- mock_webbrowser_open.assert_any_call(url="http://wiki.url", new=0, autoraise=False)
- mock_webbrowser_open.assert_any_call(url="http://external_tool.url", new=0, autoraise=False)
- mock_webbrowser_open.assert_any_call(url="http://blog.url", new=0, autoraise=True)
+ mock_webbrowser_open_.assert_any_call(url="http://wiki.url", new=0, autoraise=False)
+ mock_webbrowser_open_.assert_any_call(url="http://external_tool.url", new=0, autoraise=False)
+ mock_webbrowser_open_.assert_any_call(url="http://blog.url", new=0, autoraise=True)
@pytest.mark.usefixtures("mock_show_tooltip")
def test_update_why_why_now_tooltip(self) -> None:
@@ -75,9 +75,9 @@ def test_update_why_why_now_tooltip(self) -> None:
self.local_filesystem.get_seq_tooltip_text.side_effect = ["Why text", "Why now text"]
with patch(
"ardupilot_methodic_configurator.frontend_tkinter_parameter_editor_documentation_frame.show_tooltip"
- ) as mock_show_tooltip:
+ ) as mock_show_tooltip_:
self.doc_frame.update_why_why_now_tooltip(self.current_file)
- mock_show_tooltip.assert_called_once_with(
+ mock_show_tooltip_.assert_called_once_with(
self.doc_frame.documentation_frame, "Why: Why text\nWhy now: Why now text"
)
@@ -103,7 +103,7 @@ def test_update_documentation_labels(self) -> None:
assert str(self.doc_frame.documentation_labels["External tool:"].cget("foreground")) == "blue"
@patch("ardupilot_methodic_configurator.frontend_tkinter_parameter_editor_documentation_frame.webbrowser_open")
- def test_manual_open_documentation_links(self, mock_webbrowser_open) -> None:
+ def test_manual_open_documentation_links(self, mock_webbrowser_open_) -> None:
"""Test manually opening documentation links by clicking on labels."""
self.local_filesystem.get_documentation_text_and_url.side_effect = [
("Blog text", "http://blog.url"),
@@ -119,9 +119,9 @@ def test_manual_open_documentation_links(self, mock_webbrowser_open) -> None:
self.doc_frame.documentation_labels["Wiki:"].event_generate("")
self.doc_frame.documentation_labels["External tool:"].event_generate("")
- mock_webbrowser_open.assert_any_call("http://blog.url")
- mock_webbrowser_open.assert_any_call("http://wiki.url")
- mock_webbrowser_open.assert_any_call("http://external_tool.url")
+ mock_webbrowser_open_.assert_any_call("http://blog.url")
+ mock_webbrowser_open_.assert_any_call("http://wiki.url")
+ mock_webbrowser_open_.assert_any_call("http://external_tool.url")
def test_update_documentation_labels_no_urls(self) -> None:
"""Test updating documentation labels when no URLs are provided."""
@@ -144,7 +144,7 @@ def test_update_documentation_labels_no_urls(self) -> None:
assert str(self.doc_frame.documentation_labels["External tool:"].cget("foreground")) == "black"
@patch("ardupilot_methodic_configurator.frontend_tkinter_parameter_editor_documentation_frame.show_tooltip")
- def test_tooltip_texts(self, mock_show_tooltip) -> None:
+ def test_tooltip_texts(self, mock_show_tooltip_) -> None:
"""Test the tooltip texts for the documentation labels."""
self.local_filesystem.get_documentation_text_and_url.side_effect = [
("Blog text", "http://blog.url"),
@@ -164,9 +164,9 @@ def test_tooltip_texts(self, mock_show_tooltip) -> None:
assert str(self.doc_frame.documentation_labels["Wiki:"].cget("foreground")) == "blue"
assert str(self.doc_frame.documentation_labels["External tool:"].cget("foreground")) == "blue"
- mock_show_tooltip.assert_any_call(self.doc_frame.documentation_labels["Forum Blog:"], "http://blog.url")
- mock_show_tooltip.assert_any_call(self.doc_frame.documentation_labels["Wiki:"], "http://wiki.url")
- mock_show_tooltip.assert_any_call(self.doc_frame.documentation_labels["External tool:"], "http://external_tool.url")
+ mock_show_tooltip_.assert_any_call(self.doc_frame.documentation_labels["Forum Blog:"], "http://blog.url")
+ mock_show_tooltip_.assert_any_call(self.doc_frame.documentation_labels["Wiki:"], "http://wiki.url")
+ mock_show_tooltip_.assert_any_call(self.doc_frame.documentation_labels["External tool:"], "http://external_tool.url")
if __name__ == "__main__":