Skip to main content
Glama
danohn

mcpacket

by danohn
test_icmp.py2.69 kB
"""Tests for ICMP module.""" from unittest.mock import patch from mcpcap.core.config import Config from mcpcap.modules.icmp import ICMPModule class TestICMPModule: """Test ICMP module functionality.""" def setup_method(self): """Set up test fixtures.""" config = Config(modules=["icmp"], max_packets=None) self.icmp_module = ICMPModule(config) def test_protocol_name(self): """Test protocol name property.""" assert self.icmp_module.protocol_name == "ICMP" @patch("mcpcap.modules.icmp.rdpcap") def test_analyze_icmp_packets_no_packets(self, mock_rdpcap): """Test analysis with no ICMP packets.""" # Mock empty packet capture mock_rdpcap.return_value = [] with patch("os.path.exists", return_value=True): result = self.icmp_module.analyze_icmp_packets("test.pcap") assert result["icmp_packets_found"] == 0 assert "No ICMP packets found" in result["message"] def test_generate_statistics_empty(self): """Test statistics generation with empty packet list.""" stats = self.icmp_module._generate_statistics([]) assert stats["unique_sources_count"] == 0 assert stats["unique_destinations_count"] == 0 assert stats["echo_sessions"] == 0 def test_generate_statistics_with_packets(self): """Test statistics generation with sample packets.""" packets = [ { "icmp_type_name": "Echo Request", "icmp_type": 8, "icmp_id": 123, "src_ip": "192.168.1.100", "dst_ip": "8.8.8.8", }, { "icmp_type_name": "Echo Reply", "icmp_type": 0, "icmp_id": 123, "src_ip": "8.8.8.8", "dst_ip": "192.168.1.100", }, { "icmp_type_name": "Destination Unreachable", "icmp_type": 3, "src_ip": "192.168.1.1", "dst_ip": "192.168.1.100", }, ] stats = self.icmp_module._generate_statistics(packets) assert stats["icmp_type_counts"]["Echo Request"] == 1 assert stats["icmp_type_counts"]["Echo Reply"] == 1 assert stats["icmp_type_counts"]["Destination Unreachable"] == 1 assert stats["unique_sources_count"] == 3 # 192.168.1.100, 8.8.8.8, 192.168.1.1 assert stats["unique_destinations_count"] == 2 # 8.8.8.8, 192.168.1.100 assert stats["echo_sessions"] == 1 assert stats["echo_pairs"][123]["requests"] == 1 assert stats["echo_pairs"][123]["replies"] == 1

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/danohn/mcpacket'

If you have feedback or need assistance with the MCP directory API, please join our Discord server