This commit is contained in:
Nathan Marley 2026-07-18 11:06:13 -04:00 committed by GitHub
commit 1f5c275ef7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 76 additions and 4 deletions

View File

@ -178,12 +178,24 @@ class WifiNetwork:
if not line:
continue
parts = line.split()
if len(parts) != 5:
if line.lower().startswith('bssid'):
continue
wifi = cls(bssid=parts[0], frequency=parts[1], signal_level=parts[2], flags=parts[3], ssid=parts[4])
entries.append(wifi)
parts = line.split(None, 4)
if len(parts) < 4:
continue
ssid = parts[4] if len(parts) == 5 else ''
entries.append(
cls(
bssid=parts[0],
frequency=parts[1],
signal_level=parts[2],
flags=parts[3],
ssid=ssid,
)
)
return entries

View File

@ -0,0 +1,60 @@
from archinstall.lib.models.network import WifiNetwork
SAMPLE_SCAN_RESULTS = """bssid / frequency / signal level / flags / ssid
aa:bb:cc:dd:ee:01 2412 -40 [WPA2-PSK-CCMP][ESS] NoSpacesSSID
aa:bb:cc:dd:ee:02 2412 -50 [WPA2-PSK-CCMP][ESS] My Home Network
aa:bb:cc:dd:ee:03 5180 -60 [WPA2-PSK-CCMP][WPS][ESS] Free Public WiFi
aa:bb:cc:dd:ee:04 2412 -70 [WPA2-PSK-CCMP][ESS]
"""
def test_from_wpa_ssid_without_spaces() -> None:
networks = WifiNetwork.from_wpa(SAMPLE_SCAN_RESULTS)
ssids = [network.ssid for network in networks]
assert 'NoSpacesSSID' in ssids
def test_from_wpa_ssid_with_spaces() -> None:
networks = WifiNetwork.from_wpa(SAMPLE_SCAN_RESULTS)
ssids = [network.ssid for network in networks]
assert 'My Home Network' in ssids
def test_from_wpa_ssid_with_multiple_spaces() -> None:
networks = WifiNetwork.from_wpa(SAMPLE_SCAN_RESULTS)
ssids = [network.ssid for network in networks]
assert 'Free Public WiFi' in ssids
def test_from_wpa_empty_ssid() -> None:
networks = WifiNetwork.from_wpa(SAMPLE_SCAN_RESULTS)
empty = [network for network in networks if network.bssid == 'aa:bb:cc:dd:ee:04']
assert len(empty) == 1
assert empty[0].ssid == ''
def test_from_wpa_skips_header_and_blank_lines() -> None:
results = """
bssid / frequency / signal level / flags / ssid
aa:bb:cc:dd:ee:01 2412 -40 [WPA2-PSK-CCMP][ESS] SimpleNet
"""
networks = WifiNetwork.from_wpa(results)
assert len(networks) == 1
assert networks[0].ssid == 'SimpleNet'
assert networks[0].bssid == 'aa:bb:cc:dd:ee:01'
def test_from_wpa_preserves_flags_and_fields() -> None:
networks = WifiNetwork.from_wpa(SAMPLE_SCAN_RESULTS)
network = next(n for n in networks if n.ssid == 'My Home Network')
assert network.bssid == 'aa:bb:cc:dd:ee:02'
assert network.frequency == '2412'
assert network.signal_level == '-50'
assert network.flags == '[WPA2-PSK-CCMP][ESS]'