tests/test_active_scanner.py (1865B)
1 """Tests for ap_scanner.active_scanner utility functions."""
2
3 from ap_scanner.active_scanner import _calculate_network, _cidr_to_netmask, _is_ip
4
5
6 # --- _cidr_to_netmask ---
7
8 def test_cidr_to_netmask_24():
9 assert _cidr_to_netmask(24) == "255.255.255.0"
10
11
12 def test_cidr_to_netmask_16():
13 assert _cidr_to_netmask(16) == "255.255.0.0"
14
15
16 def test_cidr_to_netmask_32():
17 assert _cidr_to_netmask(32) == "255.255.255.255"
18
19
20 def test_cidr_to_netmask_8():
21 assert _cidr_to_netmask(8) == "255.0.0.0"
22
23
24 # --- _calculate_network ---
25
26 def test_calculate_network_24():
27 result = _calculate_network("192.168.1.100", "255.255.255.0")
28 assert result == "192.168.1.0/24"
29
30
31 def test_calculate_network_16():
32 result = _calculate_network("10.0.5.42", "255.255.0.0")
33 assert result == "10.0.0.0/16"
34
35
36 def test_calculate_network_invalid():
37 result = _calculate_network("not_an_ip", "255.255.255.0")
38 assert result == ""
39
40
41 # --- _is_ip ---
42
43 def test_is_ip_valid():
44 assert _is_ip("192.168.1.1") is True
45
46
47 def test_is_ip_valid_zeros():
48 assert _is_ip("0.0.0.0") is True
49
50
51 def test_is_ip_invalid_string():
52 assert _is_ip("not_ip") is False
53
54
55 def test_is_ip_invalid_overflow():
56 assert _is_ip("256.1.1.1") is False
57
58
59 def test_is_ip_empty():
60 assert _is_ip("") is False
61
62
63 # --- _cidr_to_netmask edge cases ---
64
65 def test_cidr_to_netmask_0():
66 assert _cidr_to_netmask(0) == "0.0.0.0"
67
68
69 def test_cidr_to_netmask_1():
70 assert _cidr_to_netmask(1) == "128.0.0.0"
71
72
73 # --- _calculate_network edge cases ---
74
75 def test_calculate_network_32():
76 """Host-only mask returns single host /32."""
77 result = _calculate_network("192.168.1.42", "255.255.255.255")
78 assert result == "192.168.1.42/32"
79
80
81 def test_calculate_network_8():
82 """Class A mask."""
83 result = _calculate_network("10.200.50.1", "255.0.0.0")
84 assert result == "10.0.0.0/8"