Files
MeshCore/test/test_iotthinks_merge.py
T

53 lines
2.5 KiB
Python

"""PowerSaving-v17 target names and FEM defaults must survive integration."""
import configparser
from pathlib import Path
import unittest
ROOT = Path(__file__).resolve().parents[1]
class IotthinksMergeTests(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.config = configparser.ConfigParser(interpolation=None,
inline_comment_prefixes=(";",))
cls.config.read([ROOT / "platformio.ini", *sorted((ROOT / "variants").glob("*/platformio.ini"))],
encoding="utf-8")
def flags(self, section):
value = self.config[section].get("build_flags", "")
import re
return re.sub(r"\$\{([^}]+)\}", lambda match: self.flags(match[1].rsplit(".", 1)[0]), value)
def test_old_v43_femoff_target_remains_alias_for_new_name(self):
self.assertEqual(self.config["env:heltec_v4_3_companion_radio_ble_femoff"]["extends"],
"env:heltec_v4_companion_radio_ble_femoff")
self.assertEqual(self.config["env:heltec_v4_3_companion_radio_ble_ps_femoff"]["extends"],
"env:heltec_v4_3_companion_radio_ble_femoff")
self.assertIn("-D RADIO_FEM_RXGAIN=0", self.flags("env:heltec_v4_companion_radio_ble_femoff"))
def test_explicit_femon_defaults_override_fork_default(self):
for section in ("env:Heltec_t096_companion_radio_ble_femon",
"env:heltec_v4_companion_radio_ble_femon",
"env:heltec_tracker_v2_companion_radio_ble_femon"):
with self.subTest(section=section):
self.assertIn("-D RADIO_FEM_RXGAIN=1", self.flags(section))
source = (ROOT / "examples/companion_radio/MyMesh.cpp").read_text()
self.assertIn("_prefs.radio_fem_rxgain = DEFAULT_FEM_RX_GAIN;", source)
def test_new_serial_bridge_targets_keep_distinct_uarts(self):
rak = self.flags("env:RAK_3401_repeater_bridge_rs232_serial1")
tracker = self.flags("env:heltec_tracker_v2_repeater_bridge_rs232")
self.assertIn("-D WITH_RS232_BRIDGE=Serial1", rak)
self.assertIn("-D WITH_RS232_BRIDGE_UART=1", rak)
self.assertIn("-UENV_INCLUDE_GPS", rak)
self.assertIn("-D ENV_INCLUDE_GPS=0", rak)
self.assertIn("-D WITH_RS232_BRIDGE=Serial2", tracker)
self.assertIn("-D WITH_RS232_BRIDGE_UART=2", tracker)
self.assertIn("-D WITH_RS232_BRIDGE_RX=44", tracker)
self.assertIn("-D WITH_RS232_BRIDGE_TX=43", tracker)
if __name__ == "__main__":
unittest.main()