def test_list_wifi_networks(mocker): from ideascube.serveradmin.wifi import AvailableWifiNetwork NM = mocker.patch('ideascube.serveradmin.wifi.NetworkManager') NM.Devices = [NMDevice(True)] NMSettings = mocker.patch('ideascube.serveradmin.wifi.NMSettings') NMSettings.ListConnections.side_effect = lambda: [] networks = AvailableWifiNetwork.all() assert list(networks.keys()) == ['my home network', 'random open network'] assert str(networks['my home network']) == ( 'Available Wi-Fi network: "my home network"') assert networks['my home network'].connected is False assert networks['my home network'].known is False assert networks['my home network'].secure is True assert networks['my home network'].ssid == 'my home network' assert networks['my home network'].strength == 99 assert str(networks['random open network']) == ( 'Available Wi-Fi network: "random open network"') assert networks['random open network'].connected is False assert networks['random open network'].known is False assert networks['random open network'].secure is False assert networks['random open network'].ssid == 'random open network' assert networks['random open network'].strength == 42
def test_connect_to_known_wpa_network(mocker): from ideascube.serveradmin.wifi import AvailableWifiNetwork def activate_connection(connection, device, path): NM.ActiveConnections.append(NMActiveConnection(ssid=connection.ssid)) NM = mocker.patch('ideascube.serveradmin.wifi.NetworkManager') NM.ActivateConnection.side_effect = activate_connection NM.ActiveConnections = [] NM.Devices = [NMDevice(True)] NMSettings = mocker.patch('ideascube.serveradmin.wifi.NMSettings') NMSettings.ListConnections.side_effect = lambda: [ NMConnection(False), NMConnection(True, ssid='my home network'), ] networks = AvailableWifiNetwork.all() assert networks['my home network'].connected is False assert networks['my home network'].known is True assert networks['my home network'].secure is True assert networks['my home network'].ssid == 'my home network' assert NM.ActivateConnection.call_count == 0 networks['my home network'].connect() assert NM.ActivateConnection.call_count == 1 assert networks['my home network'].connected is True
def test_connect_to_new_open_network(mocker): from ideascube.serveradmin.wifi import AvailableWifiNetwork def add_connection(settings): ssid = settings['802-11-wireless']['ssid'] connection = NMConnection(True, ssid=ssid, is_secure=False) NMSettings.ListConnections.side_effect = lambda: [connection] NM.ActiveConnections.append( NMActiveConnection(ssid=connection.ssid, is_secure=False)) return connection NM = mocker.patch('ideascube.serveradmin.wifi.NetworkManager') NM.ActiveConnections = [] NM.Devices = [NMDevice(True)] NMSettings = mocker.patch('ideascube.serveradmin.wifi.NMSettings') NMSettings.AddConnection.side_effect = add_connection NMSettings.ListConnections.side_effect = lambda: [] networks = AvailableWifiNetwork.all() assert networks['random open network'].connected is False assert networks['random open network'].known is False assert networks['random open network'].secure is False assert networks['random open network'].ssid == 'random open network' assert NM.ActivateConnection.call_count == 0 assert NMSettings.AddConnection.call_count == 0 networks['random open network'].connect() assert NM.ActivateConnection.call_count == 0 assert NMSettings.AddConnection.call_count == 1 assert networks['random open network'].connected is True assert networks['random open network'].known is True
def test_connect_to_known_wpa_network(mocker): from ideascube.serveradmin.wifi import AvailableWifiNetwork def activate_connection(connection, device, path): NM.ActiveConnections.append( NMActiveConnection(ssid=connection.ssid)) NM = mocker.patch('ideascube.serveradmin.wifi.NetworkManager') NM.ActivateConnection.side_effect = activate_connection NM.ActiveConnections = [] NM.Devices = [NMDevice(True)] NMSettings = mocker.patch('ideascube.serveradmin.wifi.NMSettings') NMSettings.ListConnections.side_effect = lambda: [ NMConnection(False), NMConnection(True, ssid='my home network'), ] networks = AvailableWifiNetwork.all() assert networks['my home network'].connected is False assert networks['my home network'].known is True assert networks['my home network'].secure is True assert networks['my home network'].ssid == 'my home network' assert NM.ActivateConnection.call_count == 0 networks['my home network'].connect() assert NM.ActivateConnection.call_count == 1 assert networks['my home network'].connected is True
def test_connect_to_new_wpa_network(mocker): from ideascube.serveradmin.wifi import AvailableWifiNetwork, WifiError def add_connection(settings): key = settings['802-11-wireless-security']['psk'] if key != 'the right key': raise DBusException( '802-11-wireless-security.psk: invalid value', name='org.freedesktop.NetworkManager.Settings.InvalidProperty' ) ssid = settings['802-11-wireless']['ssid'] connection = NMConnection(True, ssid=ssid) NMSettings.ListConnections.side_effect = lambda: [connection] NM.ActiveConnections.append(NMActiveConnection(ssid=connection.ssid)) return connection NM = mocker.patch('ideascube.serveradmin.wifi.NetworkManager') NM.ActiveConnections = [] NM.Devices = [NMDevice(True)] NMSettings = mocker.patch('ideascube.serveradmin.wifi.NMSettings') NMSettings.AddConnection.side_effect = add_connection NMSettings.ListConnections.side_effect = lambda: [] networks = AvailableWifiNetwork.all() assert networks['my home network'].connected is False assert networks['my home network'].known is False assert networks['my home network'].secure is True assert networks['my home network'].ssid == 'my home network' assert NM.ActivateConnection.call_count == 0 assert NMSettings.AddConnection.call_count == 0 with pytest.raises(WifiError): networks['my home network'].connect() assert NM.ActivateConnection.call_count == 0 assert NMSettings.AddConnection.call_count == 0 with pytest.raises(WifiError): networks['my home network'].connect('the wrong key') assert NM.ActivateConnection.call_count == 0 assert NMSettings.AddConnection.call_count == 1 networks['my home network'].connect('the right key') assert networks['my home network'].connected is True assert networks['my home network'].known is True assert NM.ActivateConnection.call_count == 0 assert NMSettings.AddConnection.call_count == 2
def test_connect_to_new_wpa_network(mocker): from ideascube.serveradmin.wifi import AvailableWifiNetwork, WifiError def add_connection(settings): key = settings['802-11-wireless-security']['psk'] if key != 'the right key': raise DBusException( '802-11-wireless-security.psk: invalid value', name='org.freedesktop.NetworkManager.Settings.InvalidProperty') ssid = settings['802-11-wireless']['ssid'] connection = NMConnection(True, ssid=ssid) NMSettings.ListConnections.side_effect = lambda: [connection] NM.ActiveConnections.append(NMActiveConnection(ssid=connection.ssid)) return connection NM = mocker.patch('ideascube.serveradmin.wifi.NetworkManager') NM.ActiveConnections = [] NM.Devices = [NMDevice(True)] NMSettings = mocker.patch('ideascube.serveradmin.wifi.NMSettings') NMSettings.AddConnection.side_effect = add_connection NMSettings.ListConnections.side_effect = lambda: [] networks = AvailableWifiNetwork.all() assert networks['my home network'].connected is False assert networks['my home network'].known is False assert networks['my home network'].secure is True assert networks['my home network'].ssid == 'my home network' assert NM.ActivateConnection.call_count == 0 assert NMSettings.AddConnection.call_count == 0 with pytest.raises(WifiError): networks['my home network'].connect() assert NM.ActivateConnection.call_count == 0 assert NMSettings.AddConnection.call_count == 0 with pytest.raises(WifiError): networks['my home network'].connect('the wrong key') assert NM.ActivateConnection.call_count == 0 assert NMSettings.AddConnection.call_count == 1 networks['my home network'].connect('the right key') assert networks['my home network'].connected is True assert networks['my home network'].known is True assert NM.ActivateConnection.call_count == 0 assert NMSettings.AddConnection.call_count == 2