From 9cc1876fd74f0a8ef92888a90a88e1aa5905a626 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Fri, 1 Jun 2018 16:41:46 +0200 Subject: [PATCH 01/10] tests: rename local variables in NM test stub (1) - don't use "hash" for a local variable in python. The editor highlights it like a special python name. - don't use "settings" for Connection.settings. Name it Connection.con_hash. The name "settings" is over-used already. "con_hash" really is the nested dictionary that we expose/receive from D-Bus. If we would use libnm for it, it would be an NMSimpleConnection instance, but we don't. --- tools/test-networkmanager-service.py | 94 ++++++++++++++-------------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/tools/test-networkmanager-service.py b/tools/test-networkmanager-service.py index 75544c7eee..8eef914be5 100755 --- a/tools/test-networkmanager-service.py +++ b/tools/test-networkmanager-service.py @@ -659,11 +659,10 @@ class ActiveConnection(ExportedObj): self._activation_id = None - conn_settings = self.conn.GetSettings() - s_con = conn_settings['connection'] + s_con = connection.con_hash['connection'] props = { - PRP_ACTIVE_CONNECTION_CONNECTION: ExportedObj.to_path(self.conn), + PRP_ACTIVE_CONNECTION_CONNECTION: ExportedObj.to_path(connection), PRP_ACTIVE_CONNECTION_SPECIFIC_OBJECT: ExportedObj.to_path(specific_object), PRP_ACTIVE_CONNECTION_ID: s_con['id'], PRP_ACTIVE_CONNECTION_UUID: s_con['uuid'], @@ -806,8 +805,8 @@ class NetworkManager(ExportedObj): except Exception as e: raise UnknownConnectionException("Connection not found") - hash = connection.GetSettings() - s_con = hash['connection'] + con_hash = connection.con_hash + s_con = con_hash['connection'] device = self.find_device_first(path = devpath) if not device and s_con['type'] == 'vlan': @@ -818,10 +817,10 @@ class NetworkManager(ExportedObj): raise UnknownDeviceException("No device found for the requested iface.") # See if we need secrets. For the moment, we only support WPA - if '802-11-wireless-security' in hash: - s_wsec = hash['802-11-wireless-security'] + if '802-11-wireless-security' in con_hash: + s_wsec = con_hash['802-11-wireless-security'] if (s_wsec['key-mgmt'] == 'wpa-psk' and 'psk' not in s_wsec): - secrets = gl.agent_manager.get_secrets(hash, conpath, '802-11-wireless-security') + secrets = gl.agent_manager.get_secrets(con_hash, conpath, '802-11-wireless-security') if secrets is None: raise NoSecretsException("No secret agent available") if '802-11-wireless-security' not in secrets: @@ -1086,22 +1085,23 @@ class MissingSettingException(dbus.DBusException): PRP_CONNECTION_UNSAVED = 'Unsaved' class Connection(ExportedObj): - def __init__(self, path_counter, settings, verify_connection=True): + def __init__(self, path_counter, con_hash, verify_connection=True): path = "/org/freedesktop/NetworkManager/Settings/Connection/%s" % (path_counter) ExportedObj.__init__(self, path) - if 'connection' not in settings: - settings['connection'] = { } - if self.get_id(settings) is None: - settings['connection']['id'] = 'connection-%s' % (path_counter) - if self.get_uuid(settings) is None: - settings['connection']['uuid'] = str(uuid.uuid3(uuid.NAMESPACE_URL, path)) - self.verify(settings, verify_strict=verify_connection) + if 'connection' not in con_hash: + con_hash['connection'] = { } + if self.get_id(con_hash) is None: + con_hash['connection']['id'] = 'connection-%s' % (path_counter) + if self.get_uuid(con_hash) is None: + con_hash['connection']['uuid'] = str(uuid.uuid3(uuid.NAMESPACE_URL, path)) + + self.verify(con_hash, verify_strict=verify_connection) self.path = path - self.settings = settings + self.con_hash = con_hash self.visible = True props = { @@ -1110,30 +1110,30 @@ class Connection(ExportedObj): self.dbus_interface_add(IFACE_CONNECTION, props) - def get_id(self, settings=None): - if settings is None: - settings = self.settings - if 'connection' in settings: - s_con = settings['connection'] + def get_id(self, con_hash=None): + if con_hash is None: + con_hash = self.con_hash + if 'connection' in con_hash: + s_con = con_hash['connection'] if 'id' in s_con: return s_con['id'] return None - def get_uuid(self, settings=None): - if settings is None: - settings = self.settings - if 'connection' in settings: - s_con = settings['connection'] + def get_uuid(self, con_hash=None): + if con_hash is None: + con_hash = self.con_hash + if 'connection' in con_hash: + s_con = con_hash['connection'] if 'uuid' in s_con: return s_con['uuid'] return None - def verify(self, settings=None, verify_strict=True): - if settings is None: - settings = self.settings; - if 'connection' not in settings: + def verify(self, con_hash=None, verify_strict=True): + if con_hash is None: + con_hash = self.con_hash; + if 'connection' not in con_hash: raise MissingSettingException('connection: setting is required') - s_con = settings['connection'] + s_con = con_hash['connection'] if 'type' not in s_con: raise MissingPropertyException('connection.type: property is required') if 'uuid' not in s_con: @@ -1147,22 +1147,22 @@ class Connection(ExportedObj): if t not in ['802-3-ethernet', '802-11-wireless', 'vlan', 'wimax']: raise InvalidPropertyException('connection.type: unsupported connection type "%s"' % (t)) - def update_connection(self, settings, verify_connection): - self.verify(settings, verify_strict=verify_connection) + def update_connection(self, con_hash, verify_connection): + self.verify(con_hash, verify_strict=verify_connection) old_uuid = self.get_uuid() - new_uuid = self.get_uuid(settings) + new_uuid = self.get_uuid(con_hash) if old_uuid != new_uuid: raise InvalidPropertyException('connection.uuid: cannot change the uuid from %s to %s' % (old_uuid, new_uuid)) - self.settings = settings; + self.con_hash = con_hash; self.Updated() @dbus.service.method(dbus_interface=IFACE_CONNECTION, in_signature='', out_signature='a{sa{sv}}') def GetSettings(self): if not self.visible: raise PermissionDeniedException() - return self.settings + return self.con_hash @dbus.service.method(dbus_interface=IFACE_CONNECTION, in_signature='b', out_signature='') def SetVisible(self, vis): @@ -1174,12 +1174,12 @@ class Connection(ExportedObj): gl.settings.delete_connection(self) @dbus.service.method(dbus_interface=IFACE_CONNECTION, in_signature='a{sa{sv}}', out_signature='') - def Update(self, settings): - self.update_connection(settings, True) + def Update(self, con_hash): + self.update_connection(con_hash, True) @dbus.service.method(dbus_interface=IFACE_CONNECTION, in_signature='a{sa{sv}}ua{sv}', out_signature='a{sv}') - def Update2(self, settings, flags, args): - self.update_connection(settings, True) + def Update2(self, con_hash, flags, args): + self.update_connection(con_hash, True) return [] @dbus.service.signal(IFACE_CONNECTION, signature='') @@ -1242,12 +1242,12 @@ class Settings(ExportedObj): return self.connections.keys() @dbus.service.method(dbus_interface=IFACE_SETTINGS, in_signature='a{sa{sv}}', out_signature='o') - def AddConnection(self, settings): - return self.add_connection(settings) + def AddConnection(self, con_hash): + return self.add_connection(con_hash) - def add_connection(self, settings, verify_connection=True): + def add_connection(self, con_hash, verify_connection=True): self.c_counter += 1 - con = Connection(self.c_counter, settings, verify_connection) + con = Connection(self.c_counter, con_hash, verify_connection) uuid = con.get_uuid() if uuid in [c.get_uuid() for c in self.connections.values()]: @@ -1367,7 +1367,7 @@ class AgentManager(dbus.service.Object): def Unregister(self, sender=None): del self.agents[sender] - def get_secrets(self, connection, path, setting_name): + def get_secrets(self, con_hash, path, setting_name): if len(self.agents) == 0: return None @@ -1375,7 +1375,7 @@ class AgentManager(dbus.service.Object): for sender in self.agents: agent = self.agents[sender] try: - secrets = agent.GetSecrets(connection, path, setting_name, + secrets = agent.GetSecrets(con_hash, path, setting_name, dbus.Array([], 's'), FLAG_ALLOW_INTERACTION | FLAG_USER_REQUESTED, dbus_interface=IFACE_AGENT) From 78576794ebc30080e3ef3d5aef8aa5cbd81aae72 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Fri, 1 Jun 2018 17:22:12 +0200 Subject: [PATCH 02/10] tests: rename local variables in NM test stub (2) lso, the name "connection" and "con" is overused. Use "con_inst" where we mean an instance of a "Connection" class, that is, the object exposed on D-Bus. --- tools/test-networkmanager-service.py | 55 +++++++++++++--------------- 1 file changed, 26 insertions(+), 29 deletions(-) diff --git a/tools/test-networkmanager-service.py b/tools/test-networkmanager-service.py index 8eef914be5..b66a8fe2c9 100755 --- a/tools/test-networkmanager-service.py +++ b/tools/test-networkmanager-service.py @@ -650,19 +650,19 @@ class ActiveConnection(ExportedObj): path_counter_next = 1 path_prefix = "/org/freedesktop/NetworkManager/ActiveConnection/" - def __init__(self, device, connection, specific_object): + def __init__(self, device, con_inst, specific_object): ExportedObj.__init__(self, ExportedObj.create_path(ActiveConnection)) self.device = device - self.conn = connection + self.con_inst = con_inst self._activation_id = None - s_con = connection.con_hash['connection'] + s_con = con_inst.con_hash['connection'] props = { - PRP_ACTIVE_CONNECTION_CONNECTION: ExportedObj.to_path(connection), + PRP_ACTIVE_CONNECTION_CONNECTION: ExportedObj.to_path(con_inst), PRP_ACTIVE_CONNECTION_SPECIFIC_OBJECT: ExportedObj.to_path(specific_object), PRP_ACTIVE_CONNECTION_ID: s_con['id'], PRP_ACTIVE_CONNECTION_UUID: s_con['uuid'], @@ -801,11 +801,11 @@ class NetworkManager(ExportedObj): @dbus.service.method(dbus_interface=IFACE_NM, in_signature='ooo', out_signature='o') def ActivateConnection(self, conpath, devpath, specific_object): try: - connection = gl.settings.get_connection(conpath) + con_inst = gl.settings.get_connection(conpath) except Exception as e: raise UnknownConnectionException("Connection not found") - con_hash = connection.con_hash + con_hash = con_inst.con_hash s_con = con_hash['connection'] device = self.find_device_first(path = devpath) @@ -829,7 +829,7 @@ class NetworkManager(ExportedObj): if 'psk' not in s_wsec: raise NoSecretsException("No secrets provided") - ac = ActiveConnection(device, connection, None) + ac = ActiveConnection(device, con_inst, None) self.active_connection_add(ac) if s_con['id'] == 'object-creation-failed-test': @@ -854,9 +854,9 @@ class NetworkManager(ExportedObj): ac.unexport() @dbus.service.method(dbus_interface=IFACE_NM, in_signature='a{sa{sv}}oo', out_signature='oo') - def AddAndActivateConnection(self, connection, devpath, specific_object): + def AddAndActivateConnection(self, con_hash, devpath, specific_object): device = self.find_device_first(path = devpath, require = UnknownDeviceException) - conpath = gl.settings.AddConnection(connection) + conpath = gl.settings.AddConnection(con_hash) return (conpath, self.ActivateConnection(conpath, devpath, specific_object)) @dbus.service.method(dbus_interface=IFACE_NM, in_signature='o', out_signature='') @@ -1047,12 +1047,12 @@ class NetworkManager(ExportedObj): gl.settings.auto_remove_next_connection() @dbus.service.method(dbus_interface=IFACE_TEST, in_signature='a{sa{sv}}b', out_signature='o') - def AddConnection(self, connection, verify_connection): - return gl.settings.add_connection(connection, verify_connection) + def AddConnection(self, con_hash, verify_connection): + return gl.settings.add_connection(con_hash, verify_connection) @dbus.service.method(dbus_interface=IFACE_TEST, in_signature='sa{sa{sv}}b', out_signature='') - def UpdateConnection(self, path, connection, verify_connection): - return gl.settings.update_connection(connection, path, verify_connection) + def UpdateConnection(self, path, con_hash, verify_connection): + return gl.settings.update_connection(con_hash, path, verify_connection) @dbus.service.method(dbus_interface=IFACE_TEST, in_signature='ba{ss}', out_signature='') def ConnectionSetVisible(self, vis, selector_args): @@ -1247,36 +1247,33 @@ class Settings(ExportedObj): def add_connection(self, con_hash, verify_connection=True): self.c_counter += 1 - con = Connection(self.c_counter, con_hash, verify_connection) + con_inst = Connection(self.c_counter, con_hash, verify_connection) - uuid = con.get_uuid() + uuid = con_inst.get_uuid() if uuid in [c.get_uuid() for c in self.connections.values()]: raise InvalidSettingException('cannot add duplicate connection with uuid %s' % (uuid)) - con.export() - self.connections[con.path] = con - self.NewConnection(con.path) + con_inst.export() + self.connections[con_inst.path] = con_inst + self.NewConnection(con_inst.path) self._dbus_property_set(IFACE_SETTINGS, PRP_SETTINGS_CONNECTIONS, dbus.Array(self.connections.keys(), 'o')) if self.remove_next_connection: self.remove_next_connection = False - self.delete_connection(con) + self.delete_connection(con_inst) - return con.path + return con_inst.path - def update_connection(self, connection, path=None, verify_connection=True): - if path is None: - path = connection.path + def update_connection(self, con_hash, path=None, verify_connection=True): if path not in self.connections: raise UnknownConnectionException('Connection not found') - con = self.connections[path] - con.update_connection(connection, verify_connection) + self.connections[path].update_connection(con_hash, verify_connection) - def delete_connection(self, connection): - del self.connections[connection.path] + def delete_connection(self, con_inst): + del self.connections[con_inst.path] self._dbus_property_set(IFACE_SETTINGS, PRP_SETTINGS_CONNECTIONS, dbus.Array(self.connections.keys(), 'o')) - connection.Removed() - connection.unexport() + con_inst.Removed() + con_inst.unexport() @dbus.service.method(dbus_interface=IFACE_SETTINGS, in_signature='s', out_signature='') def SaveHostname(self, hostname): From e862e67f48b707257a4669b85032084102ddee4b Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Fri, 1 Jun 2018 17:53:23 +0200 Subject: [PATCH 03/10] tests: use libnm defines for NM test stub These names are unique and well-known. --- tools/test-networkmanager-service.py | 57 +++++++++++++++------------- 1 file changed, 31 insertions(+), 26 deletions(-) diff --git a/tools/test-networkmanager-service.py b/tools/test-networkmanager-service.py index b66a8fe2c9..456888a2aa 100755 --- a/tools/test-networkmanager-service.py +++ b/tools/test-networkmanager-service.py @@ -659,14 +659,14 @@ class ActiveConnection(ExportedObj): self._activation_id = None - s_con = con_inst.con_hash['connection'] + s_con = con_inst.con_hash[NM.SETTING_CONNECTION_SETTING_NAME] props = { PRP_ACTIVE_CONNECTION_CONNECTION: ExportedObj.to_path(con_inst), PRP_ACTIVE_CONNECTION_SPECIFIC_OBJECT: ExportedObj.to_path(specific_object), - PRP_ACTIVE_CONNECTION_ID: s_con['id'], - PRP_ACTIVE_CONNECTION_UUID: s_con['uuid'], - PRP_ACTIVE_CONNECTION_TYPE: s_con['type'], + PRP_ACTIVE_CONNECTION_ID: s_con[NM.SETTING_CONNECTION_ID], + PRP_ACTIVE_CONNECTION_UUID: s_con[NM.SETTING_CONNECTION_UUID], + PRP_ACTIVE_CONNECTION_TYPE: s_con[NM.SETTING_CONNECTION_TYPE], PRP_ACTIVE_CONNECTION_DEVICES: ExportedObj.to_path_array([self.device]), PRP_ACTIVE_CONNECTION_STATE: dbus.UInt32(NM.ActiveConnectionState.UNKNOWN), PRP_ACTIVE_CONNECTION_DEFAULT: False, @@ -806,10 +806,10 @@ class NetworkManager(ExportedObj): raise UnknownConnectionException("Connection not found") con_hash = con_inst.con_hash - s_con = con_hash['connection'] + s_con = con_hash[NM.SETTING_CONNECTION_SETTING_NAME] device = self.find_device_first(path = devpath) - if not device and s_con['type'] == 'vlan': + if not device and s_con[NM.SETTING_CONNECTION_TYPE] == NM.SETTING_VLAN_SETTING_NAME: ifname = s_con['interface-name'] device = VlanDevice(ifname) self.add_device(device) @@ -832,7 +832,7 @@ class NetworkManager(ExportedObj): ac = ActiveConnection(device, con_inst, None) self.active_connection_add(ac) - if s_con['id'] == 'object-creation-failed-test': + if s_con[NM.SETTING_CONNECTION_ID] == 'object-creation-failed-test': # FIXME: this is not the right test, to delete the active-connection # before returning it. It's the wrong order of what NetworkManager # would do. @@ -1091,12 +1091,14 @@ class Connection(ExportedObj): ExportedObj.__init__(self, path) - if 'connection' not in con_hash: - con_hash['connection'] = { } + s_con = con_hash.get(NM.SETTING_CONNECTION_SETTING_NAME) + if s_con is None: + s_con = {} + con_hash[NM.SETTING_CONNECTION_SETTING_NAME] = s_con if self.get_id(con_hash) is None: - con_hash['connection']['id'] = 'connection-%s' % (path_counter) + s_con[NM.SETTING_CONNECTION_ID] = 'connection-%s' % (path_counter) if self.get_uuid(con_hash) is None: - con_hash['connection']['uuid'] = str(uuid.uuid3(uuid.NAMESPACE_URL, path)) + s_con[NM.SETTING_CONNECTION_UUID] = str(uuid.uuid3(uuid.NAMESPACE_URL, path)) self.verify(con_hash, verify_strict=verify_connection) @@ -1113,38 +1115,41 @@ class Connection(ExportedObj): def get_id(self, con_hash=None): if con_hash is None: con_hash = self.con_hash - if 'connection' in con_hash: - s_con = con_hash['connection'] - if 'id' in s_con: - return s_con['id'] + if NM.SETTING_CONNECTION_SETTING_NAME in con_hash: + s_con = con_hash[NM.SETTING_CONNECTION_SETTING_NAME] + if NM.SETTING_CONNECTION_ID in s_con: + return s_con[NM.SETTING_CONNECTION_ID] return None def get_uuid(self, con_hash=None): if con_hash is None: con_hash = self.con_hash - if 'connection' in con_hash: - s_con = con_hash['connection'] - if 'uuid' in s_con: - return s_con['uuid'] + if NM.SETTING_CONNECTION_SETTING_NAME in con_hash: + s_con = con_hash[NM.SETTING_CONNECTION_SETTING_NAME] + if NM.SETTING_CONNECTION_UUID in s_con: + return s_con[NM.SETTING_CONNECTION_UUID] return None def verify(self, con_hash=None, verify_strict=True): if con_hash is None: con_hash = self.con_hash; - if 'connection' not in con_hash: + if NM.SETTING_CONNECTION_SETTING_NAME not in con_hash: raise MissingSettingException('connection: setting is required') - s_con = con_hash['connection'] - if 'type' not in s_con: + s_con = con_hash[NM.SETTING_CONNECTION_SETTING_NAME] + if NM.SETTING_CONNECTION_TYPE not in s_con: raise MissingPropertyException('connection.type: property is required') - if 'uuid' not in s_con: + if NM.SETTING_CONNECTION_UUID not in s_con: raise MissingPropertyException('connection.uuid: property is required') - if 'id' not in s_con: + if NM.SETTING_CONNECTION_ID not in s_con: raise MissingPropertyException('connection.id: property is required') if not verify_strict: return; - t = s_con['type'] - if t not in ['802-3-ethernet', '802-11-wireless', 'vlan', 'wimax']: + t = s_con[NM.SETTING_CONNECTION_TYPE] + if t not in [ NM.SETTING_WIRED_SETTING_NAME, + NM.SETTING_WIRELESS_SETTING_NAME, + NM.SETTING_VLAN_SETTING_NAME, + NM.SETTING_WIMAX_SETTING_NAME ]: raise InvalidPropertyException('connection.type: unsupported connection type "%s"' % (t)) def update_connection(self, con_hash, verify_connection): From ef612b8e234e9424eab93a2196147f039cc6c7aa Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Tue, 5 Jun 2018 10:51:16 +0200 Subject: [PATCH 04/10] tests: reorder definitions in test-networkmanager-service.py Define all custom exception types together. --- tools/test-networkmanager-service.py | 144 +++++++++++++-------------- 1 file changed, 67 insertions(+), 77 deletions(-) diff --git a/tools/test-networkmanager-service.py b/tools/test-networkmanager-service.py index 456888a2aa..45fab314cd 100755 --- a/tools/test-networkmanager-service.py +++ b/tools/test-networkmanager-service.py @@ -43,14 +43,6 @@ class TestError(AssertionError): ############################################################################### -IFACE_DBUS = 'org.freedesktop.DBus' - -class UnknownInterfaceException(dbus.DBusException): - _dbus_error_name = IFACE_DBUS + '.UnknownInterface' - -class UnknownPropertyException(dbus.DBusException): - _dbus_error_name = IFACE_DBUS + '.UnknownProperty' - class Util: @staticmethod @@ -89,6 +81,73 @@ class Util: ############################################################################### +IFACE_DBUS = 'org.freedesktop.DBus' +IFACE_CONNECTION = 'org.freedesktop.NetworkManager.Settings.Connection' +IFACE_DEVICE = 'org.freedesktop.NetworkManager.Device' +IFACE_WIFI = 'org.freedesktop.NetworkManager.Device.Wireless' +IFACE_WIMAX = 'org.freedesktop.NetworkManager.Device.WiMax' +IFACE_TEST = 'org.freedesktop.NetworkManager.LibnmGlibTest' +IFACE_NM = 'org.freedesktop.NetworkManager' +IFACE_SETTINGS = 'org.freedesktop.NetworkManager.Settings' +IFACE_AGENT_MANAGER = 'org.freedesktop.NetworkManager.AgentManager' +IFACE_AGENT = 'org.freedesktop.NetworkManager.SecretAgent' +IFACE_WIRED = 'org.freedesktop.NetworkManager.Device.Wired' +IFACE_VLAN = 'org.freedesktop.NetworkManager.Device.Vlan' +IFACE_WIFI_AP = 'org.freedesktop.NetworkManager.AccessPoint' +IFACE_WIMAX_NSP = 'org.freedesktop.NetworkManager.WiMax.Nsp' +IFACE_ACTIVE_CONNECTION = 'org.freedesktop.NetworkManager.Connection.Active' +IFACE_DNS_MANAGER = 'org.freedesktop.NetworkManager.DnsManager' +IFACE_OBJECT_MANAGER = 'org.freedesktop.DBus.ObjectManager' + +############################################################################### + +class UnknownInterfaceException(dbus.DBusException): + _dbus_error_name = IFACE_DBUS + '.UnknownInterface' + +class UnknownPropertyException(dbus.DBusException): + _dbus_error_name = IFACE_DBUS + '.UnknownProperty' + +class InvalidPropertyException(dbus.DBusException): + _dbus_error_name = IFACE_CONNECTION + '.InvalidProperty' + +class MissingPropertyException(dbus.DBusException): + _dbus_error_name = IFACE_CONNECTION + '.MissingProperty' + +class InvalidSettingException(dbus.DBusException): + _dbus_error_name = IFACE_CONNECTION + '.InvalidSetting' + +class MissingSettingException(dbus.DBusException): + _dbus_error_name = IFACE_CONNECTION + '.MissingSetting' + +class NotSoftwareException(dbus.DBusException): + _dbus_error_name = IFACE_DEVICE + '.NotSoftware' + +class ApNotFoundException(dbus.DBusException): + _dbus_error_name = IFACE_WIFI + '.AccessPointNotFound' + +class NspNotFoundException(dbus.DBusException): + _dbus_error_name = IFACE_WIMAX + '.NspNotFound' + +class PermissionDeniedException(dbus.DBusException): + _dbus_error_name = IFACE_NM + '.PermissionDenied' + +class UnknownDeviceException(dbus.DBusException): + _dbus_error_name = IFACE_NM + '.UnknownDevice' + +class UnknownConnectionException(dbus.DBusException): + _dbus_error_name = IFACE_NM + '.UnknownConnection' + +class InvalidHostnameException(dbus.DBusException): + _dbus_error_name = IFACE_SETTINGS + '.InvalidHostname' + +class NoSecretsException(dbus.DBusException): + _dbus_error_name = IFACE_AGENT_MANAGER + '.NoSecrets' + +class UserCanceledException(dbus.DBusException): + _dbus_error_name = IFACE_AGENT_MANAGER + '.UserCanceled' + +############################################################################### + class ExportedObj(dbus.service.Object): DBusInterface = collections.namedtuple('DBusInterface', ['dbus_iface', 'props', 'legacy_prop_changed_func']) @@ -232,11 +291,6 @@ class ExportedObj(dbus.service.Object): ############################################################################### -IFACE_DEVICE = 'org.freedesktop.NetworkManager.Device' - -class NotSoftwareException(dbus.DBusException): - _dbus_error_name = IFACE_DEVICE + '.NotSoftware' - PRP_DEVICE_UDI = "Udi" PRP_DEVICE_IFACE = "Interface" PRP_DEVICE_DRIVER = "Driver" @@ -300,8 +354,6 @@ class Device(ExportedObj): ############################################################################### -IFACE_WIRED = 'org.freedesktop.NetworkManager.Device.Wired' - PRP_WIRED_HW_ADDRESS = "HwAddress" PRP_WIRED_PERM_HW_ADDRESS = "PermHwAddress" PRP_WIRED_SPEED = "Speed" @@ -333,8 +385,6 @@ class WiredDevice(Device): ############################################################################### -IFACE_VLAN = 'org.freedesktop.NetworkManager.Device.Vlan' - PRP_VLAN_HW_ADDRESS = "HwAddress" PRP_VLAN_CARRIER = "Carrier" PRP_VLAN_VLAN_ID = "VlanId" @@ -357,8 +407,6 @@ class VlanDevice(Device): ############################################################################### -IFACE_WIFI_AP = 'org.freedesktop.NetworkManager.AccessPoint' - PRP_WIFI_AP_FLAGS = "Flags" PRP_WIFI_AP_WPA_FLAGS = "WpaFlags" PRP_WIFI_AP_RSN_FLAGS = "RsnFlags" @@ -426,11 +474,6 @@ class WifiAp(ExportedObj): ############################################################################### -IFACE_WIFI = 'org.freedesktop.NetworkManager.Device.Wireless' - -class ApNotFoundException(dbus.DBusException): - _dbus_error_name = IFACE_WIFI + '.AccessPointNotFound' - PRP_WIFI_HW_ADDRESS = "HwAddress" PRP_WIFI_PERM_HW_ADDRESS = "PermHwAddress" PRP_WIFI_MODE = "Mode" @@ -509,8 +552,6 @@ class WifiDevice(Device): ############################################################################### -IFACE_WIMAX_NSP = 'org.freedesktop.NetworkManager.WiMax.Nsp' - PRP_WIMAX_NSP_NAME = "Name" PRP_WIMAX_NSP_SIGNAL_QUALITY = "SignalQuality" PRP_WIMAX_NSP_NETWORK_TYPE = "NetworkType" @@ -549,11 +590,6 @@ class WimaxNsp(ExportedObj): ############################################################################### -IFACE_WIMAX = 'org.freedesktop.NetworkManager.Device.WiMax' - -class NspNotFoundException(dbus.DBusException): - _dbus_error_name = IFACE_WIMAX + '.NspNotFound' - PRP_WIMAX_NSPS = "Nsps" PRP_WIMAX_HW_ADDRESS = "HwAddress" PRP_WIMAX_CENTER_FREQUENCY = "CenterFrequency" @@ -627,8 +663,6 @@ class WimaxDevice(Device): ############################################################################### -IFACE_ACTIVE_CONNECTION = 'org.freedesktop.NetworkManager.Connection.Active' - PRP_ACTIVE_CONNECTION_CONNECTION = "Connection" PRP_ACTIVE_CONNECTION_SPECIFIC_OBJECT = "SpecificObject" PRP_ACTIVE_CONNECTION_ID = "Id" @@ -720,18 +754,6 @@ class ActiveConnection(ExportedObj): ############################################################################### -IFACE_TEST = 'org.freedesktop.NetworkManager.LibnmGlibTest' -IFACE_NM = 'org.freedesktop.NetworkManager' - -class PermissionDeniedException(dbus.DBusException): - _dbus_error_name = IFACE_NM + '.PermissionDenied' - -class UnknownDeviceException(dbus.DBusException): - _dbus_error_name = IFACE_NM + '.UnknownDevice' - -class UnknownConnectionException(dbus.DBusException): - _dbus_error_name = IFACE_NM + '.UnknownConnection' - PRP_NM_DEVICES = 'Devices' PRP_NM_ALL_DEVICES = 'AllDevices' PRP_NM_NETWORKING_ENABLED = 'NetworkingEnabled' @@ -1068,20 +1090,6 @@ class NetworkManager(ExportedObj): ############################################################################### -IFACE_CONNECTION = 'org.freedesktop.NetworkManager.Settings.Connection' - -class InvalidPropertyException(dbus.DBusException): - _dbus_error_name = IFACE_CONNECTION + '.InvalidProperty' - -class MissingPropertyException(dbus.DBusException): - _dbus_error_name = IFACE_CONNECTION + '.MissingProperty' - -class InvalidSettingException(dbus.DBusException): - _dbus_error_name = IFACE_CONNECTION + '.InvalidSetting' - -class MissingSettingException(dbus.DBusException): - _dbus_error_name = IFACE_CONNECTION + '.MissingSetting' - PRP_CONNECTION_UNSAVED = 'Unsaved' class Connection(ExportedObj): @@ -1197,11 +1205,6 @@ class Connection(ExportedObj): ############################################################################### -IFACE_SETTINGS = 'org.freedesktop.NetworkManager.Settings' - -class InvalidHostnameException(dbus.DBusException): - _dbus_error_name = IFACE_SETTINGS + '.InvalidHostname' - PRP_SETTINGS_HOSTNAME = 'Hostname' PRP_SETTINGS_CAN_MODIFY = 'CanModify' PRP_SETTINGS_CONNECTIONS = 'Connections' @@ -1301,8 +1304,6 @@ class Settings(ExportedObj): ############################################################################### -IFACE_DNS_MANAGER = 'org.freedesktop.NetworkManager.DnsManager' - PRP_DNS_MANAGER_MODE = 'Mode' PRP_DNS_MANAGER_RC_MANAGER = 'RcManager' PRP_DNS_MANAGER_CONFIGURATION = 'Configuration' @@ -1331,21 +1332,12 @@ class DnsManager(ExportedObj): ############################################################################### -IFACE_AGENT_MANAGER = 'org.freedesktop.NetworkManager.AgentManager' -IFACE_AGENT = 'org.freedesktop.NetworkManager.SecretAgent' - PATH_SECRET_AGENT = '/org/freedesktop/NetworkManager/SecretAgent' FLAG_ALLOW_INTERACTION = 0x1 FLAG_REQUEST_NEW = 0x2 FLAG_USER_REQUESTED = 0x4 -class NoSecretsException(dbus.DBusException): - _dbus_error_name = IFACE_AGENT_MANAGER + '.NoSecrets' - -class UserCanceledException(dbus.DBusException): - _dbus_error_name = IFACE_AGENT_MANAGER + '.UserCanceled' - class AgentManager(dbus.service.Object): def __init__(self): dbus.service.Object.__init__(self, gl.bus, "/org/freedesktop/NetworkManager/AgentManager") @@ -1390,8 +1382,6 @@ class AgentManager(dbus.service.Object): ############################################################################### -IFACE_OBJECT_MANAGER = 'org.freedesktop.DBus.ObjectManager' - class ObjectManager(dbus.service.Object): def __init__(self, object_path): dbus.service.Object.__init__(self, gl.bus, object_path) From 780af4cffba8b1517cbba06b0cb97e7e1d4c1f2d Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Tue, 5 Jun 2018 10:51:16 +0200 Subject: [PATCH 05/10] tests: nest custom exceptions in common namespace --- tools/test-networkmanager-service.py | 112 ++++++++++++++------------- 1 file changed, 57 insertions(+), 55 deletions(-) diff --git a/tools/test-networkmanager-service.py b/tools/test-networkmanager-service.py index 45fab314cd..3152aa5a71 100755 --- a/tools/test-networkmanager-service.py +++ b/tools/test-networkmanager-service.py @@ -101,50 +101,52 @@ IFACE_OBJECT_MANAGER = 'org.freedesktop.DBus.ObjectManager' ############################################################################### -class UnknownInterfaceException(dbus.DBusException): - _dbus_error_name = IFACE_DBUS + '.UnknownInterface' +class BusErr: -class UnknownPropertyException(dbus.DBusException): - _dbus_error_name = IFACE_DBUS + '.UnknownProperty' + class UnknownInterfaceException(dbus.DBusException): + _dbus_error_name = IFACE_DBUS + '.UnknownInterface' -class InvalidPropertyException(dbus.DBusException): - _dbus_error_name = IFACE_CONNECTION + '.InvalidProperty' + class UnknownPropertyException(dbus.DBusException): + _dbus_error_name = IFACE_DBUS + '.UnknownProperty' -class MissingPropertyException(dbus.DBusException): - _dbus_error_name = IFACE_CONNECTION + '.MissingProperty' + class InvalidPropertyException(dbus.DBusException): + _dbus_error_name = IFACE_CONNECTION + '.InvalidProperty' -class InvalidSettingException(dbus.DBusException): - _dbus_error_name = IFACE_CONNECTION + '.InvalidSetting' + class MissingPropertyException(dbus.DBusException): + _dbus_error_name = IFACE_CONNECTION + '.MissingProperty' -class MissingSettingException(dbus.DBusException): - _dbus_error_name = IFACE_CONNECTION + '.MissingSetting' + class InvalidSettingException(dbus.DBusException): + _dbus_error_name = IFACE_CONNECTION + '.InvalidSetting' -class NotSoftwareException(dbus.DBusException): - _dbus_error_name = IFACE_DEVICE + '.NotSoftware' + class MissingSettingException(dbus.DBusException): + _dbus_error_name = IFACE_CONNECTION + '.MissingSetting' -class ApNotFoundException(dbus.DBusException): - _dbus_error_name = IFACE_WIFI + '.AccessPointNotFound' + class NotSoftwareException(dbus.DBusException): + _dbus_error_name = IFACE_DEVICE + '.NotSoftware' -class NspNotFoundException(dbus.DBusException): - _dbus_error_name = IFACE_WIMAX + '.NspNotFound' + class ApNotFoundException(dbus.DBusException): + _dbus_error_name = IFACE_WIFI + '.AccessPointNotFound' -class PermissionDeniedException(dbus.DBusException): - _dbus_error_name = IFACE_NM + '.PermissionDenied' + class NspNotFoundException(dbus.DBusException): + _dbus_error_name = IFACE_WIMAX + '.NspNotFound' -class UnknownDeviceException(dbus.DBusException): - _dbus_error_name = IFACE_NM + '.UnknownDevice' + class PermissionDeniedException(dbus.DBusException): + _dbus_error_name = IFACE_NM + '.PermissionDenied' -class UnknownConnectionException(dbus.DBusException): - _dbus_error_name = IFACE_NM + '.UnknownConnection' + class UnknownDeviceException(dbus.DBusException): + _dbus_error_name = IFACE_NM + '.UnknownDevice' -class InvalidHostnameException(dbus.DBusException): - _dbus_error_name = IFACE_SETTINGS + '.InvalidHostname' + class UnknownConnectionException(dbus.DBusException): + _dbus_error_name = IFACE_NM + '.UnknownConnection' -class NoSecretsException(dbus.DBusException): - _dbus_error_name = IFACE_AGENT_MANAGER + '.NoSecrets' + class InvalidHostnameException(dbus.DBusException): + _dbus_error_name = IFACE_SETTINGS + '.InvalidHostname' -class UserCanceledException(dbus.DBusException): - _dbus_error_name = IFACE_AGENT_MANAGER + '.UserCanceled' + class NoSecretsException(dbus.DBusException): + _dbus_error_name = IFACE_AGENT_MANAGER + '.NoSecrets' + + class UserCanceledException(dbus.DBusException): + _dbus_error_name = IFACE_AGENT_MANAGER + '.UserCanceled' ############################################################################### @@ -204,7 +206,7 @@ class ExportedObj(dbus.service.Object): def _dbus_interface_get(self, dbus_iface): if dbus_iface not in self._dbus_ifaces: - raise UnknownInterfaceException() + raise BusErr.UnknownInterfaceException() return self._dbus_ifaces[dbus_iface] def _dbus_interface_get_property(self, dbus_interface, propname = None): @@ -212,7 +214,7 @@ class ExportedObj(dbus.service.Object): if propname is None: return props if propname not in props: - raise UnknownPropertyException() + raise BusErr.UnknownPropertyException() return props[propname] def _dbus_property_get(self, dbus_iface, propname = None): @@ -342,7 +344,7 @@ class Device(ExportedObj): @dbus.service.method(dbus_interface=IFACE_DEVICE, in_signature='', out_signature='') def Delete(self): # We don't currently support any software device types, so... - raise NotSoftwareException() + raise BusErr.NotSoftwareException() pass @dbus.service.signal(IFACE_DEVICE, signature='a{sv}') @@ -547,7 +549,7 @@ class WifiDevice(Device): if ap.path == path: self.remove_ap(ap) return - raise ApNotFoundException("AP %s not found" % path) + raise BusErr.ApNotFoundException("AP %s not found" % path) ############################################################################### @@ -659,7 +661,7 @@ class WimaxDevice(Device): if nsp.path == path: self.remove_nsp(nsp) return - raise NspNotFoundException("NSP %s not found" % path) + raise BusErr.NspNotFoundException("NSP %s not found" % path) ############################################################################### @@ -817,7 +819,7 @@ class NetworkManager(ExportedObj): @dbus.service.method(dbus_interface=IFACE_NM, in_signature='s', out_signature='o') def GetDeviceByIpIface(self, ip_iface): - d = self.find_device_first(ip_iface = ip_iface, require = UnknownDeviceException) + d = self.find_device_first(ip_iface = ip_iface, require = BusErr.UnknownDeviceException) return ExportedObj.to_path(d) @dbus.service.method(dbus_interface=IFACE_NM, in_signature='ooo', out_signature='o') @@ -825,7 +827,7 @@ class NetworkManager(ExportedObj): try: con_inst = gl.settings.get_connection(conpath) except Exception as e: - raise UnknownConnectionException("Connection not found") + raise BusErr.UnknownConnectionException("Connection not found") con_hash = con_inst.con_hash s_con = con_hash[NM.SETTING_CONNECTION_SETTING_NAME] @@ -836,7 +838,7 @@ class NetworkManager(ExportedObj): device = VlanDevice(ifname) self.add_device(device) if not device: - raise UnknownDeviceException("No device found for the requested iface.") + raise BusErr.UnknownDeviceException("No device found for the requested iface.") # See if we need secrets. For the moment, we only support WPA if '802-11-wireless-security' in con_hash: @@ -844,12 +846,12 @@ class NetworkManager(ExportedObj): if (s_wsec['key-mgmt'] == 'wpa-psk' and 'psk' not in s_wsec): secrets = gl.agent_manager.get_secrets(con_hash, conpath, '802-11-wireless-security') if secrets is None: - raise NoSecretsException("No secret agent available") + raise BusErr.NoSecretsException("No secret agent available") if '802-11-wireless-security' not in secrets: - raise NoSecretsException("No secrets provided") + raise BusErr.NoSecretsException("No secrets provided") s_wsec = secrets['802-11-wireless-security'] if 'psk' not in s_wsec: - raise NoSecretsException("No secrets provided") + raise BusErr.NoSecretsException("No secrets provided") ac = ActiveConnection(device, con_inst, None) self.active_connection_add(ac) @@ -877,7 +879,7 @@ class NetworkManager(ExportedObj): @dbus.service.method(dbus_interface=IFACE_NM, in_signature='a{sa{sv}}oo', out_signature='oo') def AddAndActivateConnection(self, con_hash, devpath, specific_object): - device = self.find_device_first(path = devpath, require = UnknownDeviceException) + device = self.find_device_first(path = devpath, require = BusErr.UnknownDeviceException) conpath = gl.settings.AddConnection(con_hash) return (conpath, self.ActivateConnection(conpath, devpath, specific_object)) @@ -924,7 +926,7 @@ class NetworkManager(ExportedObj): @dbus.service.method(dbus_interface=IFACE_NM, in_signature='', out_signature='u') def CheckConnectivity(self): - raise PermissionDeniedException("You fail") + raise BusErr.PermissionDeniedException("You fail") @dbus.service.signal(IFACE_NM, signature='o') def DeviceAdded(self, devpath): @@ -956,7 +958,7 @@ class NetworkManager(ExportedObj): if r is None and require: if require is TestError: raise TestError('Device not found') - raise UnknownDeviceException('Device not found') + raise BusErr.UnknownDeviceException('Device not found') return r def add_device(self, device): @@ -1142,14 +1144,14 @@ class Connection(ExportedObj): if con_hash is None: con_hash = self.con_hash; if NM.SETTING_CONNECTION_SETTING_NAME not in con_hash: - raise MissingSettingException('connection: setting is required') + raise BusErr.MissingSettingException('connection: setting is required') s_con = con_hash[NM.SETTING_CONNECTION_SETTING_NAME] if NM.SETTING_CONNECTION_TYPE not in s_con: - raise MissingPropertyException('connection.type: property is required') + raise BusErr.MissingPropertyException('connection.type: property is required') if NM.SETTING_CONNECTION_UUID not in s_con: - raise MissingPropertyException('connection.uuid: property is required') + raise BusErr.MissingPropertyException('connection.uuid: property is required') if NM.SETTING_CONNECTION_ID not in s_con: - raise MissingPropertyException('connection.id: property is required') + raise BusErr.MissingPropertyException('connection.id: property is required') if not verify_strict: return; @@ -1158,7 +1160,7 @@ class Connection(ExportedObj): NM.SETTING_WIRELESS_SETTING_NAME, NM.SETTING_VLAN_SETTING_NAME, NM.SETTING_WIMAX_SETTING_NAME ]: - raise InvalidPropertyException('connection.type: unsupported connection type "%s"' % (t)) + raise BusErr.InvalidPropertyException('connection.type: unsupported connection type "%s"' % (t)) def update_connection(self, con_hash, verify_connection): self.verify(con_hash, verify_strict=verify_connection) @@ -1166,7 +1168,7 @@ class Connection(ExportedObj): old_uuid = self.get_uuid() new_uuid = self.get_uuid(con_hash) if old_uuid != new_uuid: - raise InvalidPropertyException('connection.uuid: cannot change the uuid from %s to %s' % (old_uuid, new_uuid)) + raise BusErr.InvalidPropertyException('connection.uuid: cannot change the uuid from %s to %s' % (old_uuid, new_uuid)) self.con_hash = con_hash; self.Updated() @@ -1174,7 +1176,7 @@ class Connection(ExportedObj): @dbus.service.method(dbus_interface=IFACE_CONNECTION, in_signature='', out_signature='a{sa{sv}}') def GetSettings(self): if not self.visible: - raise PermissionDeniedException() + raise BusErr.PermissionDeniedException() return self.con_hash @dbus.service.method(dbus_interface=IFACE_CONNECTION, in_signature='b', out_signature='') @@ -1259,7 +1261,7 @@ class Settings(ExportedObj): uuid = con_inst.get_uuid() if uuid in [c.get_uuid() for c in self.connections.values()]: - raise InvalidSettingException('cannot add duplicate connection with uuid %s' % (uuid)) + raise BusErr.InvalidSettingException('cannot add duplicate connection with uuid %s' % (uuid)) con_inst.export() self.connections[con_inst.path] = con_inst @@ -1274,7 +1276,7 @@ class Settings(ExportedObj): def update_connection(self, con_hash, path=None, verify_connection=True): if path not in self.connections: - raise UnknownConnectionException('Connection not found') + raise BusErr.UnknownConnectionException('Connection not found') self.connections[path].update_connection(con_hash, verify_connection) def delete_connection(self, con_inst): @@ -1287,7 +1289,7 @@ class Settings(ExportedObj): def SaveHostname(self, hostname): # Arbitrary requirement to test error handling if hostname.find('.') == -1: - raise InvalidHostnameException() + raise BusErr.InvalidHostnameException() self._dbus_property_set(IFACE_SETTINGS, PRP_SETTINGS_HOSTNAME, hostname) @dbus.service.signal(IFACE_SETTINGS, signature='o') @@ -1376,7 +1378,7 @@ class AgentManager(dbus.service.Object): break except dbus.DBusException as e: if e.get_dbus_name() == IFACE_AGENT + '.UserCanceled': - raise UserCanceledException('User canceled') + raise BusErr.UserCanceledException('User canceled') continue return secrets From f3dddcff2aa81428988480b289b148e09cd623e3 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Mon, 4 Jun 2018 20:33:35 +0200 Subject: [PATCH 06/10] clients/tests: verify connections in test-networkmanager-service.py using libnm The real NetworkManager service has a clear understanding how a valid connection looks like. This is what nm_connection_verify() returns. Let also our stub-service verify connections the same way. Note that this is cumbersome, because the stub service uses python's dbus module, while libnm only accepts creating NMConnection instances from GVariant. Thus, we need to a cumbersome conversion first. It would be better if test-networkmanager-service.py would also expose normalized connections on D-Bus. But that requires the inverse converion from GVariant to python dbus. --- .../test_004-003.expected | 5 +- .../test_004-004.expected | 5 +- clients/tests/test-client.py | 4 +- tools/test-networkmanager-service.py | 235 ++++++++++++++---- 4 files changed, 191 insertions(+), 58 deletions(-) diff --git a/clients/tests/test-client.check-on-disk/test_004-003.expected b/clients/tests/test-client.check-on-disk/test_004-003.expected index 464ec6a4ed..a611021262 100644 --- a/clients/tests/test-client.check-on-disk/test_004-003.expected +++ b/clients/tests/test-client.check-on-disk/test_004-003.expected @@ -1,12 +1,13 @@ location: clients/tests/test-client.py:812:test_004()/3 cmd: $NMCLI connection mod con-xx1 ipv4.gateway 172.16.0.1 lang: C -returncode: 0 +returncode: 1 stdout: 0 bytes >>> <<< -stderr: 0 bytes +stderr: 119 bytes >>> +Error: Failed to modify connection 'con-xx1': ipv4.gateway: gateway cannot be set if there are no addresses configured <<< diff --git a/clients/tests/test-client.check-on-disk/test_004-004.expected b/clients/tests/test-client.check-on-disk/test_004-004.expected index bbddaee993..7a11bfe879 100644 --- a/clients/tests/test-client.check-on-disk/test_004-004.expected +++ b/clients/tests/test-client.check-on-disk/test_004-004.expected @@ -1,12 +1,13 @@ location: clients/tests/test-client.py:813:test_004()/4 cmd: $NMCLI connection mod con-xx1 ipv6.gateway ::99 lang: C -returncode: 0 +returncode: 1 stdout: 0 bytes >>> <<< -stderr: 0 bytes +stderr: 119 bytes >>> +Error: Failed to modify connection 'con-xx1': ipv6.gateway: gateway cannot be set if there are no addresses configured <<< diff --git a/clients/tests/test-client.py b/clients/tests/test-client.py index 74e6d5a816..230d83102e 100755 --- a/clients/tests/test-client.py +++ b/clients/tests/test-client.py @@ -280,8 +280,8 @@ class NMStubServer: raise AttributeError(member) return self._MethodProxy(self, member[3:]) - def addConnection(self, connection, verify_connection = True): - return self.op_AddConnection(connection, verify_connection) + def addConnection(self, connection, do_verify_strict = True): + return self.op_AddConnection(connection, do_verify_strict) def findConnectionUuid(self, con_id): try: diff --git a/tools/test-networkmanager-service.py b/tools/test-networkmanager-service.py index 3152aa5a71..19e0fdcc12 100755 --- a/tools/test-networkmanager-service.py +++ b/tools/test-networkmanager-service.py @@ -22,6 +22,7 @@ import random import collections import uuid import hashlib +import collections ############################################################################### @@ -79,6 +80,57 @@ class Util: r = tuple(Util.pseudorandom_stream(seed, 6)) return '%02X:%02X:%02X:%02X:%02X:%02X' % r + @staticmethod + def eprint(*args, **kwargs): + print(*args, file=sys.stderr, **kwargs) + + @staticmethod + def variant_from_dbus(val): + if isinstance(val, (dbus.String, str)): + return GLib.Variant('s', str(val)) + if isinstance(val, dbus.UInt32): + return GLib.Variant('u', int(val)) + if isinstance(val, dbus.Boolean): + return GLib.Variant('b', bool(val)) + if isinstance(val, dbus.Byte): + return GLib.Variant('y', int(val)) + if isinstance(val, dbus.Array): + try: + if val.signature == 's': + return GLib.Variant('as', [Util.variant_from_dbus(x) for x in val]) + if val.signature == 'b': + return GLib.Variant('ab', [Util.variant_from_dbus(x) for x in val]) + if val.signature == 'y': + return GLib.Variant('ay', [int(x) for x in val]) + if val.signature == 'u': + return GLib.Variant('au', [Util.variant_from_dbus(x) for x in val]) + if val.signature == 'ay': + return GLib.Variant('aay', [Util.variant_from_dbus(x) for x in val]) + if val.signature == 'au': + return GLib.Variant('aau', [Util.variant_from_dbus(x) for x in val]) + if val.signature == 'a{sv}': + return GLib.Variant('aa{sv}', [(str(k), Util.variant_from_dbus(v)) for k, v in val]) + if val.signature == '(ayuay)': + return GLib.Variant('a(ayuay)', [Util.variant_from_dbus(x) for x in val]) + if val.signature == '(ayuayu)': + return GLib.Variant('a(ayuayu)', [Util.variant_from_dbus(x) for x in val]) + except Exception as e: + raise Exception("Cannot convert array element to type '%s': %s" % (val.signature, e.message)) + if isinstance(val, dbus.Dictionary): + if val.signature == 'ss': + return GLib.Variant('a{ss}', collections.OrderedDict([(str(k), str(v)) for k, v in val.items()])) + if val.signature == 'sv': + return GLib.Variant('a{sv}', collections.OrderedDict([(str(k), Util.variant_from_dbus(v)) for k, v in val.items()])) + if val.signature == 'sa{sv}': + c = collections.OrderedDict([ + (str(key1), + collections.OrderedDict([(str(key2), Util.variant_from_dbus(arr2)) for key2, arr2 in arr1.items()]) + ) for key1, arr1 in val.items() + ]) + return GLib.Variant('a{sa{sv}}', c) + + raise Exception("Unsupported type for value '%s'" % (repr(val))) + ############################################################################### IFACE_DBUS = 'org.freedesktop.DBus' @@ -148,6 +200,118 @@ class BusErr: class UserCanceledException(dbus.DBusException): _dbus_error_name = IFACE_AGENT_MANAGER + '.UserCanceled' + @staticmethod + def from_nmerror(e): + try: + domain, code = (e.domain, e.code) + except: + return None + if domain == GLib.quark_to_string(NM.ConnectionError.quark()): + if code == NM.ConnectionError.MISSINGSETTING: + return BusErr.MissingSettingException(e.message) + if code == NM.ConnectionError.INVALIDPROPERTY: + return BusErr.InvalidPropertyException(e.message) + return None + + @staticmethod + def raise_nmerror(e): + e2 = BusErr.from_nmerror(e) + if e2 is not None: + raise e2 + raise e + +############################################################################### + +class NmUtil: + + @staticmethod + def con_hash_to_connection(con_hash, do_verify = False, do_normalize = False): + + x_con = [] + for v_setting_name, v_setting in list(con_hash.items()): + if isinstance(v_setting_name, (dbus.String, str)): + v_setting_name = str(v_setting_name) + else: + raise Exception("Expected string dict, but got '%s' key" % (v_setting_name)) + x_setting = [] + for v_property_name, v_value in list(v_setting.items()): + if isinstance(v_property_name, (dbus.String, str)): + v_property_name = str(v_property_name) + else: + raise Exception("Expected string dict, but got '%s' subkey under %s (%s)" % (v_property_name, v_setting_name, repr(con_hash))) + try: + v = Util.variant_from_dbus(v_value) + except Exception as e: + raise Exception("Unsupported value %s.%s = %s (%s)" % (v_setting_name, v_property_name, v_value, str(e))) + x_setting.append((v_property_name, v)) + + x_con.append((v_setting_name, collections.OrderedDict(x_setting))) + + x_con = GLib.Variant('a{sa{sv}}', collections.OrderedDict(x_con)) + + assert GLib.Variant.equal(x_con, Util.variant_from_dbus(con_hash)) + + try: + con = NM.SimpleConnection.new_from_dbus(x_con) + except: + if do_verify: + raise + return None + + if do_normalize: + try: + con.normalize() + except: + if do_verify: + raise + + if do_verify: + con.verify() + + return con + + @staticmethod + def con_hash_verify(con_hash, do_verify_strict = True): + if NM.SETTING_CONNECTION_SETTING_NAME not in con_hash: + raise BusErr.MissingSettingException('connection: setting is required') + s_con = con_hash[NM.SETTING_CONNECTION_SETTING_NAME] + if NM.SETTING_CONNECTION_TYPE not in s_con: + raise BusErr.MissingPropertyException('connection.type: property is required') + if NM.SETTING_CONNECTION_UUID not in s_con: + raise BusErr.MissingPropertyException('connection.uuid: property is required') + if NM.SETTING_CONNECTION_ID not in s_con: + raise BusErr.MissingPropertyException('connection.id: property is required') + + if not do_verify_strict: + return; + t = s_con[NM.SETTING_CONNECTION_TYPE] + if t not in [ NM.SETTING_WIRED_SETTING_NAME, + NM.SETTING_WIRELESS_SETTING_NAME, + NM.SETTING_VLAN_SETTING_NAME, + NM.SETTING_WIMAX_SETTING_NAME ]: + raise BusErr.InvalidPropertyException('connection.type: unsupported connection type "%s"' % (t)) + + try: + con_nm = NmUtil.con_hash_to_connection(con_hash, do_verify = True, do_normalize = True) + except Exception as e: + BusErr.raise_nmerror(e) + + @staticmethod + def con_hash_get_id(con_hash): + if NM.SETTING_CONNECTION_SETTING_NAME in con_hash: + s_con = con_hash[NM.SETTING_CONNECTION_SETTING_NAME] + if NM.SETTING_CONNECTION_ID in s_con: + return s_con[NM.SETTING_CONNECTION_ID] + return None + + @staticmethod + def con_hash_get_uuid(con_hash): + if NM.SETTING_CONNECTION_SETTING_NAME in con_hash: + s_con = con_hash[NM.SETTING_CONNECTION_SETTING_NAME] + if NM.SETTING_CONNECTION_UUID in s_con: + return s_con[NM.SETTING_CONNECTION_UUID] + return None + ############################################################################### class ExportedObj(dbus.service.Object): @@ -1071,12 +1235,12 @@ class NetworkManager(ExportedObj): gl.settings.auto_remove_next_connection() @dbus.service.method(dbus_interface=IFACE_TEST, in_signature='a{sa{sv}}b', out_signature='o') - def AddConnection(self, con_hash, verify_connection): - return gl.settings.add_connection(con_hash, verify_connection) + def AddConnection(self, con_hash, do_verify_strict): + return gl.settings.add_connection(con_hash, do_verify_strict) @dbus.service.method(dbus_interface=IFACE_TEST, in_signature='sa{sa{sv}}b', out_signature='') - def UpdateConnection(self, path, con_hash, verify_connection): - return gl.settings.update_connection(con_hash, path, verify_connection) + def UpdateConnection(self, path, con_hash, do_verify_strict): + return gl.settings.update_connection(con_hash, path, do_verify_strict) @dbus.service.method(dbus_interface=IFACE_TEST, in_signature='ba{ss}', out_signature='') def ConnectionSetVisible(self, vis, selector_args): @@ -1095,7 +1259,7 @@ class NetworkManager(ExportedObj): PRP_CONNECTION_UNSAVED = 'Unsaved' class Connection(ExportedObj): - def __init__(self, path_counter, con_hash, verify_connection=True): + def __init__(self, path_counter, con_hash, do_verify_strict=True): path = "/org/freedesktop/NetworkManager/Settings/Connection/%s" % (path_counter) @@ -1105,12 +1269,12 @@ class Connection(ExportedObj): if s_con is None: s_con = {} con_hash[NM.SETTING_CONNECTION_SETTING_NAME] = s_con - if self.get_id(con_hash) is None: + if NmUtil.con_hash_get_id(con_hash) is None: s_con[NM.SETTING_CONNECTION_ID] = 'connection-%s' % (path_counter) - if self.get_uuid(con_hash) is None: + if NmUtil.con_hash_get_uuid(con_hash) is None: s_con[NM.SETTING_CONNECTION_UUID] = str(uuid.uuid3(uuid.NAMESPACE_URL, path)) - self.verify(con_hash, verify_strict=verify_connection) + NmUtil.con_hash_verify(con_hash, do_verify_strict=do_verify_strict) self.path = path self.con_hash = con_hash @@ -1122,51 +1286,18 @@ class Connection(ExportedObj): self.dbus_interface_add(IFACE_CONNECTION, props) - def get_id(self, con_hash=None): - if con_hash is None: - con_hash = self.con_hash - if NM.SETTING_CONNECTION_SETTING_NAME in con_hash: - s_con = con_hash[NM.SETTING_CONNECTION_SETTING_NAME] - if NM.SETTING_CONNECTION_ID in s_con: - return s_con[NM.SETTING_CONNECTION_ID] - return None + def get_id(self): + return NmUtil.con_hash_get_id(self.con_hash) - def get_uuid(self, con_hash=None): - if con_hash is None: - con_hash = self.con_hash - if NM.SETTING_CONNECTION_SETTING_NAME in con_hash: - s_con = con_hash[NM.SETTING_CONNECTION_SETTING_NAME] - if NM.SETTING_CONNECTION_UUID in s_con: - return s_con[NM.SETTING_CONNECTION_UUID] - return None + def get_uuid(self): + return NmUtil.con_hash_get_uuid(self.con_hash) - def verify(self, con_hash=None, verify_strict=True): - if con_hash is None: - con_hash = self.con_hash; - if NM.SETTING_CONNECTION_SETTING_NAME not in con_hash: - raise BusErr.MissingSettingException('connection: setting is required') - s_con = con_hash[NM.SETTING_CONNECTION_SETTING_NAME] - if NM.SETTING_CONNECTION_TYPE not in s_con: - raise BusErr.MissingPropertyException('connection.type: property is required') - if NM.SETTING_CONNECTION_UUID not in s_con: - raise BusErr.MissingPropertyException('connection.uuid: property is required') - if NM.SETTING_CONNECTION_ID not in s_con: - raise BusErr.MissingPropertyException('connection.id: property is required') + def update_connection(self, con_hash, do_verify_strict): - if not verify_strict: - return; - t = s_con[NM.SETTING_CONNECTION_TYPE] - if t not in [ NM.SETTING_WIRED_SETTING_NAME, - NM.SETTING_WIRELESS_SETTING_NAME, - NM.SETTING_VLAN_SETTING_NAME, - NM.SETTING_WIMAX_SETTING_NAME ]: - raise BusErr.InvalidPropertyException('connection.type: unsupported connection type "%s"' % (t)) - - def update_connection(self, con_hash, verify_connection): - self.verify(con_hash, verify_strict=verify_connection) + NmUtil.con_hash_verify(con_hash, do_verify_strict = do_verify_strict) old_uuid = self.get_uuid() - new_uuid = self.get_uuid(con_hash) + new_uuid = NmUtil.con_hash_get_uuid(con_hash) if old_uuid != new_uuid: raise BusErr.InvalidPropertyException('connection.uuid: cannot change the uuid from %s to %s' % (old_uuid, new_uuid)) @@ -1255,9 +1386,9 @@ class Settings(ExportedObj): def AddConnection(self, con_hash): return self.add_connection(con_hash) - def add_connection(self, con_hash, verify_connection=True): + def add_connection(self, con_hash, do_verify_strict=True): self.c_counter += 1 - con_inst = Connection(self.c_counter, con_hash, verify_connection) + con_inst = Connection(self.c_counter, con_hash, do_verify_strict) uuid = con_inst.get_uuid() if uuid in [c.get_uuid() for c in self.connections.values()]: @@ -1274,10 +1405,10 @@ class Settings(ExportedObj): return con_inst.path - def update_connection(self, con_hash, path=None, verify_connection=True): + def update_connection(self, con_hash, path=None, do_verify_strict=True): if path not in self.connections: raise BusErr.UnknownConnectionException('Connection not found') - self.connections[path].update_connection(con_hash, verify_connection) + self.connections[path].update_connection(con_hash, do_verify_strict) def delete_connection(self, con_inst): del self.connections[con_inst.path] From 360f95239981a89ba324b706ac98ae0dbfe60404 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Tue, 5 Jun 2018 11:26:03 +0200 Subject: [PATCH 07/10] clients/tests: test `nmcli con mod` command with different locale Just to give it some variety. Also, note how the message from the server cannot be translated. Which is the case with real NetworkManager as well, and is a major usability issue. --- .../tests/test-client.check-on-disk/test_004-003.expected | 6 +++--- clients/tests/test-client.py | 2 +- tools/test-networkmanager-service.py | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/clients/tests/test-client.check-on-disk/test_004-003.expected b/clients/tests/test-client.check-on-disk/test_004-003.expected index a611021262..12344984b7 100644 --- a/clients/tests/test-client.check-on-disk/test_004-003.expected +++ b/clients/tests/test-client.check-on-disk/test_004-003.expected @@ -1,13 +1,13 @@ location: clients/tests/test-client.py:812:test_004()/3 cmd: $NMCLI connection mod con-xx1 ipv4.gateway 172.16.0.1 -lang: C +lang: pl_PL.UTF-8 returncode: 1 stdout: 0 bytes >>> <<< -stderr: 119 bytes +stderr: 143 bytes >>> -Error: Failed to modify connection 'con-xx1': ipv4.gateway: gateway cannot be set if there are no addresses configured +Błąd: zmodyfikowanie połączenia „con-xx1” się nie powiodło: ipv4.gateway: gateway cannot be set if there are no addresses configured <<< diff --git a/clients/tests/test-client.py b/clients/tests/test-client.py index 230d83102e..7f0742a391 100755 --- a/clients/tests/test-client.py +++ b/clients/tests/test-client.py @@ -809,7 +809,7 @@ class TestNmcli(NmTestBase): replace_stdout = replace_stdout) self.call_nmcli(['connection', 'mod', 'con-xx1', 'ip.gateway', '']) - self.call_nmcli(['connection', 'mod', 'con-xx1', 'ipv4.gateway', '172.16.0.1']) + self.call_nmcli(['connection', 'mod', 'con-xx1', 'ipv4.gateway', '172.16.0.1'], lang = 'pl') self.call_nmcli(['connection', 'mod', 'con-xx1', 'ipv6.gateway', '::99']) self.call_nmcli(['connection', 'mod', 'con-xx1', '802.abc', '']) self.call_nmcli(['connection', 'mod', 'con-xx1', '802-11-wireless.band', 'a']) diff --git a/tools/test-networkmanager-service.py b/tools/test-networkmanager-service.py index 19e0fdcc12..2e9dcdb296 100755 --- a/tools/test-networkmanager-service.py +++ b/tools/test-networkmanager-service.py @@ -109,7 +109,7 @@ class Util: if val.signature == 'au': return GLib.Variant('aau', [Util.variant_from_dbus(x) for x in val]) if val.signature == 'a{sv}': - return GLib.Variant('aa{sv}', [(str(k), Util.variant_from_dbus(v)) for k, v in val]) + return GLib.Variant('aa{sv}', [collections.OrderedDict([(str(k), Util.variant_from_dbus(v)) for k, v in addr.items()]) for addr in val]) if val.signature == '(ayuay)': return GLib.Variant('a(ayuay)', [Util.variant_from_dbus(x) for x in val]) if val.signature == '(ayuayu)': From 7c55c4da23858d336f97bf4d327a24a9aaa804cc Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Tue, 5 Jun 2018 15:02:49 +0200 Subject: [PATCH 08/10] clients/tests: test adding IPv4/IPv6 addresses and routes --- .../test-client.check-on-disk/Makefile.am | 3 + .../test_004-007.expected | 12 +++ .../test_004-008.expected | 92 +++++++++++++++++++ .../test_004-009.expected | 92 +++++++++++++++++++ clients/tests/test-client.py | 4 + 5 files changed, 203 insertions(+) create mode 100644 clients/tests/test-client.check-on-disk/test_004-007.expected create mode 100644 clients/tests/test-client.check-on-disk/test_004-008.expected create mode 100644 clients/tests/test-client.check-on-disk/test_004-009.expected diff --git a/clients/tests/test-client.check-on-disk/Makefile.am b/clients/tests/test-client.check-on-disk/Makefile.am index e917a3aaa5..8bbfbe0b6c 100644 --- a/clients/tests/test-client.check-on-disk/Makefile.am +++ b/clients/tests/test-client.check-on-disk/Makefile.am @@ -149,4 +149,7 @@ clients_tests_expected_files = \ clients/tests/test-client.check-on-disk/test_004-004.expected \ clients/tests/test-client.check-on-disk/test_004-005.expected \ clients/tests/test-client.check-on-disk/test_004-006.expected \ + clients/tests/test-client.check-on-disk/test_004-007.expected \ + clients/tests/test-client.check-on-disk/test_004-008.expected \ + clients/tests/test-client.check-on-disk/test_004-009.expected \ $(NULL) diff --git a/clients/tests/test-client.check-on-disk/test_004-007.expected b/clients/tests/test-client.check-on-disk/test_004-007.expected new file mode 100644 index 0000000000..23ad8846bb --- /dev/null +++ b/clients/tests/test-client.check-on-disk/test_004-007.expected @@ -0,0 +1,12 @@ +location: clients/tests/test-client.py:816:test_004()/7 +cmd: $NMCLI connection mod con-xx1 ipv4.addresses 192.168.77.5/24 ipv4.routes '2.3.4.5/32 192.168.77.1' ipv6.addresses 1:2:3:4::6/64 ipv6.routes 1:2:3:4:5:6::5/128 +lang: C +returncode: 0 +stdout: 0 bytes +>>> + +<<< +stderr: 0 bytes +>>> + +<<< diff --git a/clients/tests/test-client.check-on-disk/test_004-008.expected b/clients/tests/test-client.check-on-disk/test_004-008.expected new file mode 100644 index 0000000000..3225a66fe5 --- /dev/null +++ b/clients/tests/test-client.check-on-disk/test_004-008.expected @@ -0,0 +1,92 @@ +location: clients/tests/test-client.py:818:test_004()/8 +cmd: $NMCLI con s con-xx1 +lang: C +returncode: 0 +stdout: 3713 bytes +>>> +connection.id: con-xx1 +connection.uuid: UUID-con-xx1-REPLACED-REPLACED-REPLA +connection.stable-id: -- +connection.type: 802-11-wireless +connection.interface-name: -- +connection.autoconnect: yes +connection.autoconnect-priority: 0 +connection.autoconnect-retries: -1 (default) +connection.auth-retries: -1 +connection.timestamp: 0 +connection.read-only: no +connection.permissions: -- +connection.zone: -- +connection.master: -- +connection.slave-type: -- +connection.autoconnect-slaves: -1 (default) +connection.secondaries: -- +connection.gateway-ping-timeout: 0 +connection.metered: unknown +connection.lldp: default +connection.mdns: -1 (default) +802-11-wireless.ssid: foobar +802-11-wireless.mode: infrastructure +802-11-wireless.band: a +802-11-wireless.channel: 0 +802-11-wireless.bssid: -- +802-11-wireless.rate: 0 +802-11-wireless.tx-power: 0 +802-11-wireless.mac-address: -- +802-11-wireless.cloned-mac-address: -- +802-11-wireless.generate-mac-address-mask:-- +802-11-wireless.mac-address-blacklist: -- +802-11-wireless.mac-address-randomization:default +802-11-wireless.mtu: auto +802-11-wireless.seen-bssids: -- +802-11-wireless.hidden: no +802-11-wireless.powersave: 0 (default) +ipv4.method: auto +ipv4.dns: -- +ipv4.dns-search: -- +ipv4.dns-options: "" +ipv4.dns-priority: 0 +ipv4.addresses: 192.168.77.5/24 +ipv4.gateway: -- +ipv4.routes: { ip = 2.3.4.5/32, nh = 192.168.77.1 } +ipv4.route-metric: -1 +ipv4.route-table: 0 (unspec) +ipv4.ignore-auto-routes: no +ipv4.ignore-auto-dns: no +ipv4.dhcp-client-id: -- +ipv4.dhcp-timeout: 0 (default) +ipv4.dhcp-send-hostname: yes +ipv4.dhcp-hostname: -- +ipv4.dhcp-fqdn: -- +ipv4.never-default: no +ipv4.may-fail: yes +ipv4.dad-timeout: -1 (default) +ipv6.method: auto +ipv6.dns: -- +ipv6.dns-search: -- +ipv6.dns-options: "" +ipv6.dns-priority: 0 +ipv6.addresses: 1:2:3:4::6/64 +ipv6.gateway: -- +ipv6.routes: { ip = 1:2:3:4:5:6:0:5/128 } +ipv6.route-metric: -1 +ipv6.route-table: 0 (unspec) +ipv6.ignore-auto-routes: no +ipv6.ignore-auto-dns: no +ipv6.never-default: no +ipv6.may-fail: yes +ipv6.ip6-privacy: -1 (unknown) +ipv6.addr-gen-mode: stable-privacy +ipv6.dhcp-send-hostname: yes +ipv6.dhcp-hostname: -- +ipv6.token: -- +proxy.method: none +proxy.browser-only: no +proxy.pac-url: -- +proxy.pac-script: -- + +<<< +stderr: 0 bytes +>>> + +<<< diff --git a/clients/tests/test-client.check-on-disk/test_004-009.expected b/clients/tests/test-client.check-on-disk/test_004-009.expected new file mode 100644 index 0000000000..81d24fdd0e --- /dev/null +++ b/clients/tests/test-client.check-on-disk/test_004-009.expected @@ -0,0 +1,92 @@ +location: clients/tests/test-client.py:818:test_004()/9 +cmd: $NMCLI con s con-xx1 +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 3731 bytes +>>> +connection.id: con-xx1 +connection.uuid: UUID-con-xx1-REPLACED-REPLACED-REPLA +connection.stable-id: -- +connection.type: 802-11-wireless +connection.interface-name: -- +connection.autoconnect: tak +connection.autoconnect-priority: 0 +connection.autoconnect-retries: -1 (default) +connection.auth-retries: -1 +connection.timestamp: 0 +connection.read-only: nie +connection.permissions: -- +connection.zone: -- +connection.master: -- +connection.slave-type: -- +connection.autoconnect-slaves: -1 (default) +connection.secondaries: -- +connection.gateway-ping-timeout: 0 +connection.metered: nieznane +connection.lldp: default +connection.mdns: -1 (default) +802-11-wireless.ssid: foobar +802-11-wireless.mode: infrastructure +802-11-wireless.band: a +802-11-wireless.channel: 0 +802-11-wireless.bssid: -- +802-11-wireless.rate: 0 +802-11-wireless.tx-power: 0 +802-11-wireless.mac-address: -- +802-11-wireless.cloned-mac-address: -- +802-11-wireless.generate-mac-address-mask:-- +802-11-wireless.mac-address-blacklist: -- +802-11-wireless.mac-address-randomization:default +802-11-wireless.mtu: automatyczne +802-11-wireless.seen-bssids: -- +802-11-wireless.hidden: nie +802-11-wireless.powersave: 0 (default) +ipv4.method: auto +ipv4.dns: -- +ipv4.dns-search: -- +ipv4.dns-options: "" +ipv4.dns-priority: 0 +ipv4.addresses: 192.168.77.5/24 +ipv4.gateway: -- +ipv4.routes: { ip = 2.3.4.5/32, nh = 192.168.77.1 } +ipv4.route-metric: -1 +ipv4.route-table: 0 (unspec) +ipv4.ignore-auto-routes: nie +ipv4.ignore-auto-dns: nie +ipv4.dhcp-client-id: -- +ipv4.dhcp-timeout: 0 (default) +ipv4.dhcp-send-hostname: tak +ipv4.dhcp-hostname: -- +ipv4.dhcp-fqdn: -- +ipv4.never-default: nie +ipv4.may-fail: tak +ipv4.dad-timeout: -1 (default) +ipv6.method: auto +ipv6.dns: -- +ipv6.dns-search: -- +ipv6.dns-options: "" +ipv6.dns-priority: 0 +ipv6.addresses: 1:2:3:4::6/64 +ipv6.gateway: -- +ipv6.routes: { ip = 1:2:3:4:5:6:0:5/128 } +ipv6.route-metric: -1 +ipv6.route-table: 0 (unspec) +ipv6.ignore-auto-routes: nie +ipv6.ignore-auto-dns: nie +ipv6.never-default: nie +ipv6.may-fail: tak +ipv6.ip6-privacy: -1 (unknown) +ipv6.addr-gen-mode: stable-privacy +ipv6.dhcp-send-hostname: tak +ipv6.dhcp-hostname: -- +ipv6.token: -- +proxy.method: none +proxy.browser-only: nie +proxy.pac-url: -- +proxy.pac-script: -- + +<<< +stderr: 0 bytes +>>> + +<<< diff --git a/clients/tests/test-client.py b/clients/tests/test-client.py index 7f0742a391..3830147766 100755 --- a/clients/tests/test-client.py +++ b/clients/tests/test-client.py @@ -813,6 +813,10 @@ class TestNmcli(NmTestBase): self.call_nmcli(['connection', 'mod', 'con-xx1', 'ipv6.gateway', '::99']) self.call_nmcli(['connection', 'mod', 'con-xx1', '802.abc', '']) self.call_nmcli(['connection', 'mod', 'con-xx1', '802-11-wireless.band', 'a']) + self.call_nmcli(['connection', 'mod', 'con-xx1', 'ipv4.addresses', '192.168.77.5/24', 'ipv4.routes', '2.3.4.5/32 192.168.77.1', 'ipv6.addresses', '1:2:3:4::6/64', 'ipv6.routes', '1:2:3:4:5:6::5/128']) + self.call_nmcli_l(['con', 's', 'con-xx1'], + replace_stdout = replace_stdout) + ############################################################################### From eceaba025f42d4d97dc69c112808fd1d0ef7269f Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 6 Jun 2018 09:55:23 +0200 Subject: [PATCH 09/10] clients/tests: add Util.debug_dbus_interface() helper function --- .../tests/test-client.check-on-disk/test_001-001.expected | 2 +- .../tests/test-client.check-on-disk/test_001-002.expected | 2 +- .../tests/test-client.check-on-disk/test_001-003.expected | 2 +- .../tests/test-client.check-on-disk/test_001-004.expected | 2 +- .../tests/test-client.check-on-disk/test_001-005.expected | 2 +- .../tests/test-client.check-on-disk/test_001-006.expected | 2 +- .../tests/test-client.check-on-disk/test_001-007.expected | 2 +- .../tests/test-client.check-on-disk/test_001-008.expected | 2 +- .../tests/test-client.check-on-disk/test_001-009.expected | 2 +- .../tests/test-client.check-on-disk/test_001-010.expected | 2 +- .../tests/test-client.check-on-disk/test_001-011.expected | 2 +- .../tests/test-client.check-on-disk/test_001-012.expected | 2 +- .../tests/test-client.check-on-disk/test_001-013.expected | 2 +- .../tests/test-client.check-on-disk/test_001-014.expected | 2 +- .../tests/test-client.check-on-disk/test_001-015.expected | 2 +- .../tests/test-client.check-on-disk/test_001-016.expected | 2 +- .../tests/test-client.check-on-disk/test_001-017.expected | 2 +- .../tests/test-client.check-on-disk/test_001-018.expected | 2 +- .../tests/test-client.check-on-disk/test_001-019.expected | 2 +- .../tests/test-client.check-on-disk/test_001-020.expected | 2 +- .../tests/test-client.check-on-disk/test_001-021.expected | 2 +- .../tests/test-client.check-on-disk/test_001-022.expected | 2 +- .../tests/test-client.check-on-disk/test_001-023.expected | 2 +- .../tests/test-client.check-on-disk/test_001-024.expected | 2 +- .../tests/test-client.check-on-disk/test_001-025.expected | 2 +- .../tests/test-client.check-on-disk/test_001-026.expected | 2 +- .../tests/test-client.check-on-disk/test_002-001.expected | 2 +- .../tests/test-client.check-on-disk/test_002-002.expected | 2 +- .../tests/test-client.check-on-disk/test_002-003.expected | 2 +- .../tests/test-client.check-on-disk/test_002-004.expected | 2 +- .../tests/test-client.check-on-disk/test_002-005.expected | 2 +- .../tests/test-client.check-on-disk/test_002-006.expected | 2 +- .../tests/test-client.check-on-disk/test_002-007.expected | 2 +- .../tests/test-client.check-on-disk/test_002-008.expected | 2 +- .../tests/test-client.check-on-disk/test_002-009.expected | 2 +- .../tests/test-client.check-on-disk/test_002-010.expected | 2 +- .../tests/test-client.check-on-disk/test_002-011.expected | 2 +- .../tests/test-client.check-on-disk/test_002-012.expected | 2 +- .../tests/test-client.check-on-disk/test_002-013.expected | 2 +- .../tests/test-client.check-on-disk/test_002-014.expected | 2 +- .../tests/test-client.check-on-disk/test_002-015.expected | 2 +- .../tests/test-client.check-on-disk/test_002-016.expected | 2 +- .../tests/test-client.check-on-disk/test_002-017.expected | 2 +- .../tests/test-client.check-on-disk/test_002-018.expected | 2 +- .../tests/test-client.check-on-disk/test_002-019.expected | 2 +- .../tests/test-client.check-on-disk/test_002-020.expected | 2 +- .../tests/test-client.check-on-disk/test_002-021.expected | 2 +- .../tests/test-client.check-on-disk/test_002-022.expected | 2 +- .../tests/test-client.check-on-disk/test_002-023.expected | 2 +- .../tests/test-client.check-on-disk/test_002-024.expected | 2 +- .../tests/test-client.check-on-disk/test_003-001.expected | 2 +- .../tests/test-client.check-on-disk/test_003-002.expected | 2 +- .../tests/test-client.check-on-disk/test_003-003.expected | 2 +- .../tests/test-client.check-on-disk/test_003-004.expected | 2 +- .../tests/test-client.check-on-disk/test_003-005.expected | 2 +- .../tests/test-client.check-on-disk/test_003-006.expected | 2 +- .../tests/test-client.check-on-disk/test_003-007.expected | 2 +- .../tests/test-client.check-on-disk/test_003-008.expected | 2 +- .../tests/test-client.check-on-disk/test_003-009.expected | 2 +- .../tests/test-client.check-on-disk/test_003-010.expected | 2 +- .../tests/test-client.check-on-disk/test_003-011.expected | 2 +- .../tests/test-client.check-on-disk/test_003-012.expected | 2 +- .../tests/test-client.check-on-disk/test_003-013.expected | 2 +- .../tests/test-client.check-on-disk/test_003-014.expected | 2 +- .../tests/test-client.check-on-disk/test_003-015.expected | 2 +- .../tests/test-client.check-on-disk/test_003-016.expected | 2 +- .../tests/test-client.check-on-disk/test_003-017.expected | 2 +- .../tests/test-client.check-on-disk/test_003-018.expected | 2 +- .../tests/test-client.check-on-disk/test_003-019.expected | 2 +- .../tests/test-client.check-on-disk/test_003-020.expected | 2 +- .../tests/test-client.check-on-disk/test_003-021.expected | 2 +- .../tests/test-client.check-on-disk/test_003-022.expected | 2 +- .../tests/test-client.check-on-disk/test_003-023.expected | 2 +- .../tests/test-client.check-on-disk/test_003-024.expected | 2 +- .../tests/test-client.check-on-disk/test_003-025.expected | 2 +- .../tests/test-client.check-on-disk/test_003-026.expected | 2 +- .../tests/test-client.check-on-disk/test_003-027.expected | 2 +- .../tests/test-client.check-on-disk/test_003-028.expected | 2 +- .../tests/test-client.check-on-disk/test_003-029.expected | 2 +- .../tests/test-client.check-on-disk/test_003-030.expected | 2 +- .../tests/test-client.check-on-disk/test_003-031.expected | 2 +- .../tests/test-client.check-on-disk/test_003-032.expected | 2 +- .../tests/test-client.check-on-disk/test_003-033.expected | 2 +- .../tests/test-client.check-on-disk/test_003-034.expected | 2 +- .../tests/test-client.check-on-disk/test_003-035.expected | 2 +- .../tests/test-client.check-on-disk/test_003-036.expected | 2 +- .../tests/test-client.check-on-disk/test_003-037.expected | 2 +- .../tests/test-client.check-on-disk/test_003-038.expected | 2 +- .../tests/test-client.check-on-disk/test_003-039.expected | 2 +- .../tests/test-client.check-on-disk/test_003-040.expected | 2 +- .../tests/test-client.check-on-disk/test_003-041.expected | 2 +- .../tests/test-client.check-on-disk/test_003-042.expected | 2 +- .../tests/test-client.check-on-disk/test_003-043.expected | 2 +- .../tests/test-client.check-on-disk/test_003-044.expected | 2 +- .../tests/test-client.check-on-disk/test_003-045.expected | 2 +- .../tests/test-client.check-on-disk/test_003-046.expected | 2 +- .../tests/test-client.check-on-disk/test_003-047.expected | 2 +- .../tests/test-client.check-on-disk/test_003-048.expected | 2 +- .../tests/test-client.check-on-disk/test_003-049.expected | 2 +- .../tests/test-client.check-on-disk/test_003-050.expected | 2 +- .../tests/test-client.check-on-disk/test_003-051.expected | 2 +- .../tests/test-client.check-on-disk/test_003-052.expected | 2 +- .../tests/test-client.check-on-disk/test_003-053.expected | 2 +- .../tests/test-client.check-on-disk/test_003-054.expected | 2 +- .../tests/test-client.check-on-disk/test_003-055.expected | 2 +- .../tests/test-client.check-on-disk/test_003-056.expected | 2 +- .../tests/test-client.check-on-disk/test_003-057.expected | 2 +- .../tests/test-client.check-on-disk/test_003-058.expected | 2 +- .../tests/test-client.check-on-disk/test_003-059.expected | 2 +- .../tests/test-client.check-on-disk/test_003-060.expected | 2 +- .../tests/test-client.check-on-disk/test_003-061.expected | 2 +- .../tests/test-client.check-on-disk/test_003-062.expected | 2 +- .../tests/test-client.check-on-disk/test_003-063.expected | 2 +- .../tests/test-client.check-on-disk/test_003-064.expected | 2 +- .../tests/test-client.check-on-disk/test_003-065.expected | 2 +- .../tests/test-client.check-on-disk/test_003-066.expected | 2 +- .../tests/test-client.check-on-disk/test_003-067.expected | 2 +- .../tests/test-client.check-on-disk/test_003-068.expected | 2 +- .../tests/test-client.check-on-disk/test_003-069.expected | 2 +- .../tests/test-client.check-on-disk/test_003-070.expected | 2 +- .../tests/test-client.check-on-disk/test_003-071.expected | 2 +- .../tests/test-client.check-on-disk/test_003-072.expected | 2 +- .../tests/test-client.check-on-disk/test_003-073.expected | 2 +- .../tests/test-client.check-on-disk/test_003-074.expected | 2 +- .../tests/test-client.check-on-disk/test_003-075.expected | 2 +- .../tests/test-client.check-on-disk/test_003-076.expected | 2 +- .../tests/test-client.check-on-disk/test_003-077.expected | 2 +- .../tests/test-client.check-on-disk/test_003-078.expected | 2 +- .../tests/test-client.check-on-disk/test_003-079.expected | 2 +- .../tests/test-client.check-on-disk/test_003-080.expected | 2 +- .../tests/test-client.check-on-disk/test_003-081.expected | 2 +- .../tests/test-client.check-on-disk/test_003-082.expected | 2 +- .../tests/test-client.check-on-disk/test_003-083.expected | 2 +- .../tests/test-client.check-on-disk/test_003-084.expected | 2 +- .../tests/test-client.check-on-disk/test_003-085.expected | 2 +- .../tests/test-client.check-on-disk/test_003-086.expected | 2 +- .../tests/test-client.check-on-disk/test_003-087.expected | 2 +- .../tests/test-client.check-on-disk/test_003-088.expected | 2 +- .../tests/test-client.check-on-disk/test_003-089.expected | 2 +- .../tests/test-client.check-on-disk/test_003-090.expected | 2 +- .../tests/test-client.check-on-disk/test_003-091.expected | 2 +- .../tests/test-client.check-on-disk/test_003-092.expected | 2 +- .../tests/test-client.check-on-disk/test_004-001.expected | 2 +- .../tests/test-client.check-on-disk/test_004-002.expected | 2 +- .../tests/test-client.check-on-disk/test_004-003.expected | 2 +- .../tests/test-client.check-on-disk/test_004-004.expected | 2 +- .../tests/test-client.check-on-disk/test_004-005.expected | 2 +- .../tests/test-client.check-on-disk/test_004-006.expected | 2 +- .../tests/test-client.check-on-disk/test_004-007.expected | 2 +- .../tests/test-client.check-on-disk/test_004-008.expected | 2 +- .../tests/test-client.check-on-disk/test_004-009.expected | 2 +- clients/tests/test-client.py | 5 +++++ 152 files changed, 156 insertions(+), 151 deletions(-) diff --git a/clients/tests/test-client.check-on-disk/test_001-001.expected b/clients/tests/test-client.check-on-disk/test_001-001.expected index 23f546bfb6..bbb7924983 100644 --- a/clients/tests/test-client.check-on-disk/test_001-001.expected +++ b/clients/tests/test-client.check-on-disk/test_001-001.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:651:test_001()/1 +location: clients/tests/test-client.py:656:test_001()/1 cmd: $NMCLI lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_001-002.expected b/clients/tests/test-client.check-on-disk/test_001-002.expected index bcbb86ee12..e56b1bedae 100644 --- a/clients/tests/test-client.check-on-disk/test_001-002.expected +++ b/clients/tests/test-client.check-on-disk/test_001-002.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:651:test_001()/2 +location: clients/tests/test-client.py:656:test_001()/2 cmd: $NMCLI lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_001-003.expected b/clients/tests/test-client.check-on-disk/test_001-003.expected index f08e8df7b9..97f26f0b4b 100644 --- a/clients/tests/test-client.check-on-disk/test_001-003.expected +++ b/clients/tests/test-client.check-on-disk/test_001-003.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:653:test_001()/3 +location: clients/tests/test-client.py:658:test_001()/3 cmd: $NMCLI -f AP -mode multiline -p d show wlan0 lang: C returncode: 10 diff --git a/clients/tests/test-client.check-on-disk/test_001-004.expected b/clients/tests/test-client.check-on-disk/test_001-004.expected index 1e01f6cd86..b016817806 100644 --- a/clients/tests/test-client.check-on-disk/test_001-004.expected +++ b/clients/tests/test-client.check-on-disk/test_001-004.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:653:test_001()/4 +location: clients/tests/test-client.py:658:test_001()/4 cmd: $NMCLI -f AP -mode multiline -p d show wlan0 lang: pl_PL.UTF-8 returncode: 10 diff --git a/clients/tests/test-client.check-on-disk/test_001-005.expected b/clients/tests/test-client.check-on-disk/test_001-005.expected index c3ddbd52b1..92efd49fe5 100644 --- a/clients/tests/test-client.check-on-disk/test_001-005.expected +++ b/clients/tests/test-client.check-on-disk/test_001-005.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:655:test_001()/5 +location: clients/tests/test-client.py:660:test_001()/5 cmd: $NMCLI c s lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_001-006.expected b/clients/tests/test-client.check-on-disk/test_001-006.expected index 6e1bbca1c4..1526601637 100644 --- a/clients/tests/test-client.check-on-disk/test_001-006.expected +++ b/clients/tests/test-client.check-on-disk/test_001-006.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:655:test_001()/6 +location: clients/tests/test-client.py:660:test_001()/6 cmd: $NMCLI c s lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_001-007.expected b/clients/tests/test-client.check-on-disk/test_001-007.expected index 759cfe56cd..46d69717dc 100644 --- a/clients/tests/test-client.check-on-disk/test_001-007.expected +++ b/clients/tests/test-client.check-on-disk/test_001-007.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:657:test_001()/7 +location: clients/tests/test-client.py:662:test_001()/7 cmd: $NMCLI bogus s lang: C returncode: 2 diff --git a/clients/tests/test-client.check-on-disk/test_001-008.expected b/clients/tests/test-client.check-on-disk/test_001-008.expected index ba4d941c73..f16ba4bcf7 100644 --- a/clients/tests/test-client.check-on-disk/test_001-008.expected +++ b/clients/tests/test-client.check-on-disk/test_001-008.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:657:test_001()/8 +location: clients/tests/test-client.py:662:test_001()/8 cmd: $NMCLI bogus s lang: pl_PL.UTF-8 returncode: 2 diff --git a/clients/tests/test-client.check-on-disk/test_001-009.expected b/clients/tests/test-client.check-on-disk/test_001-009.expected index 2614409a18..66907233e6 100644 --- a/clients/tests/test-client.check-on-disk/test_001-009.expected +++ b/clients/tests/test-client.check-on-disk/test_001-009.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:665:test_001()/9 +location: clients/tests/test-client.py:670:test_001()/9 cmd: $NMCLI general permissions lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_001-010.expected b/clients/tests/test-client.check-on-disk/test_001-010.expected index 0c9f540fe8..251145efd0 100644 --- a/clients/tests/test-client.check-on-disk/test_001-010.expected +++ b/clients/tests/test-client.check-on-disk/test_001-010.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:665:test_001()/10 +location: clients/tests/test-client.py:670:test_001()/10 cmd: $NMCLI general permissions lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_001-011.expected b/clients/tests/test-client.check-on-disk/test_001-011.expected index fc6cc6b62e..661d33aead 100644 --- a/clients/tests/test-client.check-on-disk/test_001-011.expected +++ b/clients/tests/test-client.check-on-disk/test_001-011.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:665:test_001()/11 +location: clients/tests/test-client.py:670:test_001()/11 cmd: $NMCLI --pretty general permissions lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_001-012.expected b/clients/tests/test-client.check-on-disk/test_001-012.expected index cb1793d2d7..e96a3b094b 100644 --- a/clients/tests/test-client.check-on-disk/test_001-012.expected +++ b/clients/tests/test-client.check-on-disk/test_001-012.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:665:test_001()/12 +location: clients/tests/test-client.py:670:test_001()/12 cmd: $NMCLI --pretty general permissions lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_001-013.expected b/clients/tests/test-client.check-on-disk/test_001-013.expected index 1317ee1347..7a8aa05386 100644 --- a/clients/tests/test-client.check-on-disk/test_001-013.expected +++ b/clients/tests/test-client.check-on-disk/test_001-013.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:665:test_001()/13 +location: clients/tests/test-client.py:670:test_001()/13 cmd: $NMCLI --terse general permissions lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_001-014.expected b/clients/tests/test-client.check-on-disk/test_001-014.expected index 73e62b7e72..add3aecf42 100644 --- a/clients/tests/test-client.check-on-disk/test_001-014.expected +++ b/clients/tests/test-client.check-on-disk/test_001-014.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:665:test_001()/14 +location: clients/tests/test-client.py:670:test_001()/14 cmd: $NMCLI --terse general permissions lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_001-015.expected b/clients/tests/test-client.check-on-disk/test_001-015.expected index 426d9834a1..4d85dd2761 100644 --- a/clients/tests/test-client.check-on-disk/test_001-015.expected +++ b/clients/tests/test-client.check-on-disk/test_001-015.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:665:test_001()/15 +location: clients/tests/test-client.py:670:test_001()/15 cmd: $NMCLI --mode tabular general permissions lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_001-016.expected b/clients/tests/test-client.check-on-disk/test_001-016.expected index e501a8d317..7ccaac3b84 100644 --- a/clients/tests/test-client.check-on-disk/test_001-016.expected +++ b/clients/tests/test-client.check-on-disk/test_001-016.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:665:test_001()/16 +location: clients/tests/test-client.py:670:test_001()/16 cmd: $NMCLI --mode tabular general permissions lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_001-017.expected b/clients/tests/test-client.check-on-disk/test_001-017.expected index ab38df973f..e15f6a1c29 100644 --- a/clients/tests/test-client.check-on-disk/test_001-017.expected +++ b/clients/tests/test-client.check-on-disk/test_001-017.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:665:test_001()/17 +location: clients/tests/test-client.py:670:test_001()/17 cmd: $NMCLI --mode tabular --pretty general permissions lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_001-018.expected b/clients/tests/test-client.check-on-disk/test_001-018.expected index 7bbf78f543..42121bb292 100644 --- a/clients/tests/test-client.check-on-disk/test_001-018.expected +++ b/clients/tests/test-client.check-on-disk/test_001-018.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:665:test_001()/18 +location: clients/tests/test-client.py:670:test_001()/18 cmd: $NMCLI --mode tabular --pretty general permissions lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_001-019.expected b/clients/tests/test-client.check-on-disk/test_001-019.expected index 23692b05ed..f5c4f5c6b8 100644 --- a/clients/tests/test-client.check-on-disk/test_001-019.expected +++ b/clients/tests/test-client.check-on-disk/test_001-019.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:665:test_001()/19 +location: clients/tests/test-client.py:670:test_001()/19 cmd: $NMCLI --mode tabular --terse general permissions lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_001-020.expected b/clients/tests/test-client.check-on-disk/test_001-020.expected index b0987d67d4..f1545fc93b 100644 --- a/clients/tests/test-client.check-on-disk/test_001-020.expected +++ b/clients/tests/test-client.check-on-disk/test_001-020.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:665:test_001()/20 +location: clients/tests/test-client.py:670:test_001()/20 cmd: $NMCLI --mode tabular --terse general permissions lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_001-021.expected b/clients/tests/test-client.check-on-disk/test_001-021.expected index eb082c0273..d3a39a1249 100644 --- a/clients/tests/test-client.check-on-disk/test_001-021.expected +++ b/clients/tests/test-client.check-on-disk/test_001-021.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:665:test_001()/21 +location: clients/tests/test-client.py:670:test_001()/21 cmd: $NMCLI --mode multiline general permissions lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_001-022.expected b/clients/tests/test-client.check-on-disk/test_001-022.expected index df0020533f..261827032f 100644 --- a/clients/tests/test-client.check-on-disk/test_001-022.expected +++ b/clients/tests/test-client.check-on-disk/test_001-022.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:665:test_001()/22 +location: clients/tests/test-client.py:670:test_001()/22 cmd: $NMCLI --mode multiline general permissions lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_001-023.expected b/clients/tests/test-client.check-on-disk/test_001-023.expected index 55376eb9c9..705b17a81a 100644 --- a/clients/tests/test-client.check-on-disk/test_001-023.expected +++ b/clients/tests/test-client.check-on-disk/test_001-023.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:665:test_001()/23 +location: clients/tests/test-client.py:670:test_001()/23 cmd: $NMCLI --mode multiline --pretty general permissions lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_001-024.expected b/clients/tests/test-client.check-on-disk/test_001-024.expected index 10b3b04c19..32d7ff553c 100644 --- a/clients/tests/test-client.check-on-disk/test_001-024.expected +++ b/clients/tests/test-client.check-on-disk/test_001-024.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:665:test_001()/24 +location: clients/tests/test-client.py:670:test_001()/24 cmd: $NMCLI --mode multiline --pretty general permissions lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_001-025.expected b/clients/tests/test-client.check-on-disk/test_001-025.expected index 687e62bf93..475e8f747f 100644 --- a/clients/tests/test-client.check-on-disk/test_001-025.expected +++ b/clients/tests/test-client.check-on-disk/test_001-025.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:665:test_001()/25 +location: clients/tests/test-client.py:670:test_001()/25 cmd: $NMCLI --mode multiline --terse general permissions lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_001-026.expected b/clients/tests/test-client.check-on-disk/test_001-026.expected index 1b01d876cf..f91d9cad42 100644 --- a/clients/tests/test-client.check-on-disk/test_001-026.expected +++ b/clients/tests/test-client.check-on-disk/test_001-026.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:665:test_001()/26 +location: clients/tests/test-client.py:670:test_001()/26 cmd: $NMCLI --mode multiline --terse general permissions lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_002-001.expected b/clients/tests/test-client.check-on-disk/test_002-001.expected index 5f3d7d6a0a..30109cc93b 100644 --- a/clients/tests/test-client.check-on-disk/test_002-001.expected +++ b/clients/tests/test-client.check-on-disk/test_002-001.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:670:test_002()/1 +location: clients/tests/test-client.py:675:test_002()/1 cmd: $NMCLI d lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_002-002.expected b/clients/tests/test-client.check-on-disk/test_002-002.expected index 3bdc45e469..0f8f57f89a 100644 --- a/clients/tests/test-client.check-on-disk/test_002-002.expected +++ b/clients/tests/test-client.check-on-disk/test_002-002.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:670:test_002()/2 +location: clients/tests/test-client.py:675:test_002()/2 cmd: $NMCLI d lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_002-003.expected b/clients/tests/test-client.check-on-disk/test_002-003.expected index e2e56101dd..b337f30d10 100644 --- a/clients/tests/test-client.check-on-disk/test_002-003.expected +++ b/clients/tests/test-client.check-on-disk/test_002-003.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:672:test_002()/3 +location: clients/tests/test-client.py:677:test_002()/3 cmd: $NMCLI -f all d lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_002-004.expected b/clients/tests/test-client.check-on-disk/test_002-004.expected index 0e884ed081..f1dd1f2893 100644 --- a/clients/tests/test-client.check-on-disk/test_002-004.expected +++ b/clients/tests/test-client.check-on-disk/test_002-004.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:672:test_002()/4 +location: clients/tests/test-client.py:677:test_002()/4 cmd: $NMCLI -f all d lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_002-005.expected b/clients/tests/test-client.check-on-disk/test_002-005.expected index 3d1440eae3..725b3f894e 100644 --- a/clients/tests/test-client.check-on-disk/test_002-005.expected +++ b/clients/tests/test-client.check-on-disk/test_002-005.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:674:test_002()/5 +location: clients/tests/test-client.py:679:test_002()/5 cmd: $NMCLI lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_002-006.expected b/clients/tests/test-client.check-on-disk/test_002-006.expected index a676f62de8..54812bf262 100644 --- a/clients/tests/test-client.check-on-disk/test_002-006.expected +++ b/clients/tests/test-client.check-on-disk/test_002-006.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:674:test_002()/6 +location: clients/tests/test-client.py:679:test_002()/6 cmd: $NMCLI lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_002-007.expected b/clients/tests/test-client.check-on-disk/test_002-007.expected index 780e7f6e79..2ec9c9ca15 100644 --- a/clients/tests/test-client.check-on-disk/test_002-007.expected +++ b/clients/tests/test-client.check-on-disk/test_002-007.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:676:test_002()/7 +location: clients/tests/test-client.py:681:test_002()/7 cmd: $NMCLI -f AP -mode multiline d show wlan0 lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_002-008.expected b/clients/tests/test-client.check-on-disk/test_002-008.expected index c605e8e755..351838ea42 100644 --- a/clients/tests/test-client.check-on-disk/test_002-008.expected +++ b/clients/tests/test-client.check-on-disk/test_002-008.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:676:test_002()/8 +location: clients/tests/test-client.py:681:test_002()/8 cmd: $NMCLI -f AP -mode multiline d show wlan0 lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_002-009.expected b/clients/tests/test-client.check-on-disk/test_002-009.expected index bd1bbe9056..fbe276e48f 100644 --- a/clients/tests/test-client.check-on-disk/test_002-009.expected +++ b/clients/tests/test-client.check-on-disk/test_002-009.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:677:test_002()/9 +location: clients/tests/test-client.py:682:test_002()/9 cmd: $NMCLI -f AP -mode multiline -p d show wlan0 lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_002-010.expected b/clients/tests/test-client.check-on-disk/test_002-010.expected index d3c06c7b29..434dbd8119 100644 --- a/clients/tests/test-client.check-on-disk/test_002-010.expected +++ b/clients/tests/test-client.check-on-disk/test_002-010.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:677:test_002()/10 +location: clients/tests/test-client.py:682:test_002()/10 cmd: $NMCLI -f AP -mode multiline -p d show wlan0 lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_002-011.expected b/clients/tests/test-client.check-on-disk/test_002-011.expected index e943c114e8..64222456ee 100644 --- a/clients/tests/test-client.check-on-disk/test_002-011.expected +++ b/clients/tests/test-client.check-on-disk/test_002-011.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:678:test_002()/11 +location: clients/tests/test-client.py:683:test_002()/11 cmd: $NMCLI -f AP -mode multiline -t d show wlan0 lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_002-012.expected b/clients/tests/test-client.check-on-disk/test_002-012.expected index 6e3e5d56a7..47a45c20b1 100644 --- a/clients/tests/test-client.check-on-disk/test_002-012.expected +++ b/clients/tests/test-client.check-on-disk/test_002-012.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:678:test_002()/12 +location: clients/tests/test-client.py:683:test_002()/12 cmd: $NMCLI -f AP -mode multiline -t d show wlan0 lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_002-013.expected b/clients/tests/test-client.check-on-disk/test_002-013.expected index a649addd6b..95eb53129d 100644 --- a/clients/tests/test-client.check-on-disk/test_002-013.expected +++ b/clients/tests/test-client.check-on-disk/test_002-013.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:679:test_002()/13 +location: clients/tests/test-client.py:684:test_002()/13 cmd: $NMCLI -f AP -mode tabular d show wlan0 lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_002-014.expected b/clients/tests/test-client.check-on-disk/test_002-014.expected index d2a8a6677d..aa9146b935 100644 --- a/clients/tests/test-client.check-on-disk/test_002-014.expected +++ b/clients/tests/test-client.check-on-disk/test_002-014.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:679:test_002()/14 +location: clients/tests/test-client.py:684:test_002()/14 cmd: $NMCLI -f AP -mode tabular d show wlan0 lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_002-015.expected b/clients/tests/test-client.check-on-disk/test_002-015.expected index 1b28741fae..417571073f 100644 --- a/clients/tests/test-client.check-on-disk/test_002-015.expected +++ b/clients/tests/test-client.check-on-disk/test_002-015.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:680:test_002()/15 +location: clients/tests/test-client.py:685:test_002()/15 cmd: $NMCLI -f AP -mode tabular -p d show wlan0 lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_002-016.expected b/clients/tests/test-client.check-on-disk/test_002-016.expected index a597044783..0065d267e7 100644 --- a/clients/tests/test-client.check-on-disk/test_002-016.expected +++ b/clients/tests/test-client.check-on-disk/test_002-016.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:680:test_002()/16 +location: clients/tests/test-client.py:685:test_002()/16 cmd: $NMCLI -f AP -mode tabular -p d show wlan0 lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_002-017.expected b/clients/tests/test-client.check-on-disk/test_002-017.expected index 61499b6d0e..e0b0b5108a 100644 --- a/clients/tests/test-client.check-on-disk/test_002-017.expected +++ b/clients/tests/test-client.check-on-disk/test_002-017.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:681:test_002()/17 +location: clients/tests/test-client.py:686:test_002()/17 cmd: $NMCLI -f AP -mode tabular -t d show wlan0 lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_002-018.expected b/clients/tests/test-client.check-on-disk/test_002-018.expected index bbac7a72c0..e5ec8a57bd 100644 --- a/clients/tests/test-client.check-on-disk/test_002-018.expected +++ b/clients/tests/test-client.check-on-disk/test_002-018.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:681:test_002()/18 +location: clients/tests/test-client.py:686:test_002()/18 cmd: $NMCLI -f AP -mode tabular -t d show wlan0 lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_002-019.expected b/clients/tests/test-client.check-on-disk/test_002-019.expected index 0bcc5e9d48..4e0e856cff 100644 --- a/clients/tests/test-client.check-on-disk/test_002-019.expected +++ b/clients/tests/test-client.check-on-disk/test_002-019.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:683:test_002()/19 +location: clients/tests/test-client.py:688:test_002()/19 cmd: $NMCLI -f ALL d wifi lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_002-020.expected b/clients/tests/test-client.check-on-disk/test_002-020.expected index f433340e53..96e4d77a38 100644 --- a/clients/tests/test-client.check-on-disk/test_002-020.expected +++ b/clients/tests/test-client.check-on-disk/test_002-020.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:683:test_002()/20 +location: clients/tests/test-client.py:688:test_002()/20 cmd: $NMCLI -f ALL d wifi lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_002-021.expected b/clients/tests/test-client.check-on-disk/test_002-021.expected index 8dd7f6477d..abc9a98811 100644 --- a/clients/tests/test-client.check-on-disk/test_002-021.expected +++ b/clients/tests/test-client.check-on-disk/test_002-021.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:685:test_002()/21 +location: clients/tests/test-client.py:690:test_002()/21 cmd: $NMCLI c lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_002-022.expected b/clients/tests/test-client.check-on-disk/test_002-022.expected index 25d7bed294..e5c60ff8a8 100644 --- a/clients/tests/test-client.check-on-disk/test_002-022.expected +++ b/clients/tests/test-client.check-on-disk/test_002-022.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:685:test_002()/22 +location: clients/tests/test-client.py:690:test_002()/22 cmd: $NMCLI c lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_002-023.expected b/clients/tests/test-client.check-on-disk/test_002-023.expected index 43ce64190d..3f450162ea 100644 --- a/clients/tests/test-client.check-on-disk/test_002-023.expected +++ b/clients/tests/test-client.check-on-disk/test_002-023.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:687:test_002()/23 +location: clients/tests/test-client.py:692:test_002()/23 cmd: $NMCLI c s con-1 lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_002-024.expected b/clients/tests/test-client.check-on-disk/test_002-024.expected index a5b7bc4afb..c77f504da2 100644 --- a/clients/tests/test-client.check-on-disk/test_002-024.expected +++ b/clients/tests/test-client.check-on-disk/test_002-024.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:687:test_002()/24 +location: clients/tests/test-client.py:692:test_002()/24 cmd: $NMCLI c s con-1 lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-001.expected b/clients/tests/test-client.check-on-disk/test_003-001.expected index e131cb36b8..75037afb1a 100644 --- a/clients/tests/test-client.check-on-disk/test_003-001.expected +++ b/clients/tests/test-client.check-on-disk/test_003-001.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:697:test_003()/1 +location: clients/tests/test-client.py:702:test_003()/1 cmd: $NMCLI c add type ethernet ifname '*' con-name con-xx1 lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-002.expected b/clients/tests/test-client.check-on-disk/test_003-002.expected index 9c9cfb2d72..bcd9150139 100644 --- a/clients/tests/test-client.check-on-disk/test_003-002.expected +++ b/clients/tests/test-client.check-on-disk/test_003-002.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:700:test_003()/2 +location: clients/tests/test-client.py:705:test_003()/2 cmd: $NMCLI c s lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-003.expected b/clients/tests/test-client.check-on-disk/test_003-003.expected index 882d1b4d1c..b4fc84b464 100644 --- a/clients/tests/test-client.check-on-disk/test_003-003.expected +++ b/clients/tests/test-client.check-on-disk/test_003-003.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:700:test_003()/3 +location: clients/tests/test-client.py:705:test_003()/3 cmd: $NMCLI c s lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-004.expected b/clients/tests/test-client.check-on-disk/test_003-004.expected index 37c67f275f..671141316c 100644 --- a/clients/tests/test-client.check-on-disk/test_003-004.expected +++ b/clients/tests/test-client.check-on-disk/test_003-004.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:705:test_003()/4 +location: clients/tests/test-client.py:710:test_003()/4 cmd: $NMCLI c add type ethernet ifname '*' lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-005.expected b/clients/tests/test-client.check-on-disk/test_003-005.expected index 15ef586b4e..6c2f3c27fd 100644 --- a/clients/tests/test-client.check-on-disk/test_003-005.expected +++ b/clients/tests/test-client.check-on-disk/test_003-005.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:708:test_003()/5 +location: clients/tests/test-client.py:713:test_003()/5 cmd: $NMCLI c s lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-006.expected b/clients/tests/test-client.check-on-disk/test_003-006.expected index cd89b202e8..caacf3b766 100644 --- a/clients/tests/test-client.check-on-disk/test_003-006.expected +++ b/clients/tests/test-client.check-on-disk/test_003-006.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:708:test_003()/6 +location: clients/tests/test-client.py:713:test_003()/6 cmd: $NMCLI c s lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-007.expected b/clients/tests/test-client.check-on-disk/test_003-007.expected index c2e5a56630..e9a0ef0ed9 100644 --- a/clients/tests/test-client.check-on-disk/test_003-007.expected +++ b/clients/tests/test-client.check-on-disk/test_003-007.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:711:test_003()/7 +location: clients/tests/test-client.py:716:test_003()/7 cmd: $NMCLI -f ALL c s lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-008.expected b/clients/tests/test-client.check-on-disk/test_003-008.expected index 1100563f1e..ac32549ae0 100644 --- a/clients/tests/test-client.check-on-disk/test_003-008.expected +++ b/clients/tests/test-client.check-on-disk/test_003-008.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:711:test_003()/8 +location: clients/tests/test-client.py:716:test_003()/8 cmd: $NMCLI -f ALL c s lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-009.expected b/clients/tests/test-client.check-on-disk/test_003-009.expected index f3d9d2923c..3b645a57f0 100644 --- a/clients/tests/test-client.check-on-disk/test_003-009.expected +++ b/clients/tests/test-client.check-on-disk/test_003-009.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:715:test_003()/9 +location: clients/tests/test-client.py:720:test_003()/9 cmd: $NMCLI --complete-args -f ALL c s '' lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-010.expected b/clients/tests/test-client.check-on-disk/test_003-010.expected index 86c4dea0ee..e9a0236fa8 100644 --- a/clients/tests/test-client.check-on-disk/test_003-010.expected +++ b/clients/tests/test-client.check-on-disk/test_003-010.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:715:test_003()/10 +location: clients/tests/test-client.py:720:test_003()/10 cmd: $NMCLI --complete-args -f ALL c s '' lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-011.expected b/clients/tests/test-client.check-on-disk/test_003-011.expected index 3da70bbf10..98a21153db 100644 --- a/clients/tests/test-client.check-on-disk/test_003-011.expected +++ b/clients/tests/test-client.check-on-disk/test_003-011.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:728:test_003()/11 +location: clients/tests/test-client.py:733:test_003()/11 cmd: $NMCLI con up ethernet ifname eth0 lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-012.expected b/clients/tests/test-client.check-on-disk/test_003-012.expected index 810ffc8b79..2ce37e4211 100644 --- a/clients/tests/test-client.check-on-disk/test_003-012.expected +++ b/clients/tests/test-client.check-on-disk/test_003-012.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:731:test_003()/12 +location: clients/tests/test-client.py:736:test_003()/12 cmd: $NMCLI con lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-013.expected b/clients/tests/test-client.check-on-disk/test_003-013.expected index b17bbf2855..fda543c9aa 100644 --- a/clients/tests/test-client.check-on-disk/test_003-013.expected +++ b/clients/tests/test-client.check-on-disk/test_003-013.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:731:test_003()/13 +location: clients/tests/test-client.py:736:test_003()/13 cmd: $NMCLI con lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-014.expected b/clients/tests/test-client.check-on-disk/test_003-014.expected index da785a2c8b..ed171679e5 100644 --- a/clients/tests/test-client.check-on-disk/test_003-014.expected +++ b/clients/tests/test-client.check-on-disk/test_003-014.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:734:test_003()/14 +location: clients/tests/test-client.py:739:test_003()/14 cmd: $NMCLI -f ALL con lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-015.expected b/clients/tests/test-client.check-on-disk/test_003-015.expected index ad645f8f82..0baaa030ba 100644 --- a/clients/tests/test-client.check-on-disk/test_003-015.expected +++ b/clients/tests/test-client.check-on-disk/test_003-015.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:734:test_003()/15 +location: clients/tests/test-client.py:739:test_003()/15 cmd: $NMCLI -f ALL con lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-016.expected b/clients/tests/test-client.check-on-disk/test_003-016.expected index c5a717b0f8..373b0ddbc4 100644 --- a/clients/tests/test-client.check-on-disk/test_003-016.expected +++ b/clients/tests/test-client.check-on-disk/test_003-016.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:737:test_003()/16 +location: clients/tests/test-client.py:742:test_003()/16 cmd: $NMCLI -f ALL con s -a lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-017.expected b/clients/tests/test-client.check-on-disk/test_003-017.expected index 760b8f299b..d16ce44e7b 100644 --- a/clients/tests/test-client.check-on-disk/test_003-017.expected +++ b/clients/tests/test-client.check-on-disk/test_003-017.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:737:test_003()/17 +location: clients/tests/test-client.py:742:test_003()/17 cmd: $NMCLI -f ALL con s -a lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-018.expected b/clients/tests/test-client.check-on-disk/test_003-018.expected index 83a19b3c14..6168ba8df6 100644 --- a/clients/tests/test-client.check-on-disk/test_003-018.expected +++ b/clients/tests/test-client.check-on-disk/test_003-018.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:740:test_003()/18 +location: clients/tests/test-client.py:745:test_003()/18 cmd: $NMCLI -f ACTIVE-PATH,DEVICE,UUID con s -act lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-019.expected b/clients/tests/test-client.check-on-disk/test_003-019.expected index 9e2db6462f..d2c2e114fc 100644 --- a/clients/tests/test-client.check-on-disk/test_003-019.expected +++ b/clients/tests/test-client.check-on-disk/test_003-019.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:740:test_003()/19 +location: clients/tests/test-client.py:745:test_003()/19 cmd: $NMCLI -f ACTIVE-PATH,DEVICE,UUID con s -act lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-020.expected b/clients/tests/test-client.check-on-disk/test_003-020.expected index 2c226cbccf..7f20af9e2e 100644 --- a/clients/tests/test-client.check-on-disk/test_003-020.expected +++ b/clients/tests/test-client.check-on-disk/test_003-020.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:743:test_003()/20 +location: clients/tests/test-client.py:748:test_003()/20 cmd: $NMCLI -f UUID,NAME con s --active lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-021.expected b/clients/tests/test-client.check-on-disk/test_003-021.expected index 77bd6f6a6e..c312142450 100644 --- a/clients/tests/test-client.check-on-disk/test_003-021.expected +++ b/clients/tests/test-client.check-on-disk/test_003-021.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:743:test_003()/21 +location: clients/tests/test-client.py:748:test_003()/21 cmd: $NMCLI -f UUID,NAME con s --active lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-022.expected b/clients/tests/test-client.check-on-disk/test_003-022.expected index fd249bf47f..fb27dfc02a 100644 --- a/clients/tests/test-client.check-on-disk/test_003-022.expected +++ b/clients/tests/test-client.check-on-disk/test_003-022.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:746:test_003()/22 +location: clients/tests/test-client.py:751:test_003()/22 cmd: $NMCLI -f ALL con s ethernet lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-023.expected b/clients/tests/test-client.check-on-disk/test_003-023.expected index fe7721ee2a..577bd49818 100644 --- a/clients/tests/test-client.check-on-disk/test_003-023.expected +++ b/clients/tests/test-client.check-on-disk/test_003-023.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:746:test_003()/23 +location: clients/tests/test-client.py:751:test_003()/23 cmd: $NMCLI -f ALL con s ethernet lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-024.expected b/clients/tests/test-client.check-on-disk/test_003-024.expected index 33f63fe197..dc9d9ce4be 100644 --- a/clients/tests/test-client.check-on-disk/test_003-024.expected +++ b/clients/tests/test-client.check-on-disk/test_003-024.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:749:test_003()/24 +location: clients/tests/test-client.py:754:test_003()/24 cmd: $NMCLI -f GENERAL.STATE con s ethernet lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-025.expected b/clients/tests/test-client.check-on-disk/test_003-025.expected index e5df81577b..3522769124 100644 --- a/clients/tests/test-client.check-on-disk/test_003-025.expected +++ b/clients/tests/test-client.check-on-disk/test_003-025.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:749:test_003()/25 +location: clients/tests/test-client.py:754:test_003()/25 cmd: $NMCLI -f GENERAL.STATE con s ethernet lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-026.expected b/clients/tests/test-client.check-on-disk/test_003-026.expected index a04254e041..836780edd9 100644 --- a/clients/tests/test-client.check-on-disk/test_003-026.expected +++ b/clients/tests/test-client.check-on-disk/test_003-026.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:752:test_003()/26 +location: clients/tests/test-client.py:757:test_003()/26 cmd: $NMCLI con s ethernet lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-027.expected b/clients/tests/test-client.check-on-disk/test_003-027.expected index bea7200447..d7122ebfb2 100644 --- a/clients/tests/test-client.check-on-disk/test_003-027.expected +++ b/clients/tests/test-client.check-on-disk/test_003-027.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:752:test_003()/27 +location: clients/tests/test-client.py:757:test_003()/27 cmd: $NMCLI con s ethernet lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-028.expected b/clients/tests/test-client.check-on-disk/test_003-028.expected index 28e99ac0cc..05e9ae0645 100644 --- a/clients/tests/test-client.check-on-disk/test_003-028.expected +++ b/clients/tests/test-client.check-on-disk/test_003-028.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:755:test_003()/28 +location: clients/tests/test-client.py:760:test_003()/28 cmd: $NMCLI -f ALL dev s eth0 lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-029.expected b/clients/tests/test-client.check-on-disk/test_003-029.expected index 43888f024a..03f4c6ecca 100644 --- a/clients/tests/test-client.check-on-disk/test_003-029.expected +++ b/clients/tests/test-client.check-on-disk/test_003-029.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:755:test_003()/29 +location: clients/tests/test-client.py:760:test_003()/29 cmd: $NMCLI -f ALL dev s eth0 lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-030.expected b/clients/tests/test-client.check-on-disk/test_003-030.expected index 209210add1..e1148ab714 100644 --- a/clients/tests/test-client.check-on-disk/test_003-030.expected +++ b/clients/tests/test-client.check-on-disk/test_003-030.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:758:test_003()/30 +location: clients/tests/test-client.py:763:test_003()/30 cmd: $NMCLI -f ALL dev show eth0 lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-031.expected b/clients/tests/test-client.check-on-disk/test_003-031.expected index 5fba5cf9d8..8cd81f00a3 100644 --- a/clients/tests/test-client.check-on-disk/test_003-031.expected +++ b/clients/tests/test-client.check-on-disk/test_003-031.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:758:test_003()/31 +location: clients/tests/test-client.py:763:test_003()/31 cmd: $NMCLI -f ALL dev show eth0 lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-032.expected b/clients/tests/test-client.check-on-disk/test_003-032.expected index 4d39c1e2ad..b4800800fd 100644 --- a/clients/tests/test-client.check-on-disk/test_003-032.expected +++ b/clients/tests/test-client.check-on-disk/test_003-032.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:728:test_003()/32 +location: clients/tests/test-client.py:733:test_003()/32 cmd: $NMCLI con up ethernet ifname eth1 lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-033.expected b/clients/tests/test-client.check-on-disk/test_003-033.expected index 9e7764f2e6..01537c86a1 100644 --- a/clients/tests/test-client.check-on-disk/test_003-033.expected +++ b/clients/tests/test-client.check-on-disk/test_003-033.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:731:test_003()/33 +location: clients/tests/test-client.py:736:test_003()/33 cmd: $NMCLI con lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-034.expected b/clients/tests/test-client.check-on-disk/test_003-034.expected index 8bea22d71b..67dcac74fa 100644 --- a/clients/tests/test-client.check-on-disk/test_003-034.expected +++ b/clients/tests/test-client.check-on-disk/test_003-034.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:731:test_003()/34 +location: clients/tests/test-client.py:736:test_003()/34 cmd: $NMCLI con lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-035.expected b/clients/tests/test-client.check-on-disk/test_003-035.expected index 15e4067587..562895a71d 100644 --- a/clients/tests/test-client.check-on-disk/test_003-035.expected +++ b/clients/tests/test-client.check-on-disk/test_003-035.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:734:test_003()/35 +location: clients/tests/test-client.py:739:test_003()/35 cmd: $NMCLI -f ALL con lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-036.expected b/clients/tests/test-client.check-on-disk/test_003-036.expected index 9d7774d4f2..ef3b63b5d2 100644 --- a/clients/tests/test-client.check-on-disk/test_003-036.expected +++ b/clients/tests/test-client.check-on-disk/test_003-036.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:734:test_003()/36 +location: clients/tests/test-client.py:739:test_003()/36 cmd: $NMCLI -f ALL con lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-037.expected b/clients/tests/test-client.check-on-disk/test_003-037.expected index 8529e4906b..be97595609 100644 --- a/clients/tests/test-client.check-on-disk/test_003-037.expected +++ b/clients/tests/test-client.check-on-disk/test_003-037.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:737:test_003()/37 +location: clients/tests/test-client.py:742:test_003()/37 cmd: $NMCLI -f ALL con s -a lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-038.expected b/clients/tests/test-client.check-on-disk/test_003-038.expected index 75005325ef..d38db63ff1 100644 --- a/clients/tests/test-client.check-on-disk/test_003-038.expected +++ b/clients/tests/test-client.check-on-disk/test_003-038.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:737:test_003()/38 +location: clients/tests/test-client.py:742:test_003()/38 cmd: $NMCLI -f ALL con s -a lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-039.expected b/clients/tests/test-client.check-on-disk/test_003-039.expected index 99fdc38237..1b7022805c 100644 --- a/clients/tests/test-client.check-on-disk/test_003-039.expected +++ b/clients/tests/test-client.check-on-disk/test_003-039.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:740:test_003()/39 +location: clients/tests/test-client.py:745:test_003()/39 cmd: $NMCLI -f ACTIVE-PATH,DEVICE,UUID con s -act lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-040.expected b/clients/tests/test-client.check-on-disk/test_003-040.expected index c037512318..9d0d4cfb57 100644 --- a/clients/tests/test-client.check-on-disk/test_003-040.expected +++ b/clients/tests/test-client.check-on-disk/test_003-040.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:740:test_003()/40 +location: clients/tests/test-client.py:745:test_003()/40 cmd: $NMCLI -f ACTIVE-PATH,DEVICE,UUID con s -act lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-041.expected b/clients/tests/test-client.check-on-disk/test_003-041.expected index 6d1a8afaf6..b243ed266e 100644 --- a/clients/tests/test-client.check-on-disk/test_003-041.expected +++ b/clients/tests/test-client.check-on-disk/test_003-041.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:743:test_003()/41 +location: clients/tests/test-client.py:748:test_003()/41 cmd: $NMCLI -f UUID,NAME con s --active lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-042.expected b/clients/tests/test-client.check-on-disk/test_003-042.expected index 056be14c52..2c5b556d28 100644 --- a/clients/tests/test-client.check-on-disk/test_003-042.expected +++ b/clients/tests/test-client.check-on-disk/test_003-042.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:743:test_003()/42 +location: clients/tests/test-client.py:748:test_003()/42 cmd: $NMCLI -f UUID,NAME con s --active lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-043.expected b/clients/tests/test-client.check-on-disk/test_003-043.expected index 49c5aca7ce..ee879f85a6 100644 --- a/clients/tests/test-client.check-on-disk/test_003-043.expected +++ b/clients/tests/test-client.check-on-disk/test_003-043.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:746:test_003()/43 +location: clients/tests/test-client.py:751:test_003()/43 cmd: $NMCLI -f ALL con s ethernet lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-044.expected b/clients/tests/test-client.check-on-disk/test_003-044.expected index 52e78f3ec7..b891b3d940 100644 --- a/clients/tests/test-client.check-on-disk/test_003-044.expected +++ b/clients/tests/test-client.check-on-disk/test_003-044.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:746:test_003()/44 +location: clients/tests/test-client.py:751:test_003()/44 cmd: $NMCLI -f ALL con s ethernet lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-045.expected b/clients/tests/test-client.check-on-disk/test_003-045.expected index 1eaa5689e5..0214c70f9d 100644 --- a/clients/tests/test-client.check-on-disk/test_003-045.expected +++ b/clients/tests/test-client.check-on-disk/test_003-045.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:749:test_003()/45 +location: clients/tests/test-client.py:754:test_003()/45 cmd: $NMCLI -f GENERAL.STATE con s ethernet lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-046.expected b/clients/tests/test-client.check-on-disk/test_003-046.expected index 35ab57fba4..3657a8c13a 100644 --- a/clients/tests/test-client.check-on-disk/test_003-046.expected +++ b/clients/tests/test-client.check-on-disk/test_003-046.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:749:test_003()/46 +location: clients/tests/test-client.py:754:test_003()/46 cmd: $NMCLI -f GENERAL.STATE con s ethernet lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-047.expected b/clients/tests/test-client.check-on-disk/test_003-047.expected index a825e5622b..9ab2a4ca49 100644 --- a/clients/tests/test-client.check-on-disk/test_003-047.expected +++ b/clients/tests/test-client.check-on-disk/test_003-047.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:752:test_003()/47 +location: clients/tests/test-client.py:757:test_003()/47 cmd: $NMCLI con s ethernet lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-048.expected b/clients/tests/test-client.check-on-disk/test_003-048.expected index ce7410450b..a6171ff9c2 100644 --- a/clients/tests/test-client.check-on-disk/test_003-048.expected +++ b/clients/tests/test-client.check-on-disk/test_003-048.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:752:test_003()/48 +location: clients/tests/test-client.py:757:test_003()/48 cmd: $NMCLI con s ethernet lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-049.expected b/clients/tests/test-client.check-on-disk/test_003-049.expected index 3e0514c0c9..4b058efef5 100644 --- a/clients/tests/test-client.check-on-disk/test_003-049.expected +++ b/clients/tests/test-client.check-on-disk/test_003-049.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:755:test_003()/49 +location: clients/tests/test-client.py:760:test_003()/49 cmd: $NMCLI -f ALL dev s eth0 lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-050.expected b/clients/tests/test-client.check-on-disk/test_003-050.expected index e89fdb8852..0a09f1acdf 100644 --- a/clients/tests/test-client.check-on-disk/test_003-050.expected +++ b/clients/tests/test-client.check-on-disk/test_003-050.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:755:test_003()/50 +location: clients/tests/test-client.py:760:test_003()/50 cmd: $NMCLI -f ALL dev s eth0 lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-051.expected b/clients/tests/test-client.check-on-disk/test_003-051.expected index 27ceabf0ff..c5a4261cdb 100644 --- a/clients/tests/test-client.check-on-disk/test_003-051.expected +++ b/clients/tests/test-client.check-on-disk/test_003-051.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:758:test_003()/51 +location: clients/tests/test-client.py:763:test_003()/51 cmd: $NMCLI -f ALL dev show eth0 lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-052.expected b/clients/tests/test-client.check-on-disk/test_003-052.expected index 74338bcd69..d64e3549fb 100644 --- a/clients/tests/test-client.check-on-disk/test_003-052.expected +++ b/clients/tests/test-client.check-on-disk/test_003-052.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:758:test_003()/52 +location: clients/tests/test-client.py:763:test_003()/52 cmd: $NMCLI -f ALL dev show eth0 lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-053.expected b/clients/tests/test-client.check-on-disk/test_003-053.expected index aae57fbb53..7f969268cb 100644 --- a/clients/tests/test-client.check-on-disk/test_003-053.expected +++ b/clients/tests/test-client.check-on-disk/test_003-053.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:772:test_003()/53 +location: clients/tests/test-client.py:777:test_003()/53 cmd: $NMCLI -f ALL con lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-054.expected b/clients/tests/test-client.check-on-disk/test_003-054.expected index b9bdb4a7e3..a48840e0d0 100644 --- a/clients/tests/test-client.check-on-disk/test_003-054.expected +++ b/clients/tests/test-client.check-on-disk/test_003-054.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:772:test_003()/54 +location: clients/tests/test-client.py:777:test_003()/54 cmd: $NMCLI -f ALL con lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-055.expected b/clients/tests/test-client.check-on-disk/test_003-055.expected index ced8608586..f89b31ef39 100644 --- a/clients/tests/test-client.check-on-disk/test_003-055.expected +++ b/clients/tests/test-client.check-on-disk/test_003-055.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:775:test_003()/55 +location: clients/tests/test-client.py:780:test_003()/55 cmd: $NMCLI -f UUID,TYPE con lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-056.expected b/clients/tests/test-client.check-on-disk/test_003-056.expected index fc67a94dda..b69e2866be 100644 --- a/clients/tests/test-client.check-on-disk/test_003-056.expected +++ b/clients/tests/test-client.check-on-disk/test_003-056.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:775:test_003()/56 +location: clients/tests/test-client.py:780:test_003()/56 cmd: $NMCLI -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-057.expected b/clients/tests/test-client.check-on-disk/test_003-057.expected index aa62abbea4..f33d89fd8a 100644 --- a/clients/tests/test-client.check-on-disk/test_003-057.expected +++ b/clients/tests/test-client.check-on-disk/test_003-057.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:778:test_003()/57 +location: clients/tests/test-client.py:783:test_003()/57 cmd: $NMCLI -f UUID,TYPE --mode multiline con lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-058.expected b/clients/tests/test-client.check-on-disk/test_003-058.expected index d13a7c03ca..0503fbecc0 100644 --- a/clients/tests/test-client.check-on-disk/test_003-058.expected +++ b/clients/tests/test-client.check-on-disk/test_003-058.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:778:test_003()/58 +location: clients/tests/test-client.py:783:test_003()/58 cmd: $NMCLI -f UUID,TYPE --mode multiline con lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-059.expected b/clients/tests/test-client.check-on-disk/test_003-059.expected index f40fe7b6b4..b34c674a1c 100644 --- a/clients/tests/test-client.check-on-disk/test_003-059.expected +++ b/clients/tests/test-client.check-on-disk/test_003-059.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:781:test_003()/59 +location: clients/tests/test-client.py:786:test_003()/59 cmd: $NMCLI -f UUID,TYPE --mode multiline --terse con lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-060.expected b/clients/tests/test-client.check-on-disk/test_003-060.expected index c43731fca9..f0b964c2f1 100644 --- a/clients/tests/test-client.check-on-disk/test_003-060.expected +++ b/clients/tests/test-client.check-on-disk/test_003-060.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:781:test_003()/60 +location: clients/tests/test-client.py:786:test_003()/60 cmd: $NMCLI -f UUID,TYPE --mode multiline --terse con lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-061.expected b/clients/tests/test-client.check-on-disk/test_003-061.expected index 83c6949aef..78bfe96984 100644 --- a/clients/tests/test-client.check-on-disk/test_003-061.expected +++ b/clients/tests/test-client.check-on-disk/test_003-061.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:784:test_003()/61 +location: clients/tests/test-client.py:789:test_003()/61 cmd: $NMCLI -f UUID,TYPE --mode multiline --pretty con lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-062.expected b/clients/tests/test-client.check-on-disk/test_003-062.expected index 29c93d37c2..b5effe1ffa 100644 --- a/clients/tests/test-client.check-on-disk/test_003-062.expected +++ b/clients/tests/test-client.check-on-disk/test_003-062.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:784:test_003()/62 +location: clients/tests/test-client.py:789:test_003()/62 cmd: $NMCLI -f UUID,TYPE --mode multiline --pretty con lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-063.expected b/clients/tests/test-client.check-on-disk/test_003-063.expected index 6850dbccb9..c57defb03c 100644 --- a/clients/tests/test-client.check-on-disk/test_003-063.expected +++ b/clients/tests/test-client.check-on-disk/test_003-063.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:787:test_003()/63 +location: clients/tests/test-client.py:792:test_003()/63 cmd: $NMCLI -f UUID,TYPE --mode tabular con lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-064.expected b/clients/tests/test-client.check-on-disk/test_003-064.expected index d6466e4a95..3df0263fad 100644 --- a/clients/tests/test-client.check-on-disk/test_003-064.expected +++ b/clients/tests/test-client.check-on-disk/test_003-064.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:787:test_003()/64 +location: clients/tests/test-client.py:792:test_003()/64 cmd: $NMCLI -f UUID,TYPE --mode tabular con lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-065.expected b/clients/tests/test-client.check-on-disk/test_003-065.expected index 40d64e0afd..d0a930703a 100644 --- a/clients/tests/test-client.check-on-disk/test_003-065.expected +++ b/clients/tests/test-client.check-on-disk/test_003-065.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:790:test_003()/65 +location: clients/tests/test-client.py:795:test_003()/65 cmd: $NMCLI -f UUID,TYPE --mode tabular --terse con lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-066.expected b/clients/tests/test-client.check-on-disk/test_003-066.expected index e5af348b18..61d49b5fff 100644 --- a/clients/tests/test-client.check-on-disk/test_003-066.expected +++ b/clients/tests/test-client.check-on-disk/test_003-066.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:790:test_003()/66 +location: clients/tests/test-client.py:795:test_003()/66 cmd: $NMCLI -f UUID,TYPE --mode tabular --terse con lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-067.expected b/clients/tests/test-client.check-on-disk/test_003-067.expected index 99d788f7c0..50348a2f29 100644 --- a/clients/tests/test-client.check-on-disk/test_003-067.expected +++ b/clients/tests/test-client.check-on-disk/test_003-067.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:793:test_003()/67 +location: clients/tests/test-client.py:798:test_003()/67 cmd: $NMCLI -f UUID,TYPE --mode tabular --pretty con lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-068.expected b/clients/tests/test-client.check-on-disk/test_003-068.expected index 6d8a57f13d..7d6e57846d 100644 --- a/clients/tests/test-client.check-on-disk/test_003-068.expected +++ b/clients/tests/test-client.check-on-disk/test_003-068.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:793:test_003()/68 +location: clients/tests/test-client.py:798:test_003()/68 cmd: $NMCLI -f UUID,TYPE --mode tabular --pretty con lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-069.expected b/clients/tests/test-client.check-on-disk/test_003-069.expected index a966f20fd8..92f207a075 100644 --- a/clients/tests/test-client.check-on-disk/test_003-069.expected +++ b/clients/tests/test-client.check-on-disk/test_003-069.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:796:test_003()/69 +location: clients/tests/test-client.py:801:test_003()/69 cmd: $NMCLI con s ethernet lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-070.expected b/clients/tests/test-client.check-on-disk/test_003-070.expected index 7ad9541102..454f96d7d1 100644 --- a/clients/tests/test-client.check-on-disk/test_003-070.expected +++ b/clients/tests/test-client.check-on-disk/test_003-070.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:796:test_003()/70 +location: clients/tests/test-client.py:801:test_003()/70 cmd: $NMCLI con s ethernet lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-071.expected b/clients/tests/test-client.check-on-disk/test_003-071.expected index 9e92fd03ec..6ce3b3a698 100644 --- a/clients/tests/test-client.check-on-disk/test_003-071.expected +++ b/clients/tests/test-client.check-on-disk/test_003-071.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:799:test_003()/71 +location: clients/tests/test-client.py:804:test_003()/71 cmd: $NMCLI c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-072.expected b/clients/tests/test-client.check-on-disk/test_003-072.expected index 11d084d412..52d30d16b2 100644 --- a/clients/tests/test-client.check-on-disk/test_003-072.expected +++ b/clients/tests/test-client.check-on-disk/test_003-072.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:799:test_003()/72 +location: clients/tests/test-client.py:804:test_003()/72 cmd: $NMCLI c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-073.expected b/clients/tests/test-client.check-on-disk/test_003-073.expected index 16fa6521b2..382f7a8a92 100644 --- a/clients/tests/test-client.check-on-disk/test_003-073.expected +++ b/clients/tests/test-client.check-on-disk/test_003-073.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:772:test_003()/73 +location: clients/tests/test-client.py:777:test_003()/73 cmd: $NMCLI -f ALL con lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-074.expected b/clients/tests/test-client.check-on-disk/test_003-074.expected index b73c604dfb..45a68481ae 100644 --- a/clients/tests/test-client.check-on-disk/test_003-074.expected +++ b/clients/tests/test-client.check-on-disk/test_003-074.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:772:test_003()/74 +location: clients/tests/test-client.py:777:test_003()/74 cmd: $NMCLI -f ALL con lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-075.expected b/clients/tests/test-client.check-on-disk/test_003-075.expected index 4a26382a4a..6a2954e699 100644 --- a/clients/tests/test-client.check-on-disk/test_003-075.expected +++ b/clients/tests/test-client.check-on-disk/test_003-075.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:775:test_003()/75 +location: clients/tests/test-client.py:780:test_003()/75 cmd: $NMCLI -f UUID,TYPE con lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-076.expected b/clients/tests/test-client.check-on-disk/test_003-076.expected index 1f8446c5c1..5c815eb23f 100644 --- a/clients/tests/test-client.check-on-disk/test_003-076.expected +++ b/clients/tests/test-client.check-on-disk/test_003-076.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:775:test_003()/76 +location: clients/tests/test-client.py:780:test_003()/76 cmd: $NMCLI -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-077.expected b/clients/tests/test-client.check-on-disk/test_003-077.expected index 314a6452fb..1b9754e20d 100644 --- a/clients/tests/test-client.check-on-disk/test_003-077.expected +++ b/clients/tests/test-client.check-on-disk/test_003-077.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:778:test_003()/77 +location: clients/tests/test-client.py:783:test_003()/77 cmd: $NMCLI -f UUID,TYPE --mode multiline con lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-078.expected b/clients/tests/test-client.check-on-disk/test_003-078.expected index 00354b314c..ce69e4957d 100644 --- a/clients/tests/test-client.check-on-disk/test_003-078.expected +++ b/clients/tests/test-client.check-on-disk/test_003-078.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:778:test_003()/78 +location: clients/tests/test-client.py:783:test_003()/78 cmd: $NMCLI -f UUID,TYPE --mode multiline con lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-079.expected b/clients/tests/test-client.check-on-disk/test_003-079.expected index 3e2f2d7e72..8846f66365 100644 --- a/clients/tests/test-client.check-on-disk/test_003-079.expected +++ b/clients/tests/test-client.check-on-disk/test_003-079.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:781:test_003()/79 +location: clients/tests/test-client.py:786:test_003()/79 cmd: $NMCLI -f UUID,TYPE --mode multiline --terse con lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-080.expected b/clients/tests/test-client.check-on-disk/test_003-080.expected index 7b8fb5c078..9da0e80a8c 100644 --- a/clients/tests/test-client.check-on-disk/test_003-080.expected +++ b/clients/tests/test-client.check-on-disk/test_003-080.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:781:test_003()/80 +location: clients/tests/test-client.py:786:test_003()/80 cmd: $NMCLI -f UUID,TYPE --mode multiline --terse con lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-081.expected b/clients/tests/test-client.check-on-disk/test_003-081.expected index 26f2f94824..30c29bc615 100644 --- a/clients/tests/test-client.check-on-disk/test_003-081.expected +++ b/clients/tests/test-client.check-on-disk/test_003-081.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:784:test_003()/81 +location: clients/tests/test-client.py:789:test_003()/81 cmd: $NMCLI -f UUID,TYPE --mode multiline --pretty con lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-082.expected b/clients/tests/test-client.check-on-disk/test_003-082.expected index 249a876215..0eceb77657 100644 --- a/clients/tests/test-client.check-on-disk/test_003-082.expected +++ b/clients/tests/test-client.check-on-disk/test_003-082.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:784:test_003()/82 +location: clients/tests/test-client.py:789:test_003()/82 cmd: $NMCLI -f UUID,TYPE --mode multiline --pretty con lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-083.expected b/clients/tests/test-client.check-on-disk/test_003-083.expected index e8e0710c87..d7b866182c 100644 --- a/clients/tests/test-client.check-on-disk/test_003-083.expected +++ b/clients/tests/test-client.check-on-disk/test_003-083.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:787:test_003()/83 +location: clients/tests/test-client.py:792:test_003()/83 cmd: $NMCLI -f UUID,TYPE --mode tabular con lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-084.expected b/clients/tests/test-client.check-on-disk/test_003-084.expected index cfc62ee2bb..3d8c9c2aad 100644 --- a/clients/tests/test-client.check-on-disk/test_003-084.expected +++ b/clients/tests/test-client.check-on-disk/test_003-084.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:787:test_003()/84 +location: clients/tests/test-client.py:792:test_003()/84 cmd: $NMCLI -f UUID,TYPE --mode tabular con lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-085.expected b/clients/tests/test-client.check-on-disk/test_003-085.expected index 8894c409aa..9b682124fd 100644 --- a/clients/tests/test-client.check-on-disk/test_003-085.expected +++ b/clients/tests/test-client.check-on-disk/test_003-085.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:790:test_003()/85 +location: clients/tests/test-client.py:795:test_003()/85 cmd: $NMCLI -f UUID,TYPE --mode tabular --terse con lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-086.expected b/clients/tests/test-client.check-on-disk/test_003-086.expected index 2038aa2d87..183bdde823 100644 --- a/clients/tests/test-client.check-on-disk/test_003-086.expected +++ b/clients/tests/test-client.check-on-disk/test_003-086.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:790:test_003()/86 +location: clients/tests/test-client.py:795:test_003()/86 cmd: $NMCLI -f UUID,TYPE --mode tabular --terse con lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-087.expected b/clients/tests/test-client.check-on-disk/test_003-087.expected index d2d74c3400..f9b1a65962 100644 --- a/clients/tests/test-client.check-on-disk/test_003-087.expected +++ b/clients/tests/test-client.check-on-disk/test_003-087.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:793:test_003()/87 +location: clients/tests/test-client.py:798:test_003()/87 cmd: $NMCLI -f UUID,TYPE --mode tabular --pretty con lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-088.expected b/clients/tests/test-client.check-on-disk/test_003-088.expected index 4b11b81dfd..01675fd1f6 100644 --- a/clients/tests/test-client.check-on-disk/test_003-088.expected +++ b/clients/tests/test-client.check-on-disk/test_003-088.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:793:test_003()/88 +location: clients/tests/test-client.py:798:test_003()/88 cmd: $NMCLI -f UUID,TYPE --mode tabular --pretty con lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-089.expected b/clients/tests/test-client.check-on-disk/test_003-089.expected index 6df0658b35..31b3ddda05 100644 --- a/clients/tests/test-client.check-on-disk/test_003-089.expected +++ b/clients/tests/test-client.check-on-disk/test_003-089.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:796:test_003()/89 +location: clients/tests/test-client.py:801:test_003()/89 cmd: $NMCLI con s ethernet lang: C returncode: 10 diff --git a/clients/tests/test-client.check-on-disk/test_003-090.expected b/clients/tests/test-client.check-on-disk/test_003-090.expected index ce8783334c..2a830f4fee 100644 --- a/clients/tests/test-client.check-on-disk/test_003-090.expected +++ b/clients/tests/test-client.check-on-disk/test_003-090.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:796:test_003()/90 +location: clients/tests/test-client.py:801:test_003()/90 cmd: $NMCLI con s ethernet lang: pl_PL.UTF-8 returncode: 10 diff --git a/clients/tests/test-client.check-on-disk/test_003-091.expected b/clients/tests/test-client.check-on-disk/test_003-091.expected index b5d36c6983..8ab9564016 100644 --- a/clients/tests/test-client.check-on-disk/test_003-091.expected +++ b/clients/tests/test-client.check-on-disk/test_003-091.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:799:test_003()/91 +location: clients/tests/test-client.py:804:test_003()/91 cmd: $NMCLI c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_003-092.expected b/clients/tests/test-client.check-on-disk/test_003-092.expected index d7d4a4cf8a..8d5c1a62d4 100644 --- a/clients/tests/test-client.check-on-disk/test_003-092.expected +++ b/clients/tests/test-client.check-on-disk/test_003-092.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:799:test_003()/92 +location: clients/tests/test-client.py:804:test_003()/92 cmd: $NMCLI c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_004-001.expected b/clients/tests/test-client.check-on-disk/test_004-001.expected index 52c5591cb4..73a81206b4 100644 --- a/clients/tests/test-client.check-on-disk/test_004-001.expected +++ b/clients/tests/test-client.check-on-disk/test_004-001.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:809:test_004()/1 +location: clients/tests/test-client.py:814:test_004()/1 cmd: $NMCLI c add type wifi ifname '*' ssid foobar con-name con-xx1 lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_004-002.expected b/clients/tests/test-client.check-on-disk/test_004-002.expected index b4177ed3ba..77c0908c85 100644 --- a/clients/tests/test-client.check-on-disk/test_004-002.expected +++ b/clients/tests/test-client.check-on-disk/test_004-002.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:811:test_004()/2 +location: clients/tests/test-client.py:816:test_004()/2 cmd: $NMCLI connection mod con-xx1 ip.gateway '' lang: C returncode: 2 diff --git a/clients/tests/test-client.check-on-disk/test_004-003.expected b/clients/tests/test-client.check-on-disk/test_004-003.expected index 12344984b7..c286684f55 100644 --- a/clients/tests/test-client.check-on-disk/test_004-003.expected +++ b/clients/tests/test-client.check-on-disk/test_004-003.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:812:test_004()/3 +location: clients/tests/test-client.py:817:test_004()/3 cmd: $NMCLI connection mod con-xx1 ipv4.gateway 172.16.0.1 lang: pl_PL.UTF-8 returncode: 1 diff --git a/clients/tests/test-client.check-on-disk/test_004-004.expected b/clients/tests/test-client.check-on-disk/test_004-004.expected index 7a11bfe879..e1df70c378 100644 --- a/clients/tests/test-client.check-on-disk/test_004-004.expected +++ b/clients/tests/test-client.check-on-disk/test_004-004.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:813:test_004()/4 +location: clients/tests/test-client.py:818:test_004()/4 cmd: $NMCLI connection mod con-xx1 ipv6.gateway ::99 lang: C returncode: 1 diff --git a/clients/tests/test-client.check-on-disk/test_004-005.expected b/clients/tests/test-client.check-on-disk/test_004-005.expected index 9e7f329101..3c1c2a5d04 100644 --- a/clients/tests/test-client.check-on-disk/test_004-005.expected +++ b/clients/tests/test-client.check-on-disk/test_004-005.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:814:test_004()/5 +location: clients/tests/test-client.py:819:test_004()/5 cmd: $NMCLI connection mod con-xx1 802.abc '' lang: C returncode: 2 diff --git a/clients/tests/test-client.check-on-disk/test_004-006.expected b/clients/tests/test-client.check-on-disk/test_004-006.expected index c67f9a2760..0fcd984612 100644 --- a/clients/tests/test-client.check-on-disk/test_004-006.expected +++ b/clients/tests/test-client.check-on-disk/test_004-006.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:815:test_004()/6 +location: clients/tests/test-client.py:820:test_004()/6 cmd: $NMCLI connection mod con-xx1 802-11-wireless.band a lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_004-007.expected b/clients/tests/test-client.check-on-disk/test_004-007.expected index 23ad8846bb..8f628cde4d 100644 --- a/clients/tests/test-client.check-on-disk/test_004-007.expected +++ b/clients/tests/test-client.check-on-disk/test_004-007.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:816:test_004()/7 +location: clients/tests/test-client.py:821:test_004()/7 cmd: $NMCLI connection mod con-xx1 ipv4.addresses 192.168.77.5/24 ipv4.routes '2.3.4.5/32 192.168.77.1' ipv6.addresses 1:2:3:4::6/64 ipv6.routes 1:2:3:4:5:6::5/128 lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_004-008.expected b/clients/tests/test-client.check-on-disk/test_004-008.expected index 3225a66fe5..eb0d66afdf 100644 --- a/clients/tests/test-client.check-on-disk/test_004-008.expected +++ b/clients/tests/test-client.check-on-disk/test_004-008.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:818:test_004()/8 +location: clients/tests/test-client.py:823:test_004()/8 cmd: $NMCLI con s con-xx1 lang: C returncode: 0 diff --git a/clients/tests/test-client.check-on-disk/test_004-009.expected b/clients/tests/test-client.check-on-disk/test_004-009.expected index 81d24fdd0e..3248f83504 100644 --- a/clients/tests/test-client.check-on-disk/test_004-009.expected +++ b/clients/tests/test-client.check-on-disk/test_004-009.expected @@ -1,4 +1,4 @@ -location: clients/tests/test-client.py:818:test_004()/9 +location: clients/tests/test-client.py:823:test_004()/9 cmd: $NMCLI con s con-xx1 lang: pl_PL.UTF-8 returncode: 0 diff --git a/clients/tests/test-client.py b/clients/tests/test-client.py index 3830147766..a7d08b6fbd 100755 --- a/clients/tests/test-client.py +++ b/clients/tests/test-client.py @@ -162,6 +162,11 @@ class Util: text = text2 return b''.join([(t[0] if isinstance(t, tuple) else t) for t in text]) + @staticmethod + def debug_dbus_interface(): + # this is for printf debugging, not used in actual code. + os.system('busctl --user --verbose call org.freedesktop.NetworkManager /org/freedesktop org.freedesktop.DBus.ObjectManager GetManagedObjects') + ############################################################################### class Configuration: From 2e22c931f94d7af499d650bdd3bb3a4bf9e15a22 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Tue, 5 Jun 2018 20:23:31 +0200 Subject: [PATCH 10/10] clients/tests: test creating and activating VPN connection --- .../test-client.check-on-disk/Makefile.am | 25 +++++ .../test_004-010.expected | 13 +++ .../test_004-011.expected | 16 +++ .../test_004-012.expected | 16 +++ .../test_004-013.expected | 82 ++++++++++++++ .../test_004-014.expected | 82 ++++++++++++++ .../test_004-015.expected | 13 +++ .../test_004-016.expected | 16 +++ .../test_004-017.expected | 16 +++ .../test_004-018.expected | 13 +++ .../test_004-019.expected | 16 +++ .../test_004-020.expected | 16 +++ .../test_004-021.expected | 102 ++++++++++++++++++ .../test_004-022.expected | 102 ++++++++++++++++++ .../test_004-023.expected | 102 ++++++++++++++++++ .../test_004-024.expected | 102 ++++++++++++++++++ .../test_004-025.expected | 82 ++++++++++++++ .../test_004-026.expected | 82 ++++++++++++++ .../test_004-027.expected | 18 ++++ .../test_004-028.expected | 18 ++++ .../test_004-029.expected | 24 +++++ .../test_004-030.expected | 24 +++++ .../test_004-031.expected | 19 ++++ .../test_004-032.expected | 19 ++++ .../test_004-033.expected | 74 +++++++++++++ .../test_004-034.expected | 74 +++++++++++++ clients/tests/test-client.py | 48 +++++++++ tools/test-networkmanager-service.py | 88 ++++++++++++--- 28 files changed, 1286 insertions(+), 16 deletions(-) create mode 100644 clients/tests/test-client.check-on-disk/test_004-010.expected create mode 100644 clients/tests/test-client.check-on-disk/test_004-011.expected create mode 100644 clients/tests/test-client.check-on-disk/test_004-012.expected create mode 100644 clients/tests/test-client.check-on-disk/test_004-013.expected create mode 100644 clients/tests/test-client.check-on-disk/test_004-014.expected create mode 100644 clients/tests/test-client.check-on-disk/test_004-015.expected create mode 100644 clients/tests/test-client.check-on-disk/test_004-016.expected create mode 100644 clients/tests/test-client.check-on-disk/test_004-017.expected create mode 100644 clients/tests/test-client.check-on-disk/test_004-018.expected create mode 100644 clients/tests/test-client.check-on-disk/test_004-019.expected create mode 100644 clients/tests/test-client.check-on-disk/test_004-020.expected create mode 100644 clients/tests/test-client.check-on-disk/test_004-021.expected create mode 100644 clients/tests/test-client.check-on-disk/test_004-022.expected create mode 100644 clients/tests/test-client.check-on-disk/test_004-023.expected create mode 100644 clients/tests/test-client.check-on-disk/test_004-024.expected create mode 100644 clients/tests/test-client.check-on-disk/test_004-025.expected create mode 100644 clients/tests/test-client.check-on-disk/test_004-026.expected create mode 100644 clients/tests/test-client.check-on-disk/test_004-027.expected create mode 100644 clients/tests/test-client.check-on-disk/test_004-028.expected create mode 100644 clients/tests/test-client.check-on-disk/test_004-029.expected create mode 100644 clients/tests/test-client.check-on-disk/test_004-030.expected create mode 100644 clients/tests/test-client.check-on-disk/test_004-031.expected create mode 100644 clients/tests/test-client.check-on-disk/test_004-032.expected create mode 100644 clients/tests/test-client.check-on-disk/test_004-033.expected create mode 100644 clients/tests/test-client.check-on-disk/test_004-034.expected diff --git a/clients/tests/test-client.check-on-disk/Makefile.am b/clients/tests/test-client.check-on-disk/Makefile.am index 8bbfbe0b6c..7c9cabe8a4 100644 --- a/clients/tests/test-client.check-on-disk/Makefile.am +++ b/clients/tests/test-client.check-on-disk/Makefile.am @@ -152,4 +152,29 @@ clients_tests_expected_files = \ clients/tests/test-client.check-on-disk/test_004-007.expected \ clients/tests/test-client.check-on-disk/test_004-008.expected \ clients/tests/test-client.check-on-disk/test_004-009.expected \ + clients/tests/test-client.check-on-disk/test_004-010.expected \ + clients/tests/test-client.check-on-disk/test_004-011.expected \ + clients/tests/test-client.check-on-disk/test_004-012.expected \ + clients/tests/test-client.check-on-disk/test_004-013.expected \ + clients/tests/test-client.check-on-disk/test_004-014.expected \ + clients/tests/test-client.check-on-disk/test_004-015.expected \ + clients/tests/test-client.check-on-disk/test_004-016.expected \ + clients/tests/test-client.check-on-disk/test_004-017.expected \ + clients/tests/test-client.check-on-disk/test_004-018.expected \ + clients/tests/test-client.check-on-disk/test_004-019.expected \ + clients/tests/test-client.check-on-disk/test_004-020.expected \ + clients/tests/test-client.check-on-disk/test_004-021.expected \ + clients/tests/test-client.check-on-disk/test_004-022.expected \ + clients/tests/test-client.check-on-disk/test_004-023.expected \ + clients/tests/test-client.check-on-disk/test_004-024.expected \ + clients/tests/test-client.check-on-disk/test_004-025.expected \ + clients/tests/test-client.check-on-disk/test_004-026.expected \ + clients/tests/test-client.check-on-disk/test_004-027.expected \ + clients/tests/test-client.check-on-disk/test_004-028.expected \ + clients/tests/test-client.check-on-disk/test_004-029.expected \ + clients/tests/test-client.check-on-disk/test_004-030.expected \ + clients/tests/test-client.check-on-disk/test_004-031.expected \ + clients/tests/test-client.check-on-disk/test_004-032.expected \ + clients/tests/test-client.check-on-disk/test_004-033.expected \ + clients/tests/test-client.check-on-disk/test_004-034.expected \ $(NULL) diff --git a/clients/tests/test-client.check-on-disk/test_004-010.expected b/clients/tests/test-client.check-on-disk/test_004-010.expected new file mode 100644 index 0000000000..9d5f359b28 --- /dev/null +++ b/clients/tests/test-client.check-on-disk/test_004-010.expected @@ -0,0 +1,13 @@ +location: clients/tests/test-client.py:830:test_004()/10 +cmd: $NMCLI connection add type vpn con-name con-vpn-1 ifname '*' vpn-type openvpn vpn.data 'key1 = val1, key2 = val2, key3=val3' +lang: C +returncode: 0 +stdout: 82 bytes +>>> +Connection 'con-vpn-1' (UUID-con-vpn-1-REPLACED-REPLACED-REP) successfully added. + +<<< +stderr: 0 bytes +>>> + +<<< diff --git a/clients/tests/test-client.check-on-disk/test_004-011.expected b/clients/tests/test-client.check-on-disk/test_004-011.expected new file mode 100644 index 0000000000..1171481561 --- /dev/null +++ b/clients/tests/test-client.check-on-disk/test_004-011.expected @@ -0,0 +1,16 @@ +location: clients/tests/test-client.py:833:test_004()/11 +cmd: $NMCLI con s +lang: C +returncode: 0 +stdout: 268 bytes +>>> +NAME UUID TYPE DEVICE +con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet -- +con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP vpn -- +con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA wifi -- + +<<< +stderr: 0 bytes +>>> + +<<< diff --git a/clients/tests/test-client.check-on-disk/test_004-012.expected b/clients/tests/test-client.check-on-disk/test_004-012.expected new file mode 100644 index 0000000000..260a6b1a89 --- /dev/null +++ b/clients/tests/test-client.check-on-disk/test_004-012.expected @@ -0,0 +1,16 @@ +location: clients/tests/test-client.py:833:test_004()/12 +cmd: $NMCLI con s +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 268 bytes +>>> +NAME UUID TYPE DEVICE +con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet -- +con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP vpn -- +con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA wifi -- + +<<< +stderr: 0 bytes +>>> + +<<< diff --git a/clients/tests/test-client.check-on-disk/test_004-013.expected b/clients/tests/test-client.check-on-disk/test_004-013.expected new file mode 100644 index 0000000000..b2fad08bd4 --- /dev/null +++ b/clients/tests/test-client.check-on-disk/test_004-013.expected @@ -0,0 +1,82 @@ +location: clients/tests/test-client.py:835:test_004()/13 +cmd: $NMCLI con s con-vpn-1 +lang: C +returncode: 0 +stdout: 3231 bytes +>>> +connection.id: con-vpn-1 +connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP +connection.stable-id: -- +connection.type: vpn +connection.interface-name: -- +connection.autoconnect: yes +connection.autoconnect-priority: 0 +connection.autoconnect-retries: -1 (default) +connection.auth-retries: -1 +connection.timestamp: 0 +connection.read-only: no +connection.permissions: -- +connection.zone: -- +connection.master: -- +connection.slave-type: -- +connection.autoconnect-slaves: -1 (default) +connection.secondaries: -- +connection.gateway-ping-timeout: 0 +connection.metered: unknown +connection.lldp: default +connection.mdns: -1 (default) +ipv4.method: auto +ipv4.dns: -- +ipv4.dns-search: -- +ipv4.dns-options: "" +ipv4.dns-priority: 0 +ipv4.addresses: -- +ipv4.gateway: -- +ipv4.routes: -- +ipv4.route-metric: -1 +ipv4.route-table: 0 (unspec) +ipv4.ignore-auto-routes: no +ipv4.ignore-auto-dns: no +ipv4.dhcp-client-id: -- +ipv4.dhcp-timeout: 0 (default) +ipv4.dhcp-send-hostname: yes +ipv4.dhcp-hostname: -- +ipv4.dhcp-fqdn: -- +ipv4.never-default: no +ipv4.may-fail: yes +ipv4.dad-timeout: -1 (default) +ipv6.method: auto +ipv6.dns: -- +ipv6.dns-search: -- +ipv6.dns-options: "" +ipv6.dns-priority: 0 +ipv6.addresses: -- +ipv6.gateway: -- +ipv6.routes: -- +ipv6.route-metric: -1 +ipv6.route-table: 0 (unspec) +ipv6.ignore-auto-routes: no +ipv6.ignore-auto-dns: no +ipv6.never-default: no +ipv6.may-fail: yes +ipv6.ip6-privacy: -1 (unknown) +ipv6.addr-gen-mode: stable-privacy +ipv6.dhcp-send-hostname: yes +ipv6.dhcp-hostname: -- +ipv6.token: -- +vpn.service-type: org.freedesktop.NetworkManager.openvpn +vpn.user-name: -- +vpn.data: key1 = val1, key2 = val2, key3 = val3 +vpn.secrets: +vpn.persistent: no +vpn.timeout: 0 +proxy.method: none +proxy.browser-only: no +proxy.pac-url: -- +proxy.pac-script: -- + +<<< +stderr: 0 bytes +>>> + +<<< diff --git a/clients/tests/test-client.check-on-disk/test_004-014.expected b/clients/tests/test-client.check-on-disk/test_004-014.expected new file mode 100644 index 0000000000..8ad3eb0350 --- /dev/null +++ b/clients/tests/test-client.check-on-disk/test_004-014.expected @@ -0,0 +1,82 @@ +location: clients/tests/test-client.py:835:test_004()/14 +cmd: $NMCLI con s con-vpn-1 +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 3241 bytes +>>> +connection.id: con-vpn-1 +connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP +connection.stable-id: -- +connection.type: vpn +connection.interface-name: -- +connection.autoconnect: tak +connection.autoconnect-priority: 0 +connection.autoconnect-retries: -1 (default) +connection.auth-retries: -1 +connection.timestamp: 0 +connection.read-only: nie +connection.permissions: -- +connection.zone: -- +connection.master: -- +connection.slave-type: -- +connection.autoconnect-slaves: -1 (default) +connection.secondaries: -- +connection.gateway-ping-timeout: 0 +connection.metered: nieznane +connection.lldp: default +connection.mdns: -1 (default) +ipv4.method: auto +ipv4.dns: -- +ipv4.dns-search: -- +ipv4.dns-options: "" +ipv4.dns-priority: 0 +ipv4.addresses: -- +ipv4.gateway: -- +ipv4.routes: -- +ipv4.route-metric: -1 +ipv4.route-table: 0 (unspec) +ipv4.ignore-auto-routes: nie +ipv4.ignore-auto-dns: nie +ipv4.dhcp-client-id: -- +ipv4.dhcp-timeout: 0 (default) +ipv4.dhcp-send-hostname: tak +ipv4.dhcp-hostname: -- +ipv4.dhcp-fqdn: -- +ipv4.never-default: nie +ipv4.may-fail: tak +ipv4.dad-timeout: -1 (default) +ipv6.method: auto +ipv6.dns: -- +ipv6.dns-search: -- +ipv6.dns-options: "" +ipv6.dns-priority: 0 +ipv6.addresses: -- +ipv6.gateway: -- +ipv6.routes: -- +ipv6.route-metric: -1 +ipv6.route-table: 0 (unspec) +ipv6.ignore-auto-routes: nie +ipv6.ignore-auto-dns: nie +ipv6.never-default: nie +ipv6.may-fail: tak +ipv6.ip6-privacy: -1 (unknown) +ipv6.addr-gen-mode: stable-privacy +ipv6.dhcp-send-hostname: tak +ipv6.dhcp-hostname: -- +ipv6.token: -- +vpn.service-type: org.freedesktop.NetworkManager.openvpn +vpn.user-name: -- +vpn.data: key1 = val1, key2 = val2, key3 = val3 +vpn.secrets: +vpn.persistent: nie +vpn.timeout: 0 +proxy.method: none +proxy.browser-only: nie +proxy.pac-url: -- +proxy.pac-script: -- + +<<< +stderr: 0 bytes +>>> + +<<< diff --git a/clients/tests/test-client.check-on-disk/test_004-015.expected b/clients/tests/test-client.check-on-disk/test_004-015.expected new file mode 100644 index 0000000000..fef0327908 --- /dev/null +++ b/clients/tests/test-client.check-on-disk/test_004-015.expected @@ -0,0 +1,13 @@ +location: clients/tests/test-client.py:837:test_004()/15 +cmd: $NMCLI con up con-xx1 +lang: C +returncode: 0 +stdout: 106 bytes +>>> +Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/1) + +<<< +stderr: 0 bytes +>>> + +<<< diff --git a/clients/tests/test-client.check-on-disk/test_004-016.expected b/clients/tests/test-client.check-on-disk/test_004-016.expected new file mode 100644 index 0000000000..b9833e5d64 --- /dev/null +++ b/clients/tests/test-client.check-on-disk/test_004-016.expected @@ -0,0 +1,16 @@ +location: clients/tests/test-client.py:839:test_004()/16 +cmd: $NMCLI con s +lang: C +returncode: 0 +stdout: 268 bytes +>>> +NAME UUID TYPE DEVICE +con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA wifi wlan0 +con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet -- +con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP vpn -- + +<<< +stderr: 0 bytes +>>> + +<<< diff --git a/clients/tests/test-client.check-on-disk/test_004-017.expected b/clients/tests/test-client.check-on-disk/test_004-017.expected new file mode 100644 index 0000000000..a6fc1bb954 --- /dev/null +++ b/clients/tests/test-client.check-on-disk/test_004-017.expected @@ -0,0 +1,16 @@ +location: clients/tests/test-client.py:839:test_004()/17 +cmd: $NMCLI con s +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 268 bytes +>>> +NAME UUID TYPE DEVICE +con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA wifi wlan0 +con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet -- +con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP vpn -- + +<<< +stderr: 0 bytes +>>> + +<<< diff --git a/clients/tests/test-client.check-on-disk/test_004-018.expected b/clients/tests/test-client.check-on-disk/test_004-018.expected new file mode 100644 index 0000000000..4dcb7dc478 --- /dev/null +++ b/clients/tests/test-client.check-on-disk/test_004-018.expected @@ -0,0 +1,13 @@ +location: clients/tests/test-client.py:841:test_004()/18 +cmd: $NMCLI con up con-vpn-1 +lang: C +returncode: 0 +stdout: 106 bytes +>>> +Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2) + +<<< +stderr: 0 bytes +>>> + +<<< diff --git a/clients/tests/test-client.check-on-disk/test_004-019.expected b/clients/tests/test-client.check-on-disk/test_004-019.expected new file mode 100644 index 0000000000..f83c64d5ff --- /dev/null +++ b/clients/tests/test-client.check-on-disk/test_004-019.expected @@ -0,0 +1,16 @@ +location: clients/tests/test-client.py:843:test_004()/19 +cmd: $NMCLI con s +lang: C +returncode: 0 +stdout: 268 bytes +>>> +NAME UUID TYPE DEVICE +con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP vpn wlan0 +con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA wifi wlan0 +con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet -- + +<<< +stderr: 0 bytes +>>> + +<<< diff --git a/clients/tests/test-client.check-on-disk/test_004-020.expected b/clients/tests/test-client.check-on-disk/test_004-020.expected new file mode 100644 index 0000000000..3c3b3bdf6d --- /dev/null +++ b/clients/tests/test-client.check-on-disk/test_004-020.expected @@ -0,0 +1,16 @@ +location: clients/tests/test-client.py:843:test_004()/20 +cmd: $NMCLI con s +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 268 bytes +>>> +NAME UUID TYPE DEVICE +con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP vpn wlan0 +con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA wifi wlan0 +con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet -- + +<<< +stderr: 0 bytes +>>> + +<<< diff --git a/clients/tests/test-client.check-on-disk/test_004-021.expected b/clients/tests/test-client.check-on-disk/test_004-021.expected new file mode 100644 index 0000000000..5ae414a111 --- /dev/null +++ b/clients/tests/test-client.check-on-disk/test_004-021.expected @@ -0,0 +1,102 @@ +location: clients/tests/test-client.py:845:test_004()/21 +cmd: $NMCLI con s con-vpn-1 +lang: C +returncode: 0 +stdout: 4283 bytes +>>> +connection.id: con-vpn-1 +connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP +connection.stable-id: -- +connection.type: vpn +connection.interface-name: -- +connection.autoconnect: yes +connection.autoconnect-priority: 0 +connection.autoconnect-retries: -1 (default) +connection.auth-retries: -1 +connection.timestamp: 0 +connection.read-only: no +connection.permissions: -- +connection.zone: -- +connection.master: -- +connection.slave-type: -- +connection.autoconnect-slaves: -1 (default) +connection.secondaries: -- +connection.gateway-ping-timeout: 0 +connection.metered: unknown +connection.lldp: default +connection.mdns: -1 (default) +ipv4.method: auto +ipv4.dns: -- +ipv4.dns-search: -- +ipv4.dns-options: "" +ipv4.dns-priority: 0 +ipv4.addresses: -- +ipv4.gateway: -- +ipv4.routes: -- +ipv4.route-metric: -1 +ipv4.route-table: 0 (unspec) +ipv4.ignore-auto-routes: no +ipv4.ignore-auto-dns: no +ipv4.dhcp-client-id: -- +ipv4.dhcp-timeout: 0 (default) +ipv4.dhcp-send-hostname: yes +ipv4.dhcp-hostname: -- +ipv4.dhcp-fqdn: -- +ipv4.never-default: no +ipv4.may-fail: yes +ipv4.dad-timeout: -1 (default) +ipv6.method: auto +ipv6.dns: -- +ipv6.dns-search: -- +ipv6.dns-options: "" +ipv6.dns-priority: 0 +ipv6.addresses: -- +ipv6.gateway: -- +ipv6.routes: -- +ipv6.route-metric: -1 +ipv6.route-table: 0 (unspec) +ipv6.ignore-auto-routes: no +ipv6.ignore-auto-dns: no +ipv6.never-default: no +ipv6.may-fail: yes +ipv6.ip6-privacy: -1 (unknown) +ipv6.addr-gen-mode: stable-privacy +ipv6.dhcp-send-hostname: yes +ipv6.dhcp-hostname: -- +ipv6.token: -- +vpn.service-type: org.freedesktop.NetworkManager.openvpn +vpn.user-name: -- +vpn.data: key1 = val1, key2 = val2, key3 = val3 +vpn.secrets: +vpn.persistent: no +vpn.timeout: 0 +proxy.method: none +proxy.browser-only: no +proxy.pac-url: -- +proxy.pac-script: -- +GENERAL.NAME: con-vpn-1 +GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP +GENERAL.DEVICES: wlan0 +GENERAL.STATE: activated +GENERAL.DEFAULT: no +GENERAL.DEFAULT6: no +GENERAL.SPEC-OBJECT: -- +GENERAL.VPN: yes +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2 +GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/Connection/3 +GENERAL.ZONE: -- +GENERAL.MASTER-PATH: -- +VPN.TYPE: openvpn +VPN.USERNAME: -- +VPN.GATEWAY: -- +VPN.BANNER: -- +VPN.VPN-STATE: 0 - unknown +VPN.CFG[1]: key1 = val1 +VPN.CFG[2]: key2 = val2 +VPN.CFG[3]: key3 = val3 + +<<< +stderr: 0 bytes +>>> + +<<< diff --git a/clients/tests/test-client.check-on-disk/test_004-022.expected b/clients/tests/test-client.check-on-disk/test_004-022.expected new file mode 100644 index 0000000000..6921761f5f --- /dev/null +++ b/clients/tests/test-client.check-on-disk/test_004-022.expected @@ -0,0 +1,102 @@ +location: clients/tests/test-client.py:845:test_004()/22 +cmd: $NMCLI con s con-vpn-1 +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 4297 bytes +>>> +connection.id: con-vpn-1 +connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP +connection.stable-id: -- +connection.type: vpn +connection.interface-name: -- +connection.autoconnect: tak +connection.autoconnect-priority: 0 +connection.autoconnect-retries: -1 (default) +connection.auth-retries: -1 +connection.timestamp: 0 +connection.read-only: nie +connection.permissions: -- +connection.zone: -- +connection.master: -- +connection.slave-type: -- +connection.autoconnect-slaves: -1 (default) +connection.secondaries: -- +connection.gateway-ping-timeout: 0 +connection.metered: nieznane +connection.lldp: default +connection.mdns: -1 (default) +ipv4.method: auto +ipv4.dns: -- +ipv4.dns-search: -- +ipv4.dns-options: "" +ipv4.dns-priority: 0 +ipv4.addresses: -- +ipv4.gateway: -- +ipv4.routes: -- +ipv4.route-metric: -1 +ipv4.route-table: 0 (unspec) +ipv4.ignore-auto-routes: nie +ipv4.ignore-auto-dns: nie +ipv4.dhcp-client-id: -- +ipv4.dhcp-timeout: 0 (default) +ipv4.dhcp-send-hostname: tak +ipv4.dhcp-hostname: -- +ipv4.dhcp-fqdn: -- +ipv4.never-default: nie +ipv4.may-fail: tak +ipv4.dad-timeout: -1 (default) +ipv6.method: auto +ipv6.dns: -- +ipv6.dns-search: -- +ipv6.dns-options: "" +ipv6.dns-priority: 0 +ipv6.addresses: -- +ipv6.gateway: -- +ipv6.routes: -- +ipv6.route-metric: -1 +ipv6.route-table: 0 (unspec) +ipv6.ignore-auto-routes: nie +ipv6.ignore-auto-dns: nie +ipv6.never-default: nie +ipv6.may-fail: tak +ipv6.ip6-privacy: -1 (unknown) +ipv6.addr-gen-mode: stable-privacy +ipv6.dhcp-send-hostname: tak +ipv6.dhcp-hostname: -- +ipv6.token: -- +vpn.service-type: org.freedesktop.NetworkManager.openvpn +vpn.user-name: -- +vpn.data: key1 = val1, key2 = val2, key3 = val3 +vpn.secrets: +vpn.persistent: nie +vpn.timeout: 0 +proxy.method: none +proxy.browser-only: nie +proxy.pac-url: -- +proxy.pac-script: -- +GENERAL.NAME: con-vpn-1 +GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP +GENERAL.DEVICES: wlan0 +GENERAL.STATE: aktywowano +GENERAL.DEFAULT: nie +GENERAL.DEFAULT6: nie +GENERAL.SPEC-OBJECT: -- +GENERAL.VPN: tak +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2 +GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/Connection/3 +GENERAL.ZONE: -- +GENERAL.MASTER-PATH: -- +VPN.TYPE: openvpn +VPN.USERNAME: -- +VPN.GATEWAY: -- +VPN.BANNER: -- +VPN.VPN-STATE: 0 - nieznane +VPN.CFG[1]: key1 = val1 +VPN.CFG[2]: key2 = val2 +VPN.CFG[3]: key3 = val3 + +<<< +stderr: 0 bytes +>>> + +<<< diff --git a/clients/tests/test-client.check-on-disk/test_004-023.expected b/clients/tests/test-client.check-on-disk/test_004-023.expected new file mode 100644 index 0000000000..cf49305a88 --- /dev/null +++ b/clients/tests/test-client.check-on-disk/test_004-023.expected @@ -0,0 +1,102 @@ +location: clients/tests/test-client.py:854:test_004()/23 +cmd: $NMCLI con s con-vpn-1 +lang: C +returncode: 0 +stdout: 4319 bytes +>>> +connection.id: con-vpn-1 +connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP +connection.stable-id: -- +connection.type: vpn +connection.interface-name: -- +connection.autoconnect: yes +connection.autoconnect-priority: 0 +connection.autoconnect-retries: -1 (default) +connection.auth-retries: -1 +connection.timestamp: 0 +connection.read-only: no +connection.permissions: -- +connection.zone: -- +connection.master: -- +connection.slave-type: -- +connection.autoconnect-slaves: -1 (default) +connection.secondaries: -- +connection.gateway-ping-timeout: 0 +connection.metered: unknown +connection.lldp: default +connection.mdns: -1 (default) +ipv4.method: auto +ipv4.dns: -- +ipv4.dns-search: -- +ipv4.dns-options: "" +ipv4.dns-priority: 0 +ipv4.addresses: -- +ipv4.gateway: -- +ipv4.routes: -- +ipv4.route-metric: -1 +ipv4.route-table: 0 (unspec) +ipv4.ignore-auto-routes: no +ipv4.ignore-auto-dns: no +ipv4.dhcp-client-id: -- +ipv4.dhcp-timeout: 0 (default) +ipv4.dhcp-send-hostname: yes +ipv4.dhcp-hostname: -- +ipv4.dhcp-fqdn: -- +ipv4.never-default: no +ipv4.may-fail: yes +ipv4.dad-timeout: -1 (default) +ipv6.method: auto +ipv6.dns: -- +ipv6.dns-search: -- +ipv6.dns-options: "" +ipv6.dns-priority: 0 +ipv6.addresses: -- +ipv6.gateway: -- +ipv6.routes: -- +ipv6.route-metric: -1 +ipv6.route-table: 0 (unspec) +ipv6.ignore-auto-routes: no +ipv6.ignore-auto-dns: no +ipv6.never-default: no +ipv6.may-fail: yes +ipv6.ip6-privacy: -1 (unknown) +ipv6.addr-gen-mode: stable-privacy +ipv6.dhcp-send-hostname: yes +ipv6.dhcp-hostname: -- +ipv6.token: -- +vpn.service-type: org.freedesktop.NetworkManager.openvpn +vpn.user-name: -- +vpn.data: key1 = val1, key2 = val2, key3 = val3 +vpn.secrets: +vpn.persistent: no +vpn.timeout: 0 +proxy.method: none +proxy.browser-only: no +proxy.pac-url: -- +proxy.pac-script: -- +GENERAL.NAME: con-vpn-1 +GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP +GENERAL.DEVICES: wlan0 +GENERAL.STATE: activated +GENERAL.DEFAULT: no +GENERAL.DEFAULT6: no +GENERAL.SPEC-OBJECT: -- +GENERAL.VPN: yes +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2 +GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/Connection/3 +GENERAL.ZONE: -- +GENERAL.MASTER-PATH: -- +VPN.TYPE: openvpn +VPN.USERNAME: -- +VPN.GATEWAY: -- +VPN.BANNER: *** VPN connection con-vpn-1 *** +VPN.VPN-STATE: 5 - VPN connected +VPN.CFG[1]: key1 = val1 +VPN.CFG[2]: key2 = val2 +VPN.CFG[3]: key3 = val3 + +<<< +stderr: 0 bytes +>>> + +<<< diff --git a/clients/tests/test-client.check-on-disk/test_004-024.expected b/clients/tests/test-client.check-on-disk/test_004-024.expected new file mode 100644 index 0000000000..b901fe23d1 --- /dev/null +++ b/clients/tests/test-client.check-on-disk/test_004-024.expected @@ -0,0 +1,102 @@ +location: clients/tests/test-client.py:854:test_004()/24 +cmd: $NMCLI con s con-vpn-1 +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 4337 bytes +>>> +connection.id: con-vpn-1 +connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP +connection.stable-id: -- +connection.type: vpn +connection.interface-name: -- +connection.autoconnect: tak +connection.autoconnect-priority: 0 +connection.autoconnect-retries: -1 (default) +connection.auth-retries: -1 +connection.timestamp: 0 +connection.read-only: nie +connection.permissions: -- +connection.zone: -- +connection.master: -- +connection.slave-type: -- +connection.autoconnect-slaves: -1 (default) +connection.secondaries: -- +connection.gateway-ping-timeout: 0 +connection.metered: nieznane +connection.lldp: default +connection.mdns: -1 (default) +ipv4.method: auto +ipv4.dns: -- +ipv4.dns-search: -- +ipv4.dns-options: "" +ipv4.dns-priority: 0 +ipv4.addresses: -- +ipv4.gateway: -- +ipv4.routes: -- +ipv4.route-metric: -1 +ipv4.route-table: 0 (unspec) +ipv4.ignore-auto-routes: nie +ipv4.ignore-auto-dns: nie +ipv4.dhcp-client-id: -- +ipv4.dhcp-timeout: 0 (default) +ipv4.dhcp-send-hostname: tak +ipv4.dhcp-hostname: -- +ipv4.dhcp-fqdn: -- +ipv4.never-default: nie +ipv4.may-fail: tak +ipv4.dad-timeout: -1 (default) +ipv6.method: auto +ipv6.dns: -- +ipv6.dns-search: -- +ipv6.dns-options: "" +ipv6.dns-priority: 0 +ipv6.addresses: -- +ipv6.gateway: -- +ipv6.routes: -- +ipv6.route-metric: -1 +ipv6.route-table: 0 (unspec) +ipv6.ignore-auto-routes: nie +ipv6.ignore-auto-dns: nie +ipv6.never-default: nie +ipv6.may-fail: tak +ipv6.ip6-privacy: -1 (unknown) +ipv6.addr-gen-mode: stable-privacy +ipv6.dhcp-send-hostname: tak +ipv6.dhcp-hostname: -- +ipv6.token: -- +vpn.service-type: org.freedesktop.NetworkManager.openvpn +vpn.user-name: -- +vpn.data: key1 = val1, key2 = val2, key3 = val3 +vpn.secrets: +vpn.persistent: nie +vpn.timeout: 0 +proxy.method: none +proxy.browser-only: nie +proxy.pac-url: -- +proxy.pac-script: -- +GENERAL.NAME: con-vpn-1 +GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP +GENERAL.DEVICES: wlan0 +GENERAL.STATE: aktywowano +GENERAL.DEFAULT: nie +GENERAL.DEFAULT6: nie +GENERAL.SPEC-OBJECT: -- +GENERAL.VPN: tak +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2 +GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/Connection/3 +GENERAL.ZONE: -- +GENERAL.MASTER-PATH: -- +VPN.TYPE: openvpn +VPN.USERNAME: -- +VPN.GATEWAY: -- +VPN.BANNER: *** VPN connection con-vpn-1 *** +VPN.VPN-STATE: 5 - Połączono z VPN +VPN.CFG[1]: key1 = val1 +VPN.CFG[2]: key2 = val2 +VPN.CFG[3]: key3 = val3 + +<<< +stderr: 0 bytes +>>> + +<<< diff --git a/clients/tests/test-client.check-on-disk/test_004-025.expected b/clients/tests/test-client.check-on-disk/test_004-025.expected new file mode 100644 index 0000000000..3ec1c5a44d --- /dev/null +++ b/clients/tests/test-client.check-on-disk/test_004-025.expected @@ -0,0 +1,82 @@ +location: clients/tests/test-client.py:857:test_004()/25 +cmd: $NMCLI -f ALL con s con-vpn-1 +lang: C +returncode: 0 +stdout: 3231 bytes +>>> +connection.id: con-vpn-1 +connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP +connection.stable-id: -- +connection.type: vpn +connection.interface-name: -- +connection.autoconnect: yes +connection.autoconnect-priority: 0 +connection.autoconnect-retries: -1 (default) +connection.auth-retries: -1 +connection.timestamp: 0 +connection.read-only: no +connection.permissions: -- +connection.zone: -- +connection.master: -- +connection.slave-type: -- +connection.autoconnect-slaves: -1 (default) +connection.secondaries: -- +connection.gateway-ping-timeout: 0 +connection.metered: unknown +connection.lldp: default +connection.mdns: -1 (default) +ipv4.method: auto +ipv4.dns: -- +ipv4.dns-search: -- +ipv4.dns-options: "" +ipv4.dns-priority: 0 +ipv4.addresses: -- +ipv4.gateway: -- +ipv4.routes: -- +ipv4.route-metric: -1 +ipv4.route-table: 0 (unspec) +ipv4.ignore-auto-routes: no +ipv4.ignore-auto-dns: no +ipv4.dhcp-client-id: -- +ipv4.dhcp-timeout: 0 (default) +ipv4.dhcp-send-hostname: yes +ipv4.dhcp-hostname: -- +ipv4.dhcp-fqdn: -- +ipv4.never-default: no +ipv4.may-fail: yes +ipv4.dad-timeout: -1 (default) +ipv6.method: auto +ipv6.dns: -- +ipv6.dns-search: -- +ipv6.dns-options: "" +ipv6.dns-priority: 0 +ipv6.addresses: -- +ipv6.gateway: -- +ipv6.routes: -- +ipv6.route-metric: -1 +ipv6.route-table: 0 (unspec) +ipv6.ignore-auto-routes: no +ipv6.ignore-auto-dns: no +ipv6.never-default: no +ipv6.may-fail: yes +ipv6.ip6-privacy: -1 (unknown) +ipv6.addr-gen-mode: stable-privacy +ipv6.dhcp-send-hostname: yes +ipv6.dhcp-hostname: -- +ipv6.token: -- +vpn.service-type: org.freedesktop.NetworkManager.openvpn +vpn.user-name: -- +vpn.data: key1 = val1, key2 = val2, key3 = val3 +vpn.secrets: +vpn.persistent: no +vpn.timeout: 0 +proxy.method: none +proxy.browser-only: no +proxy.pac-url: -- +proxy.pac-script: -- + +<<< +stderr: 0 bytes +>>> + +<<< diff --git a/clients/tests/test-client.check-on-disk/test_004-026.expected b/clients/tests/test-client.check-on-disk/test_004-026.expected new file mode 100644 index 0000000000..8409fb7a5f --- /dev/null +++ b/clients/tests/test-client.check-on-disk/test_004-026.expected @@ -0,0 +1,82 @@ +location: clients/tests/test-client.py:857:test_004()/26 +cmd: $NMCLI -f ALL con s con-vpn-1 +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 3241 bytes +>>> +connection.id: con-vpn-1 +connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP +connection.stable-id: -- +connection.type: vpn +connection.interface-name: -- +connection.autoconnect: tak +connection.autoconnect-priority: 0 +connection.autoconnect-retries: -1 (default) +connection.auth-retries: -1 +connection.timestamp: 0 +connection.read-only: nie +connection.permissions: -- +connection.zone: -- +connection.master: -- +connection.slave-type: -- +connection.autoconnect-slaves: -1 (default) +connection.secondaries: -- +connection.gateway-ping-timeout: 0 +connection.metered: nieznane +connection.lldp: default +connection.mdns: -1 (default) +ipv4.method: auto +ipv4.dns: -- +ipv4.dns-search: -- +ipv4.dns-options: "" +ipv4.dns-priority: 0 +ipv4.addresses: -- +ipv4.gateway: -- +ipv4.routes: -- +ipv4.route-metric: -1 +ipv4.route-table: 0 (unspec) +ipv4.ignore-auto-routes: nie +ipv4.ignore-auto-dns: nie +ipv4.dhcp-client-id: -- +ipv4.dhcp-timeout: 0 (default) +ipv4.dhcp-send-hostname: tak +ipv4.dhcp-hostname: -- +ipv4.dhcp-fqdn: -- +ipv4.never-default: nie +ipv4.may-fail: tak +ipv4.dad-timeout: -1 (default) +ipv6.method: auto +ipv6.dns: -- +ipv6.dns-search: -- +ipv6.dns-options: "" +ipv6.dns-priority: 0 +ipv6.addresses: -- +ipv6.gateway: -- +ipv6.routes: -- +ipv6.route-metric: -1 +ipv6.route-table: 0 (unspec) +ipv6.ignore-auto-routes: nie +ipv6.ignore-auto-dns: nie +ipv6.never-default: nie +ipv6.may-fail: tak +ipv6.ip6-privacy: -1 (unknown) +ipv6.addr-gen-mode: stable-privacy +ipv6.dhcp-send-hostname: tak +ipv6.dhcp-hostname: -- +ipv6.token: -- +vpn.service-type: org.freedesktop.NetworkManager.openvpn +vpn.user-name: -- +vpn.data: key1 = val1, key2 = val2, key3 = val3 +vpn.secrets: +vpn.persistent: nie +vpn.timeout: 0 +proxy.method: none +proxy.browser-only: nie +proxy.pac-url: -- +proxy.pac-script: -- + +<<< +stderr: 0 bytes +>>> + +<<< diff --git a/clients/tests/test-client.check-on-disk/test_004-027.expected b/clients/tests/test-client.check-on-disk/test_004-027.expected new file mode 100644 index 0000000000..8f16f02420 --- /dev/null +++ b/clients/tests/test-client.check-on-disk/test_004-027.expected @@ -0,0 +1,18 @@ +location: clients/tests/test-client.py:863:test_004()/27 +cmd: $NMCLI -f VPN con s con-vpn-1 +lang: C +returncode: 0 +stdout: 334 bytes +>>> +vpn.service-type: org.freedesktop.NetworkManager.openvpn +vpn.user-name: -- +vpn.data: key1 = val1, key2 = val2, key3 = val3 +vpn.secrets: +vpn.persistent: no +vpn.timeout: 0 + +<<< +stderr: 0 bytes +>>> + +<<< diff --git a/clients/tests/test-client.check-on-disk/test_004-028.expected b/clients/tests/test-client.check-on-disk/test_004-028.expected new file mode 100644 index 0000000000..4e8f78eedb --- /dev/null +++ b/clients/tests/test-client.check-on-disk/test_004-028.expected @@ -0,0 +1,18 @@ +location: clients/tests/test-client.py:863:test_004()/28 +cmd: $NMCLI -f VPN con s con-vpn-1 +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 335 bytes +>>> +vpn.service-type: org.freedesktop.NetworkManager.openvpn +vpn.user-name: -- +vpn.data: key1 = val1, key2 = val2, key3 = val3 +vpn.secrets: +vpn.persistent: nie +vpn.timeout: 0 + +<<< +stderr: 0 bytes +>>> + +<<< diff --git a/clients/tests/test-client.check-on-disk/test_004-029.expected b/clients/tests/test-client.check-on-disk/test_004-029.expected new file mode 100644 index 0000000000..2c81c0e9d2 --- /dev/null +++ b/clients/tests/test-client.check-on-disk/test_004-029.expected @@ -0,0 +1,24 @@ +location: clients/tests/test-client.py:866:test_004()/29 +cmd: $NMCLI -f GENERAL con s con-vpn-1 +lang: C +returncode: 0 +stdout: 667 bytes +>>> +GENERAL.NAME: con-vpn-1 +GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP +GENERAL.DEVICES: wlan0 +GENERAL.STATE: activated +GENERAL.DEFAULT: no +GENERAL.DEFAULT6: no +GENERAL.SPEC-OBJECT: -- +GENERAL.VPN: yes +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2 +GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/Connection/3 +GENERAL.ZONE: -- +GENERAL.MASTER-PATH: -- + +<<< +stderr: 0 bytes +>>> + +<<< diff --git a/clients/tests/test-client.check-on-disk/test_004-030.expected b/clients/tests/test-client.check-on-disk/test_004-030.expected new file mode 100644 index 0000000000..9e31d58b17 --- /dev/null +++ b/clients/tests/test-client.check-on-disk/test_004-030.expected @@ -0,0 +1,24 @@ +location: clients/tests/test-client.py:866:test_004()/30 +cmd: $NMCLI -f GENERAL con s con-vpn-1 +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 670 bytes +>>> +GENERAL.NAME: con-vpn-1 +GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP +GENERAL.DEVICES: wlan0 +GENERAL.STATE: aktywowano +GENERAL.DEFAULT: nie +GENERAL.DEFAULT6: nie +GENERAL.SPEC-OBJECT: -- +GENERAL.VPN: tak +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2 +GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/Connection/3 +GENERAL.ZONE: -- +GENERAL.MASTER-PATH: -- + +<<< +stderr: 0 bytes +>>> + +<<< diff --git a/clients/tests/test-client.check-on-disk/test_004-031.expected b/clients/tests/test-client.check-on-disk/test_004-031.expected new file mode 100644 index 0000000000..04e137af64 --- /dev/null +++ b/clients/tests/test-client.check-on-disk/test_004-031.expected @@ -0,0 +1,19 @@ +location: clients/tests/test-client.py:869:test_004()/31 +cmd: $NMCLI dev show wlan0 +lang: C +returncode: 0 +stdout: 389 bytes +>>> +GENERAL.DEVICE: wlan0 +GENERAL.TYPE: wifi +GENERAL.HWADDR: 5A:88:5E:B6:90:40 +GENERAL.MTU: 0 +GENERAL.STATE: 20 (unavailable) +GENERAL.CONNECTION: con-vpn-1 +GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2 + +<<< +stderr: 0 bytes +>>> + +<<< diff --git a/clients/tests/test-client.check-on-disk/test_004-032.expected b/clients/tests/test-client.check-on-disk/test_004-032.expected new file mode 100644 index 0000000000..6521a34569 --- /dev/null +++ b/clients/tests/test-client.check-on-disk/test_004-032.expected @@ -0,0 +1,19 @@ +location: clients/tests/test-client.py:869:test_004()/32 +cmd: $NMCLI dev show wlan0 +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 390 bytes +>>> +GENERAL.DEVICE: wlan0 +GENERAL.TYPE: wifi +GENERAL.HWADDR: 5A:88:5E:B6:90:40 +GENERAL.MTU: 0 +GENERAL.STATE: 20 (niedostępne) +GENERAL.CONNECTION: con-vpn-1 +GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2 + +<<< +stderr: 0 bytes +>>> + +<<< diff --git a/clients/tests/test-client.check-on-disk/test_004-033.expected b/clients/tests/test-client.check-on-disk/test_004-033.expected new file mode 100644 index 0000000000..95a96d7603 --- /dev/null +++ b/clients/tests/test-client.check-on-disk/test_004-033.expected @@ -0,0 +1,74 @@ +location: clients/tests/test-client.py:872:test_004()/33 +cmd: $NMCLI -f all dev show wlan0 +lang: C +returncode: 0 +stdout: 2948 bytes +>>> +GENERAL.DEVICE: wlan0 +GENERAL.TYPE: wifi +GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.VENDOR: -- +GENERAL.PRODUCT: -- +GENERAL.DRIVER: virtual +GENERAL.DRIVER-VERSION: -- +GENERAL.FIRMWARE-VERSION: -- +GENERAL.HWADDR: 5A:88:5E:B6:90:40 +GENERAL.MTU: 0 +GENERAL.STATE: 20 (unavailable) +GENERAL.REASON: 0 (No reason given) +GENERAL.UDI: /sys/devices/virtual/wlan0 +GENERAL.IP-IFACE: -- +GENERAL.IS-SOFTWARE: no +GENERAL.NM-MANAGED: yes +GENERAL.AUTOCONNECT: yes +GENERAL.FIRMWARE-MISSING: no +GENERAL.NM-PLUGIN-MISSING: no +GENERAL.PHYS-PORT-ID: -- +GENERAL.CONNECTION: con-vpn-1 +GENERAL.CON-UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP +GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2 +GENERAL.METERED: unknown +CAPABILITIES.CARRIER-DETECT: no +CAPABILITIES.SPEED: unknown +CAPABILITIES.IS-SOFTWARE: no +CAPABILITIES.SRIOV: no +WIFI-PROPERTIES.WEP: yes +WIFI-PROPERTIES.WPA: yes +WIFI-PROPERTIES.WPA2: yes +WIFI-PROPERTIES.TKIP: yes +WIFI-PROPERTIES.CCMP: yes +WIFI-PROPERTIES.AP: yes +WIFI-PROPERTIES.ADHOC: yes +WIFI-PROPERTIES.2GHZ: unknown +WIFI-PROPERTIES.5GHZ: unknown +AP[1].IN-USE: +AP[1].SSID: wlan0-ap-3 +AP[1].MODE: Infra +AP[1].CHAN: 1 +AP[1].RATE: 54 Mbit/s +AP[1].SIGNAL: 88 +AP[1].BARS: **** +AP[1].SECURITY: WPA1 WPA2 +AP[2].IN-USE: +AP[2].SSID: wlan0-ap-2 +AP[2].MODE: Infra +AP[2].CHAN: 1 +AP[2].RATE: 54 Mbit/s +AP[2].SIGNAL: 61 +AP[2].BARS: *** +AP[2].SECURITY: WPA1 WPA2 +AP[3].IN-USE: +AP[3].SSID: wlan0-ap-1 +AP[3].MODE: Infra +AP[3].CHAN: 1 +AP[3].RATE: 54 Mbit/s +AP[3].SIGNAL: 29 +AP[3].BARS: * +AP[3].SECURITY: WPA1 WPA2 +CONNECTIONS.AVAILABLE-CONNECTION-PATHS: -- + +<<< +stderr: 0 bytes +>>> + +<<< diff --git a/clients/tests/test-client.check-on-disk/test_004-034.expected b/clients/tests/test-client.check-on-disk/test_004-034.expected new file mode 100644 index 0000000000..e33738241a --- /dev/null +++ b/clients/tests/test-client.check-on-disk/test_004-034.expected @@ -0,0 +1,74 @@ +location: clients/tests/test-client.py:872:test_004()/34 +cmd: $NMCLI -f all dev show wlan0 +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 2991 bytes +>>> +GENERAL.DEVICE: wlan0 +GENERAL.TYPE: wifi +GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.VENDOR: -- +GENERAL.PRODUCT: -- +GENERAL.DRIVER: virtual +GENERAL.DRIVER-VERSION: -- +GENERAL.FIRMWARE-VERSION: -- +GENERAL.HWADDR: 5A:88:5E:B6:90:40 +GENERAL.MTU: 0 +GENERAL.STATE: 20 (niedostępne) +GENERAL.REASON: 0 (Nie podano przyczyny) +GENERAL.UDI: /sys/devices/virtual/wlan0 +GENERAL.IP-IFACE: -- +GENERAL.IS-SOFTWARE: nie +GENERAL.NM-MANAGED: tak +GENERAL.AUTOCONNECT: tak +GENERAL.FIRMWARE-MISSING: nie +GENERAL.NM-PLUGIN-MISSING: nie +GENERAL.PHYS-PORT-ID: -- +GENERAL.CONNECTION: con-vpn-1 +GENERAL.CON-UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP +GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2 +GENERAL.METERED: nieznane +CAPABILITIES.CARRIER-DETECT: nie +CAPABILITIES.SPEED: nieznane +CAPABILITIES.IS-SOFTWARE: nie +CAPABILITIES.SRIOV: nie +WIFI-PROPERTIES.WEP: tak +WIFI-PROPERTIES.WPA: tak +WIFI-PROPERTIES.WPA2: tak +WIFI-PROPERTIES.TKIP: tak +WIFI-PROPERTIES.CCMP: tak +WIFI-PROPERTIES.AP: tak +WIFI-PROPERTIES.ADHOC: tak +WIFI-PROPERTIES.2GHZ: nieznane +WIFI-PROPERTIES.5GHZ: nieznane +AP[1].IN-USE: +AP[1].SSID: wlan0-ap-3 +AP[1].MODE: Infrastruktura +AP[1].CHAN: 1 +AP[1].RATE: 54 Mb/s +AP[1].SIGNAL: 88 +AP[1].BARS: **** +AP[1].SECURITY: WPA1 WPA2 +AP[2].IN-USE: +AP[2].SSID: wlan0-ap-2 +AP[2].MODE: Infrastruktura +AP[2].CHAN: 1 +AP[2].RATE: 54 Mb/s +AP[2].SIGNAL: 61 +AP[2].BARS: *** +AP[2].SECURITY: WPA1 WPA2 +AP[3].IN-USE: +AP[3].SSID: wlan0-ap-1 +AP[3].MODE: Infrastruktura +AP[3].CHAN: 1 +AP[3].RATE: 54 Mb/s +AP[3].SIGNAL: 29 +AP[3].BARS: * +AP[3].SECURITY: WPA1 WPA2 +CONNECTIONS.AVAILABLE-CONNECTION-PATHS: -- + +<<< +stderr: 0 bytes +>>> + +<<< diff --git a/clients/tests/test-client.py b/clients/tests/test-client.py index a7d08b6fbd..51fd5d7cc5 100755 --- a/clients/tests/test-client.py +++ b/clients/tests/test-client.py @@ -822,6 +822,54 @@ class TestNmcli(NmTestBase): self.call_nmcli_l(['con', 's', 'con-xx1'], replace_stdout = replace_stdout) + self.async_wait() + + replace_stdout.append((lambda: self.srv.findConnectionUuid('con-vpn-1'), 'UUID-con-vpn-1-REPLACED-REPLACED-REP')) + + self.call_nmcli(['connection', 'add', 'type', 'vpn', 'con-name', 'con-vpn-1', 'ifname', '*', 'vpn-type', 'openvpn', 'vpn.data', 'key1 = val1, key2 = val2, key3=val3'], + replace_stdout = replace_stdout) + + self.call_nmcli_l(['con', 's'], + replace_stdout = replace_stdout) + self.call_nmcli_l(['con', 's', 'con-vpn-1'], + replace_stdout = replace_stdout) + + self.call_nmcli(['con', 'up', 'con-xx1']) + self.call_nmcli_l(['con', 's'], + replace_stdout = replace_stdout) + + self.call_nmcli(['con', 'up', 'con-vpn-1']) + self.call_nmcli_l(['con', 's'], + replace_stdout = replace_stdout) + self.call_nmcli_l(['con', 's', 'con-vpn-1'], + replace_stdout = replace_stdout) + + self.async_wait() + + self.srv.setProperty('/org/freedesktop/NetworkManager/ActiveConnection/2', + 'VpnState', + dbus.UInt32(NM.VpnConnectionState.ACTIVATED)) + + self.call_nmcli_l(['con', 's', 'con-vpn-1'], + replace_stdout = replace_stdout) + + self.call_nmcli_l(['-f', 'ALL', 'con', 's', 'con-vpn-1'], + replace_stdout = replace_stdout) + + # This only filters 'vpn' settings from the connection profile. + # Contrary to '-f GENERAL' below, it does not show the properties of + # the activated VPN connection. This is a nmcli bug. + self.call_nmcli_l(['-f', 'VPN', 'con', 's', 'con-vpn-1'], + replace_stdout = replace_stdout) + + self.call_nmcli_l(['-f', 'GENERAL', 'con', 's', 'con-vpn-1'], + replace_stdout = replace_stdout) + + self.call_nmcli_l(['dev', 'show', 'wlan0'], + replace_stdout = replace_stdout) + + self.call_nmcli_l(['-f', 'all', 'dev', 'show', 'wlan0'], + replace_stdout = replace_stdout) ############################################################################### diff --git a/tools/test-networkmanager-service.py b/tools/test-networkmanager-service.py index 2e9dcdb296..1f623f6912 100755 --- a/tools/test-networkmanager-service.py +++ b/tools/test-networkmanager-service.py @@ -148,6 +148,7 @@ IFACE_VLAN = 'org.freedesktop.NetworkManager.Device.Vlan' IFACE_WIFI_AP = 'org.freedesktop.NetworkManager.AccessPoint' IFACE_WIMAX_NSP = 'org.freedesktop.NetworkManager.WiMax.Nsp' IFACE_ACTIVE_CONNECTION = 'org.freedesktop.NetworkManager.Connection.Active' +IFACE_VPN_CONNECTION = 'org.freedesktop.NetworkManager.VPN.Connection' IFACE_DNS_MANAGER = 'org.freedesktop.NetworkManager.DnsManager' IFACE_OBJECT_MANAGER = 'org.freedesktop.DBus.ObjectManager' @@ -288,7 +289,8 @@ class NmUtil: if t not in [ NM.SETTING_WIRED_SETTING_NAME, NM.SETTING_WIRELESS_SETTING_NAME, NM.SETTING_VLAN_SETTING_NAME, - NM.SETTING_WIMAX_SETTING_NAME ]: + NM.SETTING_WIMAX_SETTING_NAME, + NM.SETTING_VPN_SETTING_NAME ]: raise BusErr.InvalidPropertyException('connection.type: unsupported connection type "%s"' % (t)) try: @@ -312,6 +314,14 @@ class NmUtil: return s_con[NM.SETTING_CONNECTION_UUID] return None + @staticmethod + def con_hash_get_type(con_hash): + if NM.SETTING_CONNECTION_SETTING_NAME in con_hash: + s_con = con_hash[NM.SETTING_CONNECTION_SETTING_NAME] + if NM.SETTING_CONNECTION_TYPE in s_con: + return s_con[NM.SETTING_CONNECTION_TYPE] + return None + ############################################################################### class ExportedObj(dbus.service.Object): @@ -409,11 +419,17 @@ class ExportedObj(dbus.service.Object): if propname not in props: raise TestError("No property '%s' on '%s' on '%s'" % (propname, dbus_iface, self.path)) - if isinstance(self, ActiveConnection) \ - and dbus_iface == 'org.freedesktop.NetworkManager.Connection.Active' \ - and propname == 'State': - return - else: + permission_granted = False + + if isinstance(self, ActiveConnection): + if dbus_iface == IFACE_ACTIVE_CONNECTION: + if propname == PRP_ACTIVE_CONNECTION_STATE: + permission_granted = True + elif dbus_iface == IFACE_VPN_CONNECTION: + if propname == PRP_VPN_CONNECTION_VPN_STATE: + permission_granted = True + + if not permission_granted: raise TestError("Cannot set property '%s' on '%s' on '%s' via D-Bus" % (propname, dbus_iface, self.path)) assert propname in props @@ -845,6 +861,9 @@ PRP_ACTIVE_CONNECTION_DHCP6CONFIG = "Dhcp6Config" PRP_ACTIVE_CONNECTION_VPN = "Vpn" PRP_ACTIVE_CONNECTION_MASTER = "Master" +PRP_VPN_CONNECTION_VPN_STATE = 'VpnState' +PRP_VPN_CONNECTION_BANNER = 'Banner' + class ActiveConnection(ExportedObj): path_counter_next = 1 @@ -852,10 +871,13 @@ class ActiveConnection(ExportedObj): def __init__(self, device, con_inst, specific_object): + is_vpn = (NmUtil.con_hash_get_type(con_inst.con_hash) == NM.SETTING_VPN_SETTING_NAME) + ExportedObj.__init__(self, ExportedObj.create_path(ActiveConnection)) self.device = device self.con_inst = con_inst + self.is_vpn = is_vpn self._activation_id = None @@ -875,12 +897,21 @@ class ActiveConnection(ExportedObj): PRP_ACTIVE_CONNECTION_DEFAULT6: False, PRP_ACTIVE_CONNECTION_IP6CONFIG: ExportedObj.to_path(None), PRP_ACTIVE_CONNECTION_DHCP6CONFIG: ExportedObj.to_path(None), - PRP_ACTIVE_CONNECTION_VPN: False, + PRP_ACTIVE_CONNECTION_VPN: is_vpn, PRP_ACTIVE_CONNECTION_MASTER: ExportedObj.to_path(None), } self.dbus_interface_add(IFACE_ACTIVE_CONNECTION, props, ActiveConnection.PropertiesChanged) + if is_vpn: + props = { + PRP_VPN_CONNECTION_VPN_STATE: dbus.UInt32(NM.VpnConnectionState.UNKNOWN), + PRP_VPN_CONNECTION_BANNER: '*** VPN connection %s ***' % (con_inst.get_id()), + } + + self.dbus_interface_add(IFACE_VPN_CONNECTION, props, ActiveConnection.VpnPropertiesChanged) + + def _set_state(self, state, reason): state = dbus.UInt32(state) self._dbus_property_set(IFACE_ACTIVE_CONNECTION, PRP_ACTIVE_CONNECTION_STATE, state) @@ -910,6 +941,11 @@ class ActiveConnection(ExportedObj): assert self._activation_id is None self._activation_id = GLib.timeout_add(50, self._activation_step1) + @dbus.service.signal(IFACE_VPN_CONNECTION, signature='a{sv}') + def PropertiesChanged(self, changed): + pass + VpnPropertiesChanged = PropertiesChanged + @dbus.service.signal(IFACE_ACTIVE_CONNECTION, signature='a{sv}') def PropertiesChanged(self, changed): pass @@ -918,6 +954,10 @@ class ActiveConnection(ExportedObj): def StateChanged(self, state, reason): pass + @dbus.service.signal(IFACE_VPN_CONNECTION, signature='uu') + def VpnStateChanged(self, state, reason): + pass + ############################################################################### PRP_NM_DEVICES = 'Devices' @@ -994,13 +1034,26 @@ class NetworkManager(ExportedObj): raise BusErr.UnknownConnectionException("Connection not found") con_hash = con_inst.con_hash - s_con = con_hash[NM.SETTING_CONNECTION_SETTING_NAME] + con_type = NmUtil.con_hash_get_type(con_hash) device = self.find_device_first(path = devpath) - if not device and s_con[NM.SETTING_CONNECTION_TYPE] == NM.SETTING_VLAN_SETTING_NAME: - ifname = s_con['interface-name'] - device = VlanDevice(ifname) - self.add_device(device) + if not device: + if con_type == NM.SETTING_WIRED_SETTING_NAME: + device = self.find_device_first(dev_type = WiredDevice) + elif con_type == NM.SETTING_WIRELESS_SETTING_NAME: + device = self.find_device_first(dev_type = WifiDevice) + elif con_type == NM.SETTING_VLAN_SETTING_NAME: + ifname = con_hash[NM.SETTING_CONNECTION_SETTING_NAME]['interface-name'] + device = VlanDevice(ifname) + self.add_device(device) + elif con_type == NM.SETTING_VPN_SETTING_NAME: + for ac in self.active_connections: + if ac.is_vpn: + continue + if ac.device: + device = ac.device + break + if not device: raise BusErr.UnknownDeviceException("No device found for the requested iface.") @@ -1020,7 +1073,7 @@ class NetworkManager(ExportedObj): ac = ActiveConnection(device, con_inst, None) self.active_connection_add(ac) - if s_con[NM.SETTING_CONNECTION_ID] == 'object-creation-failed-test': + if NmUtil.con_hash_get_id(con_hash) == 'object-creation-failed-test': # FIXME: this is not the right test, to delete the active-connection # before returning it. It's the wrong order of what NetworkManager # would do. @@ -1096,7 +1149,7 @@ class NetworkManager(ExportedObj): def DeviceAdded(self, devpath): pass - def find_devices(self, ident = _DEFAULT_ARG, path = _DEFAULT_ARG, iface = _DEFAULT_ARG, ip_iface = _DEFAULT_ARG): + def find_devices(self, ident = _DEFAULT_ARG, path = _DEFAULT_ARG, iface = _DEFAULT_ARG, ip_iface = _DEFAULT_ARG, dev_type = _DEFAULT_ARG): r = None for d in self.devices: if ident is not _DEFAULT_ARG: @@ -1112,11 +1165,14 @@ class NetworkManager(ExportedObj): # ignore iface/ip_iface distinction for now if d.iface != ip_iface: continue + if dev_type is not _DEFAULT_ARG: + if not isinstance(d, dev_type): + continue yield d - def find_device_first(self, ident = _DEFAULT_ARG, path = _DEFAULT_ARG, iface = _DEFAULT_ARG, ip_iface = _DEFAULT_ARG, require = None): + def find_device_first(self, ident = _DEFAULT_ARG, path = _DEFAULT_ARG, iface = _DEFAULT_ARG, ip_iface = _DEFAULT_ARG, dev_type = _DEFAULT_ARG, require = None): r = None - for d in self.find_devices(ident = ident, path = path, iface = iface, ip_iface = ip_iface): + for d in self.find_devices(ident = ident, path = path, iface = iface, ip_iface = ip_iface, dev_type = dev_type): r = d break if r is None and require: