Files
site/WESP_REL/tests/test_traceroute_analyze.py
2026-07-17 12:57:18 +03:00

32 lines
1.1 KiB
Python

import unittest
from app.services.traceroute_analyze import is_private_ipv4, parse_traceroute_text
class TracerouteAnalyzeTests(unittest.TestCase):
def test_private_ipv4(self) -> None:
self.assertTrue(is_private_ipv4("10.0.0.1"))
self.assertTrue(is_private_ipv4("192.168.0.7"))
self.assertTrue(is_private_ipv4("172.20.1.1"))
self.assertTrue(is_private_ipv4("127.0.0.1"))
self.assertFalse(is_private_ipv4("8.8.8.8"))
self.assertFalse(is_private_ipv4("74.125.242.1"))
def test_parse_sample(self) -> None:
text = """
1 192.168.1.1 (192.168.1.1) 2.123 ms 1.892 ms 1.765 ms
2 10.0.0.1 (10.0.0.1) 5.432 ms 4.987 ms 5.123 ms
3 172.217.168.1 (172.217.168.1) 15.234 ms 14.876 ms 15.012 ms
"""
out = parse_traceroute_text(text)
self.assertEqual(out["stats"]["total_hops"], 3)
self.assertEqual(out["stats"]["private_count"], 2)
hops = out["hops"]
self.assertEqual(hops[0]["network_type"], "private")
self.assertEqual(hops[2]["network_type"], "public")
self.assertGreater(hops[0]["avg_ms"], 0)
if __name__ == "__main__":
unittest.main()