diff --git a/meshtastic/tests/test_main.py b/meshtastic/tests/test_main.py index a5a345a..18fa497 100644 --- a/meshtastic/tests/test_main.py +++ b/meshtastic/tests/test_main.py @@ -724,11 +724,66 @@ def test_main_sendtext_with_dest(mock_findPorts, mock_serial, mocked_open, mock_ assert re.search(r"Warning: There were no self.nodes.", caplog.text, re.MULTILINE) assert err == "" +@pytest.mark.unit +@pytest.mark.usefixtures("reset_mt_config") +def test_main_removeposition_invalid(capsys): + """Test --remove-position with an invalid dest""" + sys.argv = ["", "--remove-position", "--dest", "!12345678"] + mt_config.args = sys.argv + iface = MagicMock(autospec=SerialInterface) + with patch("meshtastic.serial_interface.SerialInterface", return_value=iface) as mo: + main() + out, err = capsys.readouterr() + assert re.search(r"Connected to radio", out, re.MULTILINE) + assert re.search(r"remote nodes is not supported", out, re.MULTILINE) + assert err == "" + mo.assert_called() + +@pytest.mark.unit +@pytest.mark.usefixtures("reset_mt_config") +def test_main_setlat_invalid(capsys): + """Test --setlat with an invalid dest""" + sys.argv = ["", "--setlat", "37.5", "--dest", "!12345678"] + mt_config.args = sys.argv + iface = MagicMock(autospec=SerialInterface) + with patch("meshtastic.serial_interface.SerialInterface", return_value=iface) as mo: + main() + out, err = capsys.readouterr() + assert re.search(r"Connected to radio", out, re.MULTILINE) + assert re.search(r"remote nodes is not supported", out, re.MULTILINE) + assert err == "" + mo.assert_called() + +@pytest.mark.unit +@pytest.mark.usefixtures("reset_mt_config") +def test_main_removeposition(capsys): + """Test --remove-position""" + sys.argv = ["", "--remove-position"] + mt_config.args = sys.argv + + mocked_node = MagicMock(autospec=Node) + + def mock_removeFixedPosition(): + print("inside mocked removeFixedPosition") + + mocked_node.removeFixedPosition.side_effect = mock_removeFixedPosition + + iface = MagicMock(autospec=SerialInterface) + iface.localNode = mocked_node + + with patch("meshtastic.serial_interface.SerialInterface", return_value=iface) as mo: + main() + out, err = capsys.readouterr() + assert re.search(r"Connected to radio", out, re.MULTILINE) + assert re.search(r"Removing fixed position", out, re.MULTILINE) + assert re.search(r"inside mocked removeFixedPosition", out, re.MULTILINE) + assert err == "" + mo.assert_called() @pytest.mark.unit @pytest.mark.usefixtures("reset_mt_config") def test_main_setlat(capsys): - """Test --sendlat""" + """Test --setlat""" sys.argv = ["", "--setlat", "37.5"] mt_config.args = sys.argv diff --git a/meshtastic/tests/test_util.py b/meshtastic/tests/test_util.py index 9961f4b..74f66d9 100644 --- a/meshtastic/tests/test_util.py +++ b/meshtastic/tests/test_util.py @@ -65,6 +65,7 @@ def test_fromStr(): assert fromStr("123") == 123 assert fromStr("abc") == "abc" assert fromStr("123456789") == 123456789 + assert fromStr("base64:Zm9vIGJhciBiYXo=") == b"foo bar baz" @pytest.mark.unitslow