Update network tests, minor fixes to network.py.

Return UUID when adding a connection.
Have get_connection raise an exception instead of returning None.
This commit is contained in:
James Valleroy 2015-05-16 15:39:26 -04:00
parent 1055787be2
commit b00a634647
2 changed files with 47 additions and 26 deletions

View File

@ -95,10 +95,14 @@ def get_connection(connection_uuid):
"""
client = nm.Client.new(None)
try:
return client.get_connection_by_uuid(connection_uuid)
connection = client.get_connection_by_uuid(connection_uuid)
if not connection:
raise ConnectionNotFound(connection_uuid)
except KeyError:
raise ConnectionNotFound(connection_uuid)
return connection
def get_active_connection(connection_uuid):
"""Returns active connection with matching uuid.
@ -170,11 +174,15 @@ def _update_ethernet_settings(connection, connection_uuid, name, zone,
def add_ethernet_connection(name, zone, ipv4_method, ipv4_address):
"""Add an automatic ethernet connection in network manager."""
"""Add an automatic ethernet connection in network manager.
Returns the UUID for the connection.
"""
connection_uuid = str(uuid.uuid4())
connection = _update_ethernet_settings(
None, str(uuid.uuid4()), name, zone, ipv4_method, ipv4_address)
None, connection_uuid, name, zone, ipv4_method, ipv4_address)
client = nm.Client.new(None)
client.add_connection_async(connection, True, None, _callback, None)
return connection_uuid
def edit_ethernet_connection(connection, name, zone, ipv4_method,
@ -222,12 +230,16 @@ def _update_wifi_settings(connection, connection_uuid, name, zone, ssid, mode,
def add_wifi_connection(name, zone, ssid, mode, auth_mode, passphrase,
ipv4_method, ipv4_address):
"""Add an automatic Wi-Fi connection in network manager."""
"""Add an automatic Wi-Fi connection in network manager.
Return the UUID for the connection.
"""
connection_uuid = str(uuid.uuid4())
connection = _update_wifi_settings(
None, str(uuid.uuid4()), name, zone, ssid, mode, auth_mode, passphrase,
None, connection_uuid, name, zone, ssid, mode, auth_mode, passphrase,
ipv4_method, ipv4_address)
client = nm.Client.new(None)
client.add_connection_async(connection, True, None, _callback, None)
return connection_uuid
def edit_wifi_connection(connection, name, zone,

View File

@ -33,15 +33,13 @@ class TestNetwork(unittest.TestCase):
@classmethod
def setUp(cls):
connection = network.add_ethernet_connection(
cls.ethernet_uuid = network.add_ethernet_connection(
'plinth_test_eth', 'internal',
'auto', '')
cls.ethernet_uuid = connection['connection']['uuid']
connection = network.add_wifi_connection(
cls.wifi_uuid = network.add_wifi_connection(
'plinth_test_wifi', 'external',
'plinthtestwifi', 'adhoc', 'open', '',
'auto', '')
cls.wifi_uuid = connection['connection']['uuid']
@classmethod
def tearDown(cls):
@ -61,11 +59,11 @@ class TestNetwork(unittest.TestCase):
"""Check that we can get a connection by name."""
connection = network.get_connection(self.ethernet_uuid)
self.assertEqual(
connection.GetSettings()['connection']['id'], 'plinth_test_eth')
connection.get_id(), 'plinth_test_eth')
connection = network.get_connection(self.wifi_uuid)
self.assertEqual(
connection.GetSettings()['connection']['id'], 'plinth_test_wifi')
connection.get_id(), 'plinth_test_wifi')
self.assertRaises(network.ConnectionNotFound, network.get_connection,
'x-invalid-network-id')
@ -79,12 +77,16 @@ class TestNetwork(unittest.TestCase):
'169.254.0.1')
connection = network.get_connection(self.ethernet_uuid)
settings = connection.GetSettings()
self.assertEqual(settings['connection']['id'], 'plinth_test_eth_new')
self.assertEqual(settings['connection']['zone'], 'external')
self.assertEqual(settings['ipv4']['method'], 'manual')
self.assertEqual(settings['ipv4']['addresses'],
[['169.254.0.1', 24, '0.0.0.0']])
self.assertEqual(connection.get_id(), 'plinth_test_eth_new')
settings_connection = connection.get_setting_connection()
self.assertEqual(settings_connection.get_zone(), 'external')
settings_ipv4 = connection.get_setting_ip4_config()
self.assertEqual(settings_ipv4.get_method(), 'manual')
address = settings_ipv4.get_address(0)
self.assertEqual(address.get_address(), '169.254.0.1')
@unittest.skipUnless(euid == 0, 'Needs to be root')
def test_edit_wifi_connection(self):
@ -96,16 +98,23 @@ class TestNetwork(unittest.TestCase):
'auto', '')
connection = network.get_connection(self.wifi_uuid)
settings = connection.GetSettings()
self.assertEqual(settings['connection']['id'], 'plinth_test_wifi_new')
self.assertEqual(settings['connection']['zone'], 'external')
self.assertEqual(settings['802-11-wireless']['ssid'],
'plinthtestwifi2')
self.assertEqual(settings['802-11-wireless']['mode'], 'infrastructure')
self.assertEqual(settings['802-11-wireless-security']['key-mgmt'],
'wpa-psk')
self.assertEqual(connection.get_id(), 'plinth_test_wifi_new')
settings_connection = connection.get_setting_connection()
self.assertEqual(settings_connection.get_zone(), 'external')
settings_wireless = connection.get_setting_wireless()
self.assertEqual(settings_wireless.get_ssid().get_data(),
b'plinthtestwifi2')
self.assertEqual(settings_wireless.get_mode(), 'infrastructure')
wifi_sec = connection.get_setting_wireless_security()
self.assertEqual(wifi_sec.get_key_mgmt(), 'wpa-psk')
secrets = connection.get_secrets('802-11-wireless-security')
self.assertEqual(
connection.GetSecrets()['802-11-wireless-security']['psk'],
secrets['802-11-wireless-security']['psk'],
'secretpassword')