mirror of
https://github.com/meshtastic/python.git
synced 2025-12-26 17:37:51 -05:00
Since one of pylint's complains was that the globals module was shadowing the built-in, and since the name `config` was already is use in several modules, globals.py was renamed as mt_config.py. All tests now pass, and the only remaining local pylint errors relate to the protobuf code, I'm hoping this will make the PR valid.
57 lines
1.6 KiB
Python
57 lines
1.6 KiB
Python
"""Meshtastic unit tests for __init__.py"""
|
|
|
|
import logging
|
|
import re
|
|
from unittest.mock import MagicMock
|
|
|
|
import pytest
|
|
|
|
from meshtastic import _onNodeInfoReceive, _onPositionReceive, _onTextReceive, mt_config
|
|
|
|
from ..serial_interface import SerialInterface
|
|
|
|
|
|
@pytest.mark.unit
|
|
def test_init_onTextReceive_with_exception(caplog):
|
|
"""Test _onTextReceive"""
|
|
args = MagicMock()
|
|
mt_config.args = args
|
|
iface = MagicMock(autospec=SerialInterface)
|
|
packet = {}
|
|
with caplog.at_level(logging.DEBUG):
|
|
_onTextReceive(iface, packet)
|
|
assert re.search(r"in _onTextReceive", caplog.text, re.MULTILINE)
|
|
assert re.search(r"Malformatted", caplog.text, re.MULTILINE)
|
|
|
|
|
|
@pytest.mark.unit
|
|
def test_init_onPositionReceive(caplog):
|
|
"""Test _onPositionReceive"""
|
|
args = MagicMock()
|
|
mt_config.args = args
|
|
iface = MagicMock(autospec=SerialInterface)
|
|
packet = {"from": "foo", "decoded": {"position": {}}}
|
|
with caplog.at_level(logging.DEBUG):
|
|
_onPositionReceive(iface, packet)
|
|
assert re.search(r"in _onPositionReceive", caplog.text, re.MULTILINE)
|
|
|
|
|
|
@pytest.mark.unit
|
|
def test_init_onNodeInfoReceive(caplog, iface_with_nodes):
|
|
"""Test _onNodeInfoReceive"""
|
|
args = MagicMock()
|
|
mt_config.args = args
|
|
iface = iface_with_nodes
|
|
iface.myInfo.my_node_num = 2475227164
|
|
packet = {
|
|
"from": "foo",
|
|
"decoded": {
|
|
"user": {
|
|
"id": "bar",
|
|
},
|
|
},
|
|
}
|
|
with caplog.at_level(logging.DEBUG):
|
|
_onNodeInfoReceive(iface, packet)
|
|
assert re.search(r"in _onNodeInfoReceive", caplog.text, re.MULTILINE)
|