From 28691db5337e195cb7f7c249eec668bb832b99f0 Mon Sep 17 00:00:00 2001 From: Daniel Wagner Date: Thu, 7 Apr 2011 09:51:11 +0200 Subject: [PATCH] test-session: Add 'configure' and 'change' command 'configure' allows to set all settings which are passed in during the creation of the session. 'change' allows to change the settings when the session already exists. --- test/test-session | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 61 insertions(+), 4 deletions(-) diff --git a/test/test-session b/test/test-session index 1a425e3..21a2019 100755 --- a/test/test-session +++ b/test/test-session @@ -71,6 +71,7 @@ class SessionApplication(dbus.service.Object): self.session_path = None self.mainloop = mainloop self.session = None + self.settings = { } try: bus = dbus.SystemBus() @@ -107,6 +108,20 @@ class SessionApplication(dbus.service.Object): self.notify.remove_from_connection() self.notify = None + def type_convert(self, key, value): + if key in [ "AllowedBearers", "RoamingPolicy" ]: + return value + elif key in [ "Priority", "AvoidHandover", + "StayConnected", "EmergencyCall" ]: + flag = str(value[0]).strip().lower() + val = flag not in ['false', 'f', 'n', '0'] + return dbus.Boolean(val) + elif key in [ "PeriodicConnect", "IdleTimeout" ]: + val = value[0] + return dbus.UInt32(val) + + return value + @dbus.service.method("com.example.TestSession", in_signature='', out_signature='') def CreateSession(self): @@ -122,9 +137,7 @@ class SessionApplication(dbus.service.Object): self.notify = Notification(bus, self, self.notify_path) self.notify.add_to_connection(bus, self.notify_path) - #settings = { "AllowedBearers" : [ "ethernet", "*" ] } - settings = { "AllowedBearers" : [ "ethernet" ] } - self.session_path = self.manager.CreateSession(settings, self.notify_path) + self.session_path = self.manager.CreateSession(self.settings, self.notify_path) print "notify path %s" % (self.notify_path) print "session path %s" % (self.session_path) @@ -132,7 +145,10 @@ class SessionApplication(dbus.service.Object): self.session = dbus.Interface(bus.get_object("net.connman", self.session_path), "net.connman.Session") - except dbus.DBusException: + except dbus.DBusException, e: + if e.get_dbus_name() in ['net.connman.Error.InvalidArguments']: + print e.get_dbus_message() + return traceback.print_exc() exit(1) @@ -179,6 +195,27 @@ class SessionApplication(dbus.service.Object): traceback.print_exc() exit(1) + @dbus.service.method("com.example.TestSession", + in_signature='sv', out_signature='') + def Change(self, key, value): + print "Update session settings" + try: + val = self.type_convert(key, value) + self.session.Change(key, val) + except dbus.DBusException, e: + if e.get_dbus_name() in ['net.connman.Error.InvalidArguments']: + print e.get_dbus_message() + return + traceback.print_exc() + exit(1) + + @dbus.service.method("com.example.TestSession", + in_signature='sv', out_signature='') + def Configure(self, key, value): + print "Configure session settings" + val = self.type_convert(key, value) + self.settings[key] = val + def main(): if len(sys.argv) < 2: print "Usage: %s " % (sys.argv[0]) @@ -189,6 +226,8 @@ def main(): print " destroy " print " connect " print " disconnect " + print " change " + print " configure " print "" print " run " sys.exit(1) @@ -240,5 +279,23 @@ def main(): elif sys.argv[1] == "disconnect": app.Disconnect() + elif sys.argv[1] == "change": + if len(sys.argv) < 4: + print "Arguments missing" + sys.exit(1) + + app.Change(sys.argv[3], sys.argv[4:]) + + elif sys.argv[1] == "configure": + if len(sys.argv) < 4: + print "Arguments missing" + sys.exit(1) + + app.Configure(sys.argv[3], sys.argv[4:]) + + else: + print "Unknown command '%s'" % sys.argv[1] + sys.exit(1) + if __name__ == '__main__': main() -- 2.7.4