mirror of
https://github.com/meshtastic/python.git
synced 2026-01-14 10:47:59 -05:00
add tests for --setlat, --setlon, and --setalt
This commit is contained in:
@@ -156,7 +156,6 @@ def onConnected(interface):
|
||||
alt = 0
|
||||
lat = 0.0
|
||||
lon = 0.0
|
||||
timeval = 0 # always set time, but based on the local clock
|
||||
prefs = interface.localNode.radioConfig.preferences
|
||||
if args.setalt:
|
||||
alt = int(args.setalt)
|
||||
@@ -173,7 +172,7 @@ def onConnected(interface):
|
||||
|
||||
print("Setting device position")
|
||||
# can include lat/long/alt etc: latitude = 37.5, longitude = -122.1
|
||||
interface.sendPosition(lat, lon, alt, timeval)
|
||||
interface.sendPosition(lat, lon, alt)
|
||||
interface.localNode.writeConfig()
|
||||
elif not args.no_time:
|
||||
# We normally provide a current time to the mesh when we connect
|
||||
@@ -314,7 +313,6 @@ def onConnected(interface):
|
||||
alt = 0
|
||||
lat = 0.0
|
||||
lon = 0.0
|
||||
timeval = 0 # always set time, but based on the local clock
|
||||
prefs = interface.localNode.radioConfig.preferences
|
||||
|
||||
if 'alt' in configuration['location']:
|
||||
@@ -330,7 +328,7 @@ def onConnected(interface):
|
||||
prefs.fixed_position = True
|
||||
print(f"Fixing longitude at {lon} degrees")
|
||||
print("Setting device position")
|
||||
interface.sendPosition(lat, lon, alt, timeval)
|
||||
interface.sendPosition(lat, lon, alt)
|
||||
interface.localNode.writeConfig()
|
||||
|
||||
if 'user_prefs' in configuration:
|
||||
|
||||
@@ -426,3 +426,114 @@ def test_main_sendping(capsys):
|
||||
assert re.search(r'inside mocked sendData', out, re.MULTILINE)
|
||||
assert err == ''
|
||||
mo.assert_called()
|
||||
|
||||
|
||||
@pytest.mark.unit
|
||||
def test_main_setlat(capsys):
|
||||
"""Test --sendlat"""
|
||||
sys.argv = ['', '--setlat', '37.5']
|
||||
args = sys.argv
|
||||
parser = None
|
||||
parser = argparse.ArgumentParser()
|
||||
our_globals = Globals.getInstance()
|
||||
our_globals.set_parser(parser)
|
||||
our_globals.set_args(args)
|
||||
our_globals.set_target_node(None)
|
||||
|
||||
mocked_node = MagicMock(autospec=Node)
|
||||
def mock_writeConfig():
|
||||
print('inside mocked writeConfig')
|
||||
mocked_node.writeConfig.side_effect = mock_writeConfig
|
||||
|
||||
iface = MagicMock(autospec=SerialInterface)
|
||||
def mock_sendPosition(lat, lon, alt):
|
||||
print('inside mocked sendPosition')
|
||||
iface.sendPosition.side_effect = mock_sendPosition
|
||||
iface.localNode.return_value = mocked_node
|
||||
|
||||
with patch('meshtastic.serial_interface.SerialInterface', return_value=iface) as mo:
|
||||
main()
|
||||
out, err = capsys.readouterr()
|
||||
print('out:', out)
|
||||
print('err:', err)
|
||||
assert re.search(r'Connected to radio', out, re.MULTILINE)
|
||||
assert re.search(r'Fixing latitude', out, re.MULTILINE)
|
||||
assert re.search(r'Setting device position', out, re.MULTILINE)
|
||||
assert re.search(r'inside mocked sendPosition', out, re.MULTILINE)
|
||||
# TODO: Why does this not work? assert re.search(r'inside mocked writeConfig', out, re.MULTILINE)
|
||||
assert err == ''
|
||||
mo.assert_called()
|
||||
|
||||
|
||||
@pytest.mark.unit
|
||||
def test_main_setlon(capsys):
|
||||
"""Test --setlon"""
|
||||
sys.argv = ['', '--setlon', '-122.1']
|
||||
args = sys.argv
|
||||
parser = None
|
||||
parser = argparse.ArgumentParser()
|
||||
our_globals = Globals.getInstance()
|
||||
our_globals.set_parser(parser)
|
||||
our_globals.set_args(args)
|
||||
our_globals.set_target_node(None)
|
||||
|
||||
mocked_node = MagicMock(autospec=Node)
|
||||
def mock_writeConfig():
|
||||
print('inside mocked writeConfig')
|
||||
mocked_node.writeConfig.side_effect = mock_writeConfig
|
||||
|
||||
iface = MagicMock(autospec=SerialInterface)
|
||||
def mock_sendPosition(lat, lon, alt):
|
||||
print('inside mocked sendPosition')
|
||||
iface.sendPosition.side_effect = mock_sendPosition
|
||||
iface.localNode.return_value = mocked_node
|
||||
|
||||
with patch('meshtastic.serial_interface.SerialInterface', return_value=iface) as mo:
|
||||
main()
|
||||
out, err = capsys.readouterr()
|
||||
print('out:', out)
|
||||
print('err:', err)
|
||||
assert re.search(r'Connected to radio', out, re.MULTILINE)
|
||||
assert re.search(r'Fixing longitude', out, re.MULTILINE)
|
||||
assert re.search(r'Setting device position', out, re.MULTILINE)
|
||||
assert re.search(r'inside mocked sendPosition', out, re.MULTILINE)
|
||||
# TODO: Why does this not work? assert re.search(r'inside mocked writeConfig', out, re.MULTILINE)
|
||||
assert err == ''
|
||||
mo.assert_called()
|
||||
|
||||
|
||||
@pytest.mark.unit
|
||||
def test_main_setalt(capsys):
|
||||
"""Test --setalt"""
|
||||
sys.argv = ['', '--setalt', '51']
|
||||
args = sys.argv
|
||||
parser = None
|
||||
parser = argparse.ArgumentParser()
|
||||
our_globals = Globals.getInstance()
|
||||
our_globals.set_parser(parser)
|
||||
our_globals.set_args(args)
|
||||
our_globals.set_target_node(None)
|
||||
|
||||
mocked_node = MagicMock(autospec=Node)
|
||||
def mock_writeConfig():
|
||||
print('inside mocked writeConfig')
|
||||
mocked_node.writeConfig.side_effect = mock_writeConfig
|
||||
|
||||
iface = MagicMock(autospec=SerialInterface)
|
||||
def mock_sendPosition(lat, lon, alt):
|
||||
print('inside mocked sendPosition')
|
||||
iface.sendPosition.side_effect = mock_sendPosition
|
||||
iface.localNode.return_value = mocked_node
|
||||
|
||||
with patch('meshtastic.serial_interface.SerialInterface', return_value=iface) as mo:
|
||||
main()
|
||||
out, err = capsys.readouterr()
|
||||
print('out:', out)
|
||||
print('err:', err)
|
||||
assert re.search(r'Connected to radio', out, re.MULTILINE)
|
||||
assert re.search(r'Fixing altitude', out, re.MULTILINE)
|
||||
assert re.search(r'Setting device position', out, re.MULTILINE)
|
||||
assert re.search(r'inside mocked sendPosition', out, re.MULTILINE)
|
||||
# TODO: Why does this not work? assert re.search(r'inside mocked writeConfig', out, re.MULTILINE)
|
||||
assert err == ''
|
||||
mo.assert_called()
|
||||
|
||||
Reference in New Issue
Block a user