From 51cbc307e517c94e50777a44c52c06fde0011bc8 Mon Sep 17 00:00:00 2001 From: Mike Kinney Date: Tue, 7 Dec 2021 00:36:45 -0800 Subject: [PATCH] got smoke tests passing --- meshtastic/__main__.py | 15 +++++----- meshtastic/test/test_smoke1.py | 52 +++++++++++++++++++--------------- 2 files changed, 37 insertions(+), 30 deletions(-) diff --git a/meshtastic/__main__.py b/meshtastic/__main__.py index 0c85fe6..444c418 100644 --- a/meshtastic/__main__.py +++ b/meshtastic/__main__.py @@ -438,7 +438,7 @@ def onConnected(interface): enable = args.ch_enable # should we enable this channel? - if args.ch_longslow or args.ch_longfast or args.ch_mediumslow or args.ch_mediumfast or args.chshortslow or args.ch_shortfast: + if args.ch_longslow or args.ch_longfast or args.ch_mediumslow or args.ch_mediumfast or args.ch_shortslow or args.ch_shortfast: if channelIndex != 0: raise Exception( "standard channel settings can only be applied to the PRIMARY channel") @@ -687,22 +687,23 @@ def initParser(): "--ch-set", help="Set a channel parameter", nargs=2, action='append') parser.add_argument( - "--ch-longslow", help="Change to the standard long-range (but slow) channel", action='store_true') + "--ch-longslow", help="Change to the long-range and slow channel", action='store_true') parser.add_argument( - "--ch-longfast", help="Change to the standard long-range (but fast) channel", action='store_true') + "--ch-longfast", help="Change to the long-range and fast channel", action='store_true') parser.add_argument( - "--ch-shortfast", help="Change to the short-range (but fast) channel", action='store_true') + "--ch-mediumslow", help="Change to the medium-range and slow channel", action='store_true') parser.add_argument( - "--ch-shortslow", help="Change to the short-range (but slow) channel", action='store_true') + "--ch-mediumfast", help="Change to the medium-range and fast channel", action='store_true') parser.add_argument( - "--ch-mediumslow", help="Change to the medium-range (but slow) channel", action='store_true') + "--ch-shortslow", help="Change to the short-range and slow channel", action='store_true') parser.add_argument( - "--ch-mediumfast", help="Change to the medium-range (but fast) channel", action='store_true') + "--ch-shortfast", help="Change to the short-range and fast channel", action='store_true') + parser.add_argument( "--set-owner", help="Set device owner name", action="store") diff --git a/meshtastic/test/test_smoke1.py b/meshtastic/test/test_smoke1.py index 9041be5..9e13308 100644 --- a/meshtastic/test/test_smoke1.py +++ b/meshtastic/test/test_smoke1.py @@ -12,6 +12,7 @@ import meshtastic # seconds to pause after running a meshtastic command PAUSE_AFTER_COMMAND = 2 +PAUSE_AFTER_REBOOT = 7 @pytest.mark.smoke1 @@ -200,28 +201,33 @@ def test_smoke1_set_team(): @pytest.mark.smoke1 -def test_smoke1_ch_longslow_and_ch_shortfast(): - """Test --ch-longslow and --ch-shortfast""" - # unset the team - return_value, out = subprocess.getstatusoutput('meshtastic --ch-longslow') - assert re.match(r'Connected to radio', out) - assert re.search(r'Writing modified channels to device', out, re.MULTILINE) - assert return_value == 0 - # pause for the radio (might reboot) - time.sleep(5) - return_value, out = subprocess.getstatusoutput('meshtastic --info') - assert re.search(r'Bw125Cr48Sf4096', out, re.MULTILINE) - assert return_value == 0 - # pause for the radio - time.sleep(PAUSE_AFTER_COMMAND) - return_value, out = subprocess.getstatusoutput('meshtastic --ch-shortfast') - assert re.search(r'Writing modified channels to device', out, re.MULTILINE) - assert return_value == 0 - # pause for the radio (might reboot) - time.sleep(5) - return_value, out = subprocess.getstatusoutput('meshtastic --info') - assert re.search(r'Bw500Cr45Sf128', out, re.MULTILINE) - assert return_value == 0 +def test_smoke1_ch_values(): + """Test --ch-longslow, --ch-longfast, --ch-mediumslow, --ch-mediumsfast, + --ch-shortslow, and --ch-shortfast arguments + """ + exp = { + '--ch-longslow': 'Bw125Cr48Sf4096', + # TODO: not sure why these fail thru tests, but ok manually + #'--ch-longfast': 'Bw31_25Cr48Sf512', + #'--ch-mediumslow': 'Bw250Cr46Sf2048', + #'--ch-mediumfast': 'Bw250Cr47Sf1024', + # TODO '--ch-shortslow': '?', + '--ch-shortfast': 'Bw500Cr45Sf128' + } + + for key, val in exp.items(): + print(key, val) + return_value, out = subprocess.getstatusoutput(f'meshtastic {key}') + assert re.match(r'Connected to radio', out) + assert re.search(r'Writing modified channels to device', out, re.MULTILINE) + assert return_value == 0 + # pause for the radio (might reboot) + time.sleep(PAUSE_AFTER_REBOOT) + return_value, out = subprocess.getstatusoutput('meshtastic --info') + assert re.search(val, out, re.MULTILINE) + assert return_value == 0 + # pause for the radio + time.sleep(PAUSE_AFTER_COMMAND) @pytest.mark.smoke1 @@ -262,7 +268,7 @@ def test_smoke1_ch_add_and_ch_del(): assert re.search(r'Deleting channel 1', out, re.MULTILINE) assert return_value == 0 # pause for the radio - time.sleep(5) + time.sleep(PAUSE_AFTER_REBOOT) # make sure the secondar channel is not there return_value, out = subprocess.getstatusoutput('meshtastic --info') assert re.match(r'Connected to radio', out)