From 8d09c7d49d60f781593e37f83ae1d7970c5fcf09 Mon Sep 17 00:00:00 2001 From: the8thbit Date: Wed, 21 Oct 2026 02:44:53 -0500 Subject: [PATCH] Avoid Internet version checks when displaying local radio information --- meshtastic/__main__.py | 6 ------ meshtastic/tests/test_main.py | 28 ++++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/meshtastic/__main__.py b/meshtastic/__main__.py index ca1680a58..b4de5386e 100644 --- a/meshtastic/__main__.py +++ b/meshtastic/__main__.py @@ -1081,12 +1081,6 @@ def setSimpleConfig(modem_preset): interface.getNode(args.dest, **getNode_kwargs).showInfo() closeNow = True print("") - pypi_version = meshtastic.util.check_if_newer_version() - if pypi_version: - print( - f"*** A newer version v{pypi_version} is available!" - ' Consider running "pip install --upgrade meshtastic" ***\n' - ) else: print("Showing info of remote node is not supported.") print( diff --git a/meshtastic/tests/test_main.py b/meshtastic/tests/test_main.py index e0d65f60f..46e410e50 100644 --- a/meshtastic/tests/test_main.py +++ b/meshtastic/tests/test_main.py @@ -244,6 +244,34 @@ def mock_showInfo(): mo.assert_called() +@pytest.mark.unit +@pytest.mark.usefixtures("reset_mt_config") +@pytest.mark.parametrize("connection_args,interface_class", [ + ([], "meshtastic.serial_interface.SerialInterface"), + (["--host", "meshtastic.local"], "meshtastic.tcp_interface.TCPInterface"), +]) +def test_main_info_without_internet(connection_args, interface_class, monkeypatch, capsys): + """Local radio information must not make an Internet request.""" + monkeypatch.setattr(sys, "argv", ["", "--info", *connection_args]) + iface = MagicMock() + iface.showInfo.side_effect = lambda: print("Radio information") + iface.getNode.return_value.showInfo.side_effect = lambda: print("Node configuration") + + with patch(interface_class, return_value=iface), patch( + "meshtastic.util.requests.get" + ) as request: + main() + + request.assert_not_called() + iface.showInfo.assert_called_once_with() + iface.getNode.return_value.showInfo.assert_called_once_with() + iface.close.assert_called() + out, err = capsys.readouterr() + assert "Radio information" in out + assert "Node configuration" in out + assert err == "" + + @pytest.mark.unit @pytest.mark.usefixtures("reset_mt_config") @patch("os.getlogin")