32 lines
1.1 KiB
Python
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()
|