mirror of
https://github.com/eddieoz/LoRa-Mesh-Analyzer.git
synced 2026-03-28 17:42:59 +01:00
48 lines
1.6 KiB
Python
48 lines
1.6 KiB
Python
import unittest
|
|
from mesh_analyzer.analyzer import NetworkHealthAnalyzer
|
|
|
|
class TestRouteQuality(unittest.TestCase):
|
|
def setUp(self):
|
|
self.analyzer = NetworkHealthAnalyzer()
|
|
|
|
def test_long_path(self):
|
|
nodes = {
|
|
'!11111111': {'user': {'longName': 'FarNode'}}
|
|
}
|
|
test_results = [
|
|
{'node_id': '!11111111', 'hops_to': 4, 'route': []}
|
|
]
|
|
|
|
issues = self.analyzer.check_route_quality(nodes, test_results)
|
|
print("\nLong Path Issues:", issues)
|
|
self.assertTrue(any("Long path" in i for i in issues))
|
|
|
|
def test_favorite_router_usage(self):
|
|
nodes = {
|
|
'!22222222': {'user': {'longName': 'TargetNode'}},
|
|
'!33333333': {'user': {'longName': 'FavRouter'}, 'is_favorite': True}
|
|
}
|
|
# Route uses FavRouter (ID !33333333 -> 0x33333333 = 858993459)
|
|
test_results = [
|
|
{'node_id': '!22222222', 'hops_to': 2, 'route': [858993459]}
|
|
]
|
|
|
|
issues = self.analyzer.check_route_quality(nodes, test_results)
|
|
print("\nFavorite Router Issues:", issues)
|
|
self.assertTrue(any("Favorite Router" in i for i in issues))
|
|
|
|
def test_weak_signal(self):
|
|
nodes = {
|
|
'!44444444': {'user': {'longName': 'WeakNode'}}
|
|
}
|
|
test_results = [
|
|
{'node_id': '!44444444', 'snr': -15}
|
|
]
|
|
|
|
issues = self.analyzer.check_route_quality(nodes, test_results)
|
|
print("\nWeak Signal Issues:", issues)
|
|
self.assertTrue(any("Weak signal" in i for i in issues))
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|