Upgrade bluez5_37 :Merge the code from private
[platform/upstream/bluez.git] / test / test-gatt-profile
1 #!/usr/bin/python
2
3 from __future__ import absolute_import, print_function, unicode_literals
4
5 from optparse import OptionParser, make_option
6 import os
7 import sys
8 import uuid
9 import dbus
10 import dbus.service
11 import dbus.mainloop.glib
12 try:
13   from gi.repository import GObject
14 except ImportError:
15   import gobject as GObject
16 import bluezutils
17
18 class GattProfile(dbus.service.Object):
19         @dbus.service.method("org.bluez.GattProfile1",
20                                         in_signature="", out_signature="")
21         def Release(self):
22                 print("Release")
23                 mainloop.quit()
24
25 if __name__ == '__main__':
26         dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
27
28         bus = dbus.SystemBus()
29
30         path = bluezutils.find_adapter().object_path
31
32         manager = dbus.Interface(bus.get_object("org.bluez", path),
33                                 "org.bluez.GattManager1")
34
35         option_list = [
36                         make_option("-u", "--uuid", action="store",
37                                         type="string", dest="uuid",
38                                         default=None),
39                         make_option("-p", "--path", action="store",
40                                         type="string", dest="path",
41                                         default="/foo/bar/profile"),
42                         ]
43
44         opts = dbus.Dictionary({ }, signature='sv')
45
46         parser = OptionParser(option_list=option_list)
47
48         (options, args) = parser.parse_args()
49
50         profile = GattProfile(bus, options.path)
51
52         mainloop = GObject.MainLoop()
53
54         if not options.uuid:
55                 options.uuid = str(uuid.uuid4())
56
57         uuids = { options.uuid }
58         manager.RegisterProfile(options.path, uuids, opts)
59
60         mainloop.run()