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()