test: Adapt data test scripts to multi-modem
authorAlfonso Sanchez-Beato <alfonso.sanchez-beato@canonical.com>
Tue, 10 Jun 2014 08:27:17 +0000 (10:27 +0200)
committerDenis Kenzior <denkenz@gmail.com>
Wed, 11 Jun 2014 04:36:09 +0000 (23:36 -0500)
Some tests scripts were not ready to handle situations with more than
one modem present. This change fixes the data context scripts.

test/activate-context
test/deactivate-context

index 22ad173..e4fc702 100755 (executable)
@@ -5,36 +5,53 @@ import dbus
 
 bus = dbus.SystemBus()
 
-manager = dbus.Interface(bus.get_object('org.ofono', '/'),
-                                               'org.ofono.Manager')
+manager = dbus.Interface(bus.get_object('org.ofono', '/'), 'org.ofono.Manager')
+
+if (len(sys.argv) == 3):
+       modem = sys.argv[1]
+       context_idx = int(sys.argv[2]) - 1
+else:
+       modem = None
+       modems = manager.GetModems()
+       for path, properties in modems:
+               if "org.ofono.ConnectionManager" in properties["Interfaces"]:
+                       modem = path
+                       break
+       if (modem is None):
+               exit(2)
+       if (len(sys.argv) == 1):
+               context_idx = 0
+       elif (len(sys.argv) == 2):
+               context_idx = int(sys.argv[1]) - 1
+       else:
+               print("Usage: %s [modem] [context_number]" % (sys.argv[0]))
+               exit(1)
 
-modems = manager.GetModems()
+modemapi = dbus.Interface(bus.get_object('org.ofono', modem), 'org.ofono.Modem')
+properties = modemapi.GetProperties()
 
-for path, properties in modems:
-       if "org.ofono.ConnectionManager" not in properties["Interfaces"]:
-               continue
+if "org.ofono.ConnectionManager" not in properties["Interfaces"]:
+       print("org.ofono.ConnectionManager not found")
+       exit(2)
 
-       connman = dbus.Interface(bus.get_object('org.ofono', path),
-                                       'org.ofono.ConnectionManager')
+connman = dbus.Interface(bus.get_object('org.ofono', modem),
+                               'org.ofono.ConnectionManager')
 
-       contexts = connman.GetContexts()
+contexts = connman.GetContexts()
 
-       if (len(contexts) == 0):
-               print("No context available")
-               sys.exit(1)
+if (len(contexts) == 0):
+       print("No context available")
+       exit(1)
 
-       connman.SetProperty("Powered", dbus.Boolean(1))
+connman.SetProperty("Powered", dbus.Boolean(1))
 
-       if len(sys.argv) > 1:
-               path = contexts[int(sys.argv[1])][0]
-       else:
-               path = contexts[0][0]
+path = contexts[context_idx][0]
 
-       context = dbus.Interface(bus.get_object('org.ofono', path),
-                                       'org.ofono.ConnectionContext')
+context = dbus.Interface(bus.get_object('org.ofono', path),
+                               'org.ofono.ConnectionContext')
 
-       try:
-               context.SetProperty("Active", dbus.Boolean(1), timeout = 100)
-       except dbus.DBusException as e:
-               print("Error activating %s: %s" % (path, str(e)))
-               exit(2)
+try:
+       context.SetProperty("Active", dbus.Boolean(1), timeout = 100)
+except dbus.DBusException as e:
+       print("Error activating %s: %s" % (path, str(e)))
+       exit(2)
index bc2ffd3..5c86a71 100755 (executable)
@@ -5,34 +5,51 @@ import dbus
 
 bus = dbus.SystemBus()
 
-manager = dbus.Interface(bus.get_object('org.ofono', '/'),
-                                               'org.ofono.Manager')
+manager = dbus.Interface(bus.get_object('org.ofono', '/'), 'org.ofono.Manager')
+
+if (len(sys.argv) == 3):
+       modem = sys.argv[1]
+       context_idx = int(sys.argv[2]) - 1
+else:
+       modem = None
+       modems = manager.GetModems()
+       for path, properties in modems:
+               if "org.ofono.ConnectionManager" in properties["Interfaces"]:
+                       modem = path
+                       break
+       if (modem is None):
+               exit(2)
+       if (len(sys.argv) == 1):
+               context_idx = 0
+       elif (len(sys.argv) == 2):
+               context_idx = int(sys.argv[1]) - 1
+       else:
+               print("Usage: %s [modem] [context_number]" % (sys.argv[0]))
+               exit(1)
 
-modems = manager.GetModems()
+modemapi = dbus.Interface(bus.get_object('org.ofono', modem), 'org.ofono.Modem')
+properties = modemapi.GetProperties()
 
-for path, properties in modems:
-       if "org.ofono.ConnectionManager" not in properties["Interfaces"]:
-               continue
+if "org.ofono.ConnectionManager" not in properties["Interfaces"]:
+       print("org.ofono.ConnectionManager not found")
+       exit(2)
 
-       connman = dbus.Interface(bus.get_object('org.ofono', path),
-                                       'org.ofono.ConnectionManager')
+connman = dbus.Interface(bus.get_object('org.ofono', modem),
+                               'org.ofono.ConnectionManager')
 
-       contexts = connman.GetContexts()
+contexts = connman.GetContexts()
 
-       if (len(contexts) == 0):
-               print("No context available")
-               sys.exit(1)
+if (len(contexts) == 0):
+       print("No context available")
+       sys.exit(1)
 
-       if len(sys.argv) > 1:
-               path = contexts[int(sys.argv[1])][0]
-       else:
-               path = contexts[0][0]
+path = contexts[context_idx][0]
 
-       context = dbus.Interface(bus.get_object('org.ofono', path),
-                                       'org.ofono.ConnectionContext')
+context = dbus.Interface(bus.get_object('org.ofono', path),
+                               'org.ofono.ConnectionContext')
 
-       try:
-               context.SetProperty("Active", dbus.Boolean(0))
-       except dbus.DBusException as e:
-               print("Error activating %s: %s" % (path, str(e)))
-               exit(2)
+try:
+       context.SetProperty("Active", dbus.Boolean(0))
+except dbus.DBusException as e:
+       print("Error deactivating %s: %s" % (path, str(e)))
+       exit(2)