コード例 #1
0
ファイル: dbus.py プロジェクト: ishkanan/pytooth
    def get_all(self, fmt=None, order=None, offset=None, maxcount=None, \
        fields=None):
        """Fetches the entire selected phonebook. Actual data is returned via
        the `on_transfer_complete` event, if the transfer is successful. This
        does nothing if a transfer is in progress.
        """
        if self._transfer is not None:
            return

        # all filters are optional
        filters = {}
        if fmt is not None:
            filters.update({"Format": fmt})
        if order is not None:
            filters.update({"Order": order})
        if offset is not None:
            filters.update({"Offset": UInt16(offset)})
        if maxcount is not None:
            filters.update({"MaxCount": UInt16(maxcount)})
        if fields is not None:
            filters.update({"Fields": Array(fields, signature="s")})

        # start the transfer
        tx_path, tx_props = self._client.proxy.PullAll("", filters)
        self._transfer = Bluez5Utils.get_transfer(bus=self._session_bus,
                                                  transfer_path=tx_path)
        self._transfer_file = tx_props["Filename"]
コード例 #2
0
 def trigger_returned_cb(self):
     logger.info('method/signal: Trigger() returned')
     # Callback tests
     logger.info("signal/callback: Emitting signal to trigger callback")
     self.expected.add('%s.Trigger' % INTERFACE_SIGNAL_TESTS)
     self.Trigger(UInt16(42), 23.0)
     logger.info("signal/callback: Emitting signal returned")
コード例 #3
0
    def run_synchronous_tests(self, obj):
        # We can't test that coercion works correctly unless the server has
        # sent us introspection data. Java doesn't :-/
        have_signatures = True

        # "Single tests"
        if have_signatures:
            self.assert_method_eq(INTERFACE_SINGLE_TESTS, 6, 'Sum', [1, 2, 3])
            self.assert_method_eq(INTERFACE_SINGLE_TESTS, 6, 'Sum',
                                  ['\x01', '\x02', '\x03'])
        self.assert_method_eq(INTERFACE_SINGLE_TESTS, 6, 'Sum',
                              [Byte(1), Byte(2), Byte(3)])
        self.assert_method_eq(INTERFACE_SINGLE_TESTS, 6, 'Sum',
                              ByteArray('\x01\x02\x03'))

        # Main tests
        self.assert_method_eq(INTERFACE_TESTS, String(u'foo', variant_level=1),
                              'Identity', String('foo'))
        self.assert_method_eq(INTERFACE_TESTS, String(u'foo', variant_level=1),
                              'Identity', UTF8String('foo'))
        self.assert_method_eq(INTERFACE_TESTS, Byte(42, variant_level=1),
                              'Identity', Byte(42))
        self.assert_method_eq(INTERFACE_TESTS, Byte(42, variant_level=23),
                              'Identity', Byte(42, variant_level=23))
        self.assert_method_eq(INTERFACE_TESTS, Double(42.5, variant_level=1),
                              'Identity', 42.5)
        self.assert_method_eq(INTERFACE_TESTS, Double(-42.5, variant_level=1),
                              'Identity', -42.5)

        if have_signatures:
            self.assert_method_eq(INTERFACE_TESTS,
                                  String(u'foo', variant_level=1), 'Identity',
                                  'foo')
            self.assert_method_eq(INTERFACE_TESTS, Byte(42, variant_level=1),
                                  'Identity', Byte(42))
            self.assert_method_eq(INTERFACE_TESTS, Double(42.5,
                                                          variant_level=1),
                                  'Identity', Double(42.5))
            self.assert_method_eq(INTERFACE_TESTS,
                                  Double(-42.5, variant_level=1), 'Identity',
                                  -42.5)

        for i in (0, 42, 255):
            self.assert_method_eq(INTERFACE_TESTS, Byte(i), 'IdentityByte',
                                  Byte(i))
        for i in (True, False):
            self.assert_method_eq(INTERFACE_TESTS, i, 'IdentityBool', i)

        for i in (-0x8000, 0, 42, 0x7fff):
            self.assert_method_eq(INTERFACE_TESTS, i, 'IdentityInt16',
                                  Int16(i))
        for i in (0, 42, 0xffff):
            self.assert_method_eq(INTERFACE_TESTS, i, 'IdentityUInt16',
                                  UInt16(i))
        for i in (-0x7fffffff - 1, 0, 42, 0x7fffffff):
            self.assert_method_eq(INTERFACE_TESTS, i, 'IdentityInt32',
                                  Int32(i))
        for i in (0L, 42L, 0xffffffffL):
            self.assert_method_eq(INTERFACE_TESTS, i, 'IdentityUInt32',
                                  UInt32(i))
コード例 #4
0
ファイル: managers.py プロジェクト: ishkanan/pytooth
    def _register(self):
        """Registers the profile implementation endpoint on DBus.
        """
        logger.debug("Registering HFP profile on DBus...")

        self._profile = Profile(system_bus=self._system_bus,
                                dbus_path=HFP_DBUS_PROFILE_ENDPOINT)
        self._profile.on_connect = self._profile_on_connect
        self._profile.on_disconnect = self._profile_on_disconnect
        self._profile.on_release = self._profile_on_release

        self._profilemgr_proxy.proxy.RegisterProfile(
            HFP_DBUS_PROFILE_ENDPOINT, "hfp-hf", {
                "Name": "Hands-Free",
                "Version": UInt16(0x0107),
                "Features": UInt16(HF_SUPPORTED_FEATURES),
                "RequireAuthentication": True,
                "RequireAuthorization": False,
            })
        logger.debug("Registered HFP profile on DBus.")
コード例 #5
0
ファイル: managers.py プロジェクト: ishkanan/pytooth
    def _register(self):
        """Registers the profile implementation endpoint on DBus.
        """
        logger.debug("Registering PBAP profile on DBus...")

        self._profile = Profile(system_bus=self._system_bus,
                                dbus_path=PBAP_DBUS_PROFILE_ENDPOINT)
        self._profile.on_connect = self._profile_on_connect
        self._profile.on_disconnect = self._profile_on_disconnect
        self._profile.on_release = self._profile_on_release

        self._profilemgr_proxy.proxy.RegisterProfile(
            PBAP_DBUS_PROFILE_ENDPOINT, PBAP_PROFILE_UUID, {
                "Name": "Phonebook Access Profile",
                "Version": UInt16(0x0102),
                "Features": 0,
                "RequireAuthentication": True,
                "RequireAuthorization": False,
            })
        logger.debug("Registered PBAP profile on DBus.")
コード例 #6
0
    def run_synchronous_tests(self, obj):
        # We can't test that coercion works correctly unless the server has
        # sent us introspection data. Java doesn't :-/
        have_signatures = True

        # "Single tests"
        if have_signatures:
            self.assert_method_eq(INTERFACE_SINGLE_TESTS, 6, 'Sum', [1, 2, 3])
            self.assert_method_eq(INTERFACE_SINGLE_TESTS, 6, 'Sum',
                                  [b'\x01', b'\x02', b'\x03'])
        self.assert_method_eq(INTERFACE_SINGLE_TESTS, 6, 'Sum',
                              [Byte(1), Byte(2), Byte(3)])
        self.assert_method_eq(INTERFACE_SINGLE_TESTS, 6, 'Sum',
                              ByteArray(b'\x01\x02\x03'))

        # Main tests
        self.assert_method_eq(INTERFACE_TESTS, String('foo', variant_level=1),
                              'Identity', String('foo'))
        if is_py2:
            self.assert_method_eq(INTERFACE_TESTS,
                                  String('foo', variant_level=1), 'Identity',
                                  UTF8String('foo'))
        self.assert_method_eq(INTERFACE_TESTS, Byte(42, variant_level=1),
                              'Identity', Byte(42))
        self.assert_method_eq(INTERFACE_TESTS, Byte(42, variant_level=23),
                              'Identity', Byte(42, variant_level=23))
        self.assert_method_eq(INTERFACE_TESTS, Double(42.5, variant_level=1),
                              'Identity', 42.5)
        self.assert_method_eq(INTERFACE_TESTS, Double(-42.5, variant_level=1),
                              'Identity', -42.5)

        if have_signatures:
            self.assert_method_eq(INTERFACE_TESTS,
                                  String('foo', variant_level=1), 'Identity',
                                  'foo')
            self.assert_method_eq(INTERFACE_TESTS, Byte(42, variant_level=1),
                                  'Identity', Byte(42))
            self.assert_method_eq(INTERFACE_TESTS, Double(42.5,
                                                          variant_level=1),
                                  'Identity', Double(42.5))
            self.assert_method_eq(INTERFACE_TESTS,
                                  Double(-42.5, variant_level=1), 'Identity',
                                  -42.5)

        for i in (0, 42, 255):
            self.assert_method_eq(INTERFACE_TESTS, Byte(i), 'IdentityByte',
                                  Byte(i))
        for i in (True, False):
            self.assert_method_eq(INTERFACE_TESTS, i, 'IdentityBool', i)

        for i in (-0x8000, 0, 42, 0x7fff):
            self.assert_method_eq(INTERFACE_TESTS, i, 'IdentityInt16',
                                  Int16(i))
        for i in (0, 42, 0xffff):
            self.assert_method_eq(INTERFACE_TESTS, i, 'IdentityUInt16',
                                  UInt16(i))
        for i in (-0x7fffffff - 1, 0, 42, 0x7fffffff):
            self.assert_method_eq(INTERFACE_TESTS, i, 'IdentityInt32',
                                  Int32(i))
        for i in (0, 42, 0xffffffff):
            i = make_long(i)
            self.assert_method_eq(INTERFACE_TESTS, i, 'IdentityUInt32',
                                  UInt32(i))
        MANY = 1
        for n in (0x8000, 0x10000, 0x10000, 0x10000):
            MANY *= make_long(n)
        for i in (-MANY, 0, 42, MANY - 1):
            self.assert_method_eq(INTERFACE_TESTS, i, 'IdentityInt64',
                                  Int64(i))
        for i in (0, 42, 2 * MANY - 1):
            self.assert_method_eq(INTERFACE_TESTS, i, 'IdentityUInt64',
                                  UInt64(i))

        self.assert_method_eq(INTERFACE_TESTS, 42.3, 'IdentityDouble', 42.3)
        for i in ('', 'foo'):
            self.assert_method_eq(INTERFACE_TESTS, i, 'IdentityString', i)
        for i in ('\xa9', b'\xc2\xa9'):
            self.assert_method_eq(INTERFACE_TESTS, '\xa9', 'IdentityString', i)

        if have_signatures:
            self.assert_method_eq(INTERFACE_TESTS, Byte(0x42), 'IdentityByte',
                                  b'\x42')
            self.assert_method_eq(INTERFACE_TESTS, True, 'IdentityBool', 42)
            self.assert_method_eq(INTERFACE_TESTS, 42, 'IdentityInt16', 42)
            self.assert_method_eq(INTERFACE_TESTS, 42, 'IdentityUInt16', 42)
            self.assert_method_eq(INTERFACE_TESTS, 42, 'IdentityInt32', 42)
            self.assert_method_eq(INTERFACE_TESTS, 42, 'IdentityUInt32', 42)
            self.assert_method_eq(INTERFACE_TESTS, 42, 'IdentityInt64', 42)
            self.assert_method_eq(INTERFACE_TESTS, 42, 'IdentityUInt64', 42)
            self.assert_method_eq(INTERFACE_TESTS, 42.0, 'IdentityDouble', 42)

        self.assert_method_eq(
            INTERFACE_TESTS, [
                Byte(b'\x01', variant_level=1),
                Byte(b'\x02', variant_level=1),
                Byte(b'\x03', variant_level=1)
            ], 'IdentityArray',
            Array([Byte(b'\x01'), Byte(b'\x02'),
                   Byte(b'\x03')], signature='v'))

        self.assert_method_eq(
            INTERFACE_TESTS, [
                Int32(1, variant_level=1),
                Int32(2, variant_level=1),
                Int32(3, variant_level=1)
            ], 'IdentityArray',
            Array([Int32(1), Int32(2), Int32(3)], signature='v'))
        self.assert_method_eq(
            INTERFACE_TESTS, [
                String('a', variant_level=1),
                String('b', variant_level=1),
                String('c', variant_level=1)
            ], 'IdentityArray',
            Array([String('a'), String('b'),
                   String('c')], signature='v'))

        if have_signatures:
            self.assert_method_eq(INTERFACE_TESTS, [
                Byte(b'\x01', variant_level=1),
                Byte(b'\x02', variant_level=1),
                Byte(b'\x03', variant_level=1)
            ], 'IdentityArray', ByteArray(b'\x01\x02\x03'))
            self.assert_method_eq(
                INTERFACE_TESTS, [
                    Int32(1, variant_level=1),
                    Int32(2, variant_level=1),
                    Int32(3, variant_level=1)
                ], 'IdentityArray',
                [Int32(1), Int32(2), Int32(3)])
            self.assert_method_eq(INTERFACE_TESTS, [
                String('a', variant_level=1),
                String('b', variant_level=1),
                String('c', variant_level=1)
            ], 'IdentityArray', ['a', 'b', 'c'])

        self.assert_method_eq(INTERFACE_TESTS,
                              [Byte(1), Byte(2), Byte(3)], 'IdentityByteArray',
                              ByteArray(b'\x01\x02\x03'))
        if have_signatures:
            self.assert_method_eq(INTERFACE_TESTS, [1, 2, 3],
                                  'IdentityByteArray',
                                  [b'\x01', b'\x02', b'\x03'])
        self.assert_method_eq(INTERFACE_TESTS, [False, True],
                              'IdentityBoolArray', [False, True])
        if have_signatures:
            self.assert_method_eq(INTERFACE_TESTS, [False, True, True],
                                  'IdentityBoolArray', [0, 1, 2])

        self.assert_method_eq(
            INTERFACE_TESTS, [1, 2, 3], 'IdentityInt16Array',
            [Int16(1), Int16(2), Int16(3)])
        self.assert_method_eq(
            INTERFACE_TESTS, [1, 2, 3], 'IdentityUInt16Array',
            [UInt16(1), UInt16(2), UInt16(3)])
        self.assert_method_eq(
            INTERFACE_TESTS, [1, 2, 3], 'IdentityInt32Array',
            [Int32(1), Int32(2), Int32(3)])
        self.assert_method_eq(
            INTERFACE_TESTS, [1, 2, 3], 'IdentityUInt32Array',
            [UInt32(1), UInt32(2), UInt32(3)])
        self.assert_method_eq(
            INTERFACE_TESTS, [1, 2, 3], 'IdentityInt64Array',
            [Int64(1), Int64(2), Int64(3)])
        self.assert_method_eq(
            INTERFACE_TESTS, [1, 2, 3], 'IdentityUInt64Array',
            [UInt64(1), UInt64(2), UInt64(3)])

        if have_signatures:
            self.assert_method_eq(INTERFACE_TESTS, [1, 2, 3],
                                  'IdentityInt16Array', [1, 2, 3])
            self.assert_method_eq(INTERFACE_TESTS, [1, 2, 3],
                                  'IdentityUInt16Array', [1, 2, 3])
            self.assert_method_eq(INTERFACE_TESTS, [1, 2, 3],
                                  'IdentityInt32Array', [1, 2, 3])
            self.assert_method_eq(INTERFACE_TESTS, [1, 2, 3],
                                  'IdentityUInt32Array', [1, 2, 3])
            self.assert_method_eq(INTERFACE_TESTS, [1, 2, 3],
                                  'IdentityInt64Array', [1, 2, 3])
            self.assert_method_eq(INTERFACE_TESTS, [1, 2, 3],
                                  'IdentityUInt64Array', [1, 2, 3])

        self.assert_method_eq(INTERFACE_TESTS, [1.0, 2.5, 3.1],
                              'IdentityDoubleArray', [1.0, 2.5, 3.1])
        if have_signatures:
            self.assert_method_eq(INTERFACE_TESTS, [1.0, 2.5, 3.1],
                                  'IdentityDoubleArray', [1, 2.5, 3.1])
        self.assert_method_eq(INTERFACE_TESTS, ['a', 'b', 'c'],
                              'IdentityStringArray', ['a', 'b', 'c'])
        self.assert_method_eq(
            INTERFACE_TESTS, 6, 'Sum',
            [Int32(1), Int32(2), Int32(3)])
        if have_signatures:
            self.assert_method_eq(INTERFACE_TESTS, 6, 'Sum', [1, 2, 3])

        self.assert_InvertMapping_eq(INTERFACE_TESTS, {
            'fps': ['unreal', 'quake'],
            'rts': ['warcraft']
        }, 'InvertMapping', {
            'unreal': 'fps',
            'quake': 'fps',
            'warcraft': 'rts'
        })

        self.assert_method_eq(INTERFACE_TESTS, ('a', 1, 2), 'DeStruct',
                              ('a', UInt32(1), Int16(2)))
        self.assert_method_eq(INTERFACE_TESTS,
                              Array([String('x', variant_level=1)]),
                              'Primitize', [String('x', variant_level=1)])
        self.assert_method_eq(INTERFACE_TESTS,
                              Array([String('x', variant_level=1)]),
                              'Primitize', [String('x', variant_level=23)])
        self.assert_method_eq(
            INTERFACE_TESTS,
            Array([
                String('x', variant_level=1),
                Byte(1, variant_level=1),
                Byte(2, variant_level=1)
            ]), 'Primitize',
            Array([String('x'), Byte(1), Byte(2)], signature='v'))
        self.assert_method_eq(
            INTERFACE_TESTS,
            Array([
                String('x', variant_level=1),
                Byte(1, variant_level=1),
                Byte(2, variant_level=1)
            ]), 'Primitize',
            Array([String('x'), Array([Byte(1), Byte(2)])], signature='v'))
        self.assert_method_eq(INTERFACE_TESTS, Boolean(False), 'Invert', True)
        self.assert_method_eq(INTERFACE_TESTS, Boolean(True), 'Invert', False)
        if have_signatures:
            self.assert_method_eq(INTERFACE_TESTS, Boolean(False), 'Invert',
                                  42)
            self.assert_method_eq(INTERFACE_TESTS, Boolean(True), 'Invert', 0)
コード例 #7
0
        if have_signatures:
            self.assert_method_eq(INTERFACE_TESTS, [1, 2, 3],
                                  'IdentityByteArray',
                                  ['\x01', '\x02', '\x03'])
        self.assert_method_eq(INTERFACE_TESTS, [False, True],
                              'IdentityBoolArray', [False, True])
        if have_signatures:
            self.assert_method_eq(INTERFACE_TESTS, [False, True, True],
                                  'IdentityBoolArray', [0, 1, 2])

        self.assert_method_eq(
            INTERFACE_TESTS, [1, 2, 3], 'IdentityInt16Array',
            [Int16(1), Int16(2), Int16(3)])
        self.assert_method_eq(
            INTERFACE_TESTS, [1, 2, 3], 'IdentityUInt16Array',
            [UInt16(1), UInt16(2), UInt16(3)])
        self.assert_method_eq(
            INTERFACE_TESTS, [1, 2, 3], 'IdentityInt32Array',
            [Int32(1), Int32(2), Int32(3)])
        self.assert_method_eq(
            INTERFACE_TESTS, [1, 2, 3], 'IdentityUInt32Array',
            [UInt32(1), UInt32(2), UInt32(3)])
        self.assert_method_eq(
            INTERFACE_TESTS, [1, 2, 3], 'IdentityInt64Array',
            [Int64(1), Int64(2), Int64(3)])
        self.assert_method_eq(
            INTERFACE_TESTS, [1, 2, 3], 'IdentityUInt64Array',
            [UInt64(1), UInt64(2), UInt64(3)])

        if have_signatures:
            self.assert_method_eq(INTERFACE_TESTS, [1, 2, 3],