mirror of
https://github.com/meshtastic/python.git
synced 2025-12-27 01:47:50 -05:00
handle ignore_incoming repeated field
This commit is contained in:
@@ -139,11 +139,22 @@ def setPref(attributes, name, valStr):
|
||||
for temp_name in sorted(names):
|
||||
print(f" {temp_name}")
|
||||
return
|
||||
try:
|
||||
setattr(attributes, snake_name, val)
|
||||
except TypeError:
|
||||
# The setter didn't like our arg type guess try again as a string
|
||||
setattr(attributes, snake_name, valStr)
|
||||
|
||||
# note: 'ignore_incoming' is a repeating field
|
||||
if snake_name != 'ignore_incoming':
|
||||
try:
|
||||
setattr(attributes, snake_name, val)
|
||||
except TypeError:
|
||||
# The setter didn't like our arg type guess try again as a string
|
||||
setattr(attributes, snake_name, valStr)
|
||||
else:
|
||||
if val == 0:
|
||||
# clear values
|
||||
print("Clearing ignore_incoming list")
|
||||
del attributes.ignore_incoming[:]
|
||||
else:
|
||||
print(f"Adding '{val}' to the ignore_incoming list")
|
||||
attributes.ignore_incoming.extend([val])
|
||||
|
||||
if Globals.getInstance().get_camel_case():
|
||||
print(f"Set {camel_name} to {valStr}")
|
||||
|
||||
@@ -2331,6 +2331,54 @@ def test_main_setPref_invalid_field_camel(capsys):
|
||||
assert err == ''
|
||||
|
||||
|
||||
@pytest.mark.unit
|
||||
@pytest.mark.usefixtures("reset_globals")
|
||||
def test_main_setPref_ignore_incoming_123(capsys):
|
||||
"""Test setPref() with ignore_incoming"""
|
||||
|
||||
class Field:
|
||||
"""Simple class for testing."""
|
||||
|
||||
def __init__(self, name, enum_type):
|
||||
"""constructor"""
|
||||
self.name = name
|
||||
self.enum_type = enum_type
|
||||
|
||||
ignore_incoming_field = Field('ignore_incoming', 'list')
|
||||
prefs = MagicMock()
|
||||
prefs.DESCRIPTOR.fields_by_name.get.return_value = ignore_incoming_field
|
||||
|
||||
setPref(prefs, 'ignore_incoming', '123')
|
||||
out, err = capsys.readouterr()
|
||||
assert re.search(r"Adding '123' to the ignore_incoming list", out, re.MULTILINE)
|
||||
assert re.search(r'Set ignore_incoming to 123', out, re.MULTILINE)
|
||||
assert err == ''
|
||||
|
||||
|
||||
@pytest.mark.unit
|
||||
@pytest.mark.usefixtures("reset_globals")
|
||||
def test_main_setPref_ignore_incoming_0(capsys):
|
||||
"""Test setPref() with ignore_incoming"""
|
||||
|
||||
class Field:
|
||||
"""Simple class for testing."""
|
||||
|
||||
def __init__(self, name, enum_type):
|
||||
"""constructor"""
|
||||
self.name = name
|
||||
self.enum_type = enum_type
|
||||
|
||||
ignore_incoming_field = Field('ignore_incoming', 'list')
|
||||
prefs = MagicMock()
|
||||
prefs.DESCRIPTOR.fields_by_name.get.return_value = ignore_incoming_field
|
||||
|
||||
setPref(prefs, 'ignore_incoming', '0')
|
||||
out, err = capsys.readouterr()
|
||||
assert re.search(r'Clearing ignore_incoming list', out, re.MULTILINE)
|
||||
assert re.search(r'Set ignore_incoming to 0', out, re.MULTILINE)
|
||||
assert err == ''
|
||||
|
||||
|
||||
@pytest.mark.unit
|
||||
@pytest.mark.usefixtures("reset_globals")
|
||||
def test_main_ch_set_psk_no_ch_index(capsys):
|
||||
|
||||
Reference in New Issue
Block a user