Skip to content

Commit a699d59

Browse files
authored
Merge pull request #87 from Angel-Padilla/known_networks
feature: allow DeviceControl.wifi_connect to accept None as password
2 parents 5b9c196 + 9b510b5 commit a699d59

2 files changed

Lines changed: 22 additions & 2 deletions

File tree

‎nmcli/_device.py‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,11 +182,13 @@ def wifi(self, ifname: str = None, rescan: bool = None) -> List[DeviceWifi]:
182182

183183
def wifi_connect(self,
184184
ssid: str,
185-
password: str,
185+
password: str | None,
186186
ifname: str = None,
187187
wait: int = None) -> None:
188188
cmd = add_wait_option_if_needed(
189-
wait) + ['device', 'wifi', 'connect', ssid, 'password', password]
189+
wait) + ['device', 'wifi', 'connect', ssid]
190+
if password is not None:
191+
cmd += ['password', password]
190192
if ifname is not None:
191193
cmd += ['ifname', ifname]
192194
r = self._syscmd.nmcli(cmd)

‎tests/test_device.py‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,24 @@ def test_wifi_connect():
309309
'--wait', '10', 'device', 'wifi', 'connect', ssid, 'password', password]
310310

311311

312+
def test_wifi_connect_without_password():
313+
s = DummySystemCommand()
314+
device = DeviceControl(s)
315+
ssid = 'Open AP'
316+
ifname = 'wlan0'
317+
318+
device.wifi_connect(ssid, None)
319+
assert s.passed_parameters == ['device', 'wifi', 'connect', ssid]
320+
321+
device.wifi_connect(ssid, None, ifname)
322+
assert s.passed_parameters == [
323+
'device', 'wifi', 'connect', ssid, 'ifname', ifname]
324+
325+
device.wifi_connect(ssid, None, wait=10)
326+
assert s.passed_parameters == [
327+
'--wait', '10', 'device', 'wifi', 'connect', ssid]
328+
329+
312330
def test_wifi_connect_when_connection_activate_failed():
313331
s = DummySystemCommand(
314332
'''Error: Connection activation failed: (7) Secrets were required, but not provided.

0 commit comments

Comments
 (0)