ofono: modem: make sure a property is its set value, make sure an interface is really present
diff --git a/src/osmo_gsm_tester/ofono_client.py b/src/osmo_gsm_tester/ofono_client.py
index 2b91230..9839f46 100644
--- a/src/osmo_gsm_tester/ofono_client.py
+++ b/src/osmo_gsm_tester/ofono_client.py
@@ -81,7 +81,12 @@
self.log('Setting', name, val)
self.dbus_obj().SetProperty(name, Variant('b', val))
- test.poll() # <-- probably not necessary
+ test.wait(self.property_is, name, bool_val)
+
+ def property_is(self, name, val):
+ is_val = self.properties().get(name)
+ self.dbg(name, '==', is_val)
+ return is_val is not None and is_val == val
def set_powered(self, on=True):
self._dbus_set_bool('Powered', on)
@@ -122,8 +127,16 @@
except:
self.log_exn()
+ def _interface_really_present(self, interface_name):
+ try:
+ self.dbus_obj()[interface_name]
+ return True
+ except:
+ return False
+
def _on_interface_enabled(self, interface_name):
self.dbg('Interface enabled:', interface_name)
+ test.wait(self._interface_really_present, interface_name)
if interface_name == I_SMS:
self.dbus_obj()[I_SMS].IncomingMessage.connect(self._on_incoming_message)
@@ -136,7 +149,9 @@
def connect(self, nitb):
'set the modem up to connect to MCC+MNC from NITB config'
self.log('connect to', nitb)
+ self.set_powered(False)
self.set_powered()
+ self.set_online(False)
self.set_online()
if not self.has_interface(I_NETREG):
self.log('No %r interface, hoping that the modem connects by itself' % I_NETREG)