libnm/tests: only init the exported obj when the interfaces are in place

When we have the ObjectManager mock, this allows it to emit correct
InterfacesAdded signal when the ExportedObj is initialized.
This commit is contained in:
Lubomir Rintel 2016-09-20 14:40:08 +02:00
parent 24afcb502e
commit 3f451a2394

View file

@ -153,8 +153,6 @@ class Device(ExportedObj):
def __init__(self, bus, iface, devtype): def __init__(self, bus, iface, devtype):
object_path = "/org/freedesktop/NetworkManager/Devices/%d" % Device.counter object_path = "/org/freedesktop/NetworkManager/Devices/%d" % Device.counter
Device.counter = Device.counter + 1 Device.counter = Device.counter + 1
ExportedObj.__init__(self, bus, object_path)
self.add_dbus_interface(IFACE_DEVICE, self.__get_props, Device.PropertiesChanged)
self.iface = iface self.iface = iface
self.udi = "/sys/devices/virtual/%s" % iface self.udi = "/sys/devices/virtual/%s" % iface
@ -167,6 +165,9 @@ class Device(ExportedObj):
self.dhcp6_config = None self.dhcp6_config = None
self.available_connections = [] self.available_connections = []
self.add_dbus_interface(IFACE_DEVICE, self.__get_props, Device.PropertiesChanged)
ExportedObj.__init__(self, bus, object_path)
# Properties interface # Properties interface
def __get_props(self): def __get_props(self):
props = {} props = {}
@ -226,8 +227,6 @@ PE_S390_SUBCHANNELS = "S390Subchannels"
class WiredDevice(Device): class WiredDevice(Device):
def __init__(self, bus, iface, mac, subchannels): def __init__(self, bus, iface, mac, subchannels):
Device.__init__(self, bus, iface, NM_DEVICE_TYPE_ETHERNET)
self.add_dbus_interface(IFACE_WIRED, self.__get_props, WiredDevice.PropertiesChanged)
if mac is None: if mac is None:
self.mac = random_mac() self.mac = random_mac()
@ -236,6 +235,9 @@ class WiredDevice(Device):
self.carrier = False self.carrier = False
self.s390_subchannels = subchannels self.s390_subchannels = subchannels
self.add_dbus_interface(IFACE_WIRED, self.__get_props, WiredDevice.PropertiesChanged)
Device.__init__(self, bus, iface, NM_DEVICE_TYPE_ETHERNET)
# Properties interface # Properties interface
def __get_props(self): def __get_props(self):
props = {} props = {}
@ -262,13 +264,13 @@ PV_VLAN_ID = "VlanId"
class VlanDevice(Device): class VlanDevice(Device):
def __init__(self, bus, iface): def __init__(self, bus, iface):
Device.__init__(self, bus, iface, NM_DEVICE_TYPE_VLAN)
self.add_dbus_interface(IFACE_VLAN, self.__get_props, VlanDevice.PropertiesChanged)
self.mac = random_mac() self.mac = random_mac()
self.carrier = False self.carrier = False
self.vlan_id = 1 self.vlan_id = 1
self.add_dbus_interface(IFACE_VLAN, self.__get_props, VlanDevice.PropertiesChanged)
Device.__init__(self, bus, iface, NM_DEVICE_TYPE_VLAN)
# Properties interface # Properties interface
def __get_props(self): def __get_props(self):
props = {} props = {}
@ -300,8 +302,6 @@ class WifiAp(ExportedObj):
def __init__(self, bus, ssid, mac, flags, wpaf, rsnf, freq): def __init__(self, bus, ssid, mac, flags, wpaf, rsnf, freq):
path = "/org/freedesktop/NetworkManager/AccessPoint/%d" % WifiAp.counter path = "/org/freedesktop/NetworkManager/AccessPoint/%d" % WifiAp.counter
WifiAp.counter = WifiAp.counter + 1 WifiAp.counter = WifiAp.counter + 1
ExportedObj.__init__(self, bus, path)
self.add_dbus_interface(IFACE_WIFI_AP, self.__get_props, WifiAp.PropertiesChanged)
self.ssid = ssid self.ssid = ssid
if mac: if mac:
@ -315,6 +315,9 @@ class WifiAp(ExportedObj):
self.strength = random.randint(0, 100) self.strength = random.randint(0, 100)
self.strength_id = GLib.timeout_add_seconds(10, self.strength_cb, None) self.strength_id = GLib.timeout_add_seconds(10, self.strength_cb, None)
self.add_dbus_interface(IFACE_WIFI_AP, self.__get_props, WifiAp.PropertiesChanged)
ExportedObj.__init__(self, bus, path)
def __del__(self): def __del__(self):
if self.strength_id > 0: if self.strength_id > 0:
GLib.source_remove(self.strength_id) GLib.source_remove(self.strength_id)
@ -362,13 +365,13 @@ PW_WIRELESS_CAPABILITIES = "WirelessCapabilities"
class WifiDevice(Device): class WifiDevice(Device):
def __init__(self, bus, iface): def __init__(self, bus, iface):
Device.__init__(self, bus, iface, NM_DEVICE_TYPE_WIFI)
self.add_dbus_interface(IFACE_WIFI, self.__get_props, WifiDevice.PropertiesChanged)
self.mac = random_mac() self.mac = random_mac()
self.aps = [] self.aps = []
self.active_ap = None self.active_ap = None
self.add_dbus_interface(IFACE_WIFI, self.__get_props, WifiDevice.PropertiesChanged)
Device.__init__(self, bus, iface, NM_DEVICE_TYPE_WIFI)
# methods # methods
@dbus.service.method(dbus_interface=IFACE_WIFI, in_signature='', out_signature='ao') @dbus.service.method(dbus_interface=IFACE_WIFI, in_signature='', out_signature='ao')
def GetAccessPoints(self): def GetAccessPoints(self):
@ -448,13 +451,14 @@ class WimaxNsp(ExportedObj):
def __init__(self, bus, name): def __init__(self, bus, name):
path = "/org/freedesktop/NetworkManager/Nsp/%d" % WimaxNsp.counter path = "/org/freedesktop/NetworkManager/Nsp/%d" % WimaxNsp.counter
WimaxNsp.counter = WimaxNsp.counter + 1 WimaxNsp.counter = WimaxNsp.counter + 1
ExportedObj.__init__(self, bus, path)
self.add_dbus_interface(IFACE_WIMAX_NSP, self.__get_props, WimaxNsp.PropertiesChanged)
self.name = name self.name = name
self.strength = random.randint(0, 100) self.strength = random.randint(0, 100)
self.strength_id = GLib.timeout_add_seconds(10, self.strength_cb, None) self.strength_id = GLib.timeout_add_seconds(10, self.strength_cb, None)
self.add_dbus_interface(IFACE_WIMAX_NSP, self.__get_props, WimaxNsp.PropertiesChanged)
ExportedObj.__init__(self, bus, path)
def __del__(self): def __del__(self):
if self.strength_id > 0: if self.strength_id > 0:
GLib.source_remove(self.strength_id) GLib.source_remove(self.strength_id)
@ -497,14 +501,14 @@ PX_ACTIVE_NSP = "ActiveNsp"
class WimaxDevice(Device): class WimaxDevice(Device):
def __init__(self, bus, iface): def __init__(self, bus, iface):
Device.__init__(self, bus, iface, NM_DEVICE_TYPE_WIMAX)
self.add_dbus_interface(IFACE_WIMAX, self.__get_props, WimaxDevice.PropertiesChanged)
self.mac = random_mac() self.mac = random_mac()
self.bsid = random_mac() self.bsid = random_mac()
self.nsps = [] self.nsps = []
self.active_nsp = None self.active_nsp = None
self.add_dbus_interface(IFACE_WIMAX, self.__get_props, WimaxDevice.PropertiesChanged)
Device.__init__(self, bus, iface, NM_DEVICE_TYPE_WIMAX)
# methods # methods
@dbus.service.method(dbus_interface=IFACE_WIMAX, in_signature='', out_signature='ao') @dbus.service.method(dbus_interface=IFACE_WIMAX, in_signature='', out_signature='ao')
def GetNspList(self): def GetNspList(self):
@ -587,8 +591,6 @@ class ActiveConnection(ExportedObj):
def __init__(self, bus, device, connection, specific_object): def __init__(self, bus, device, connection, specific_object):
object_path = "/org/freedesktop/NetworkManager/ActiveConnection/%d" % ActiveConnection.counter object_path = "/org/freedesktop/NetworkManager/ActiveConnection/%d" % ActiveConnection.counter
ActiveConnection.counter = ActiveConnection.counter + 1 ActiveConnection.counter = ActiveConnection.counter + 1
ExportedObj.__init__(self, bus, object_path)
self.add_dbus_interface(IFACE_ACTIVE_CONNECTION, self.__get_props, ActiveConnection.PropertiesChanged)
self.device = device self.device = device
self.conn = connection self.conn = connection
@ -603,6 +605,9 @@ class ActiveConnection(ExportedObj):
self.vpn = False self.vpn = False
self.master = None self.master = None
self.add_dbus_interface(IFACE_ACTIVE_CONNECTION, self.__get_props, ActiveConnection.PropertiesChanged)
ExportedObj.__init__(self, bus, object_path)
# Properties interface # Properties interface
def __get_props(self): def __get_props(self):
props = {} props = {}
@ -664,9 +669,6 @@ def set_device_ac_cb(device, ac):
class NetworkManager(ExportedObj): class NetworkManager(ExportedObj):
def __init__(self, bus, object_path): def __init__(self, bus, object_path):
ExportedObj.__init__(self, bus, object_path)
self.add_dbus_interface(IFACE_NM, self.__get_props, NetworkManager.PropertiesChanged)
self._bus = bus; self._bus = bus;
self.devices = [] self.devices = []
self.active_connections = [] self.active_connections = []
@ -675,6 +677,9 @@ class NetworkManager(ExportedObj):
self.state = NM_STATE_DISCONNECTED self.state = NM_STATE_DISCONNECTED
self.connectivity = 1 self.connectivity = 1
self.add_dbus_interface(IFACE_NM, self.__get_props, NetworkManager.PropertiesChanged)
ExportedObj.__init__(self, bus, object_path)
@dbus.service.signal(IFACE_NM, signature='u') @dbus.service.signal(IFACE_NM, signature='u')
def StateChanged(self, new_state): def StateChanged(self, new_state):
pass pass