7 builddir
= os
.environ
["DBUS_TOP_BUILDDIR"]
10 sys
.path
.insert(0, pydir
)
11 sys
.path
.insert(0, pydir
+ 'dbus')
15 import dbus
.types
as types
18 if not pkg
.startswith(pydir
):
19 raise Exception("DBus modules (%s) are not being picked up from the package"%pkg
)
21 if not _dbus_bindings
.__file
__.startswith(pydir
):
22 raise Exception("DBus modules (%s) are not being picked up from the package"%_dbus_bindings
.__file
__)
24 class TestTypes(unittest
.TestCase
):
26 def test_append(self
):
27 aeq
= self
.assertEquals
28 from _dbus_bindings
import SignalMessage
29 s
= SignalMessage('/', 'foo.bar', 'baz')
30 s
.append([types
.Byte(1)], signature
='ay')
31 aeq(s
.get_signature(), 'ay')
32 aeq(s
.get_args_list(), [[types
.Byte(1)]])
34 s
= SignalMessage('/', 'foo.bar', 'baz')
35 s
.append([], signature
='ay')
36 aeq(s
.get_args_list(), [[]])
38 def test_append_ByteArray(self
):
39 aeq
= self
.assertEquals
40 from _dbus_bindings
import SignalMessage
41 s
= SignalMessage('/', 'foo.bar', 'baz')
42 s
.append(types
.ByteArray('ab'), signature
='ay')
43 aeq(s
.get_args_list(), [[types
.Byte('a'), types
.Byte('b')]])
44 s
= SignalMessage('/', 'foo.bar', 'baz')
45 s
.append(types
.ByteArray('ab'), signature
='av')
46 aeq(s
.get_args_list(), [[types
.Variant(types
.Byte('a')),
47 types
.Variant(types
.Byte('b'))]])
49 def test_append_Variant(self
):
51 aeq
= self
.assertEquals
52 from _dbus_bindings
import SignalMessage
53 s
= SignalMessage('/', 'foo.bar', 'baz')
54 s
.append(types
.Variant(1, signature
='i'),
55 types
.Variant('a', signature
='s'),
56 types
.Variant([(types
.Variant('a', signature
='y'), 'b'),
57 (types
.Variant(123, signature
='u'), 1)],
59 aeq(s
.get_signature(), 'vvv')
60 args
= s
.get_args_list()
61 aeq(args
[0].__class
__, types
.Variant
)
62 aeq(args
[0].signature
, 'i')
63 aeq(args
[0].object.__class
__, types
.Int32
)
64 aeq(args
[0].object, 1)
65 aeq(args
[1].__class
__, types
.Variant
)
66 aeq(args
[1].signature
, 's')
67 a(isinstance(args
[1].object, unicode))
68 aeq(args
[2].__class
__, types
.Variant
)
69 aeq(args
[1].object, 'a')
70 aeq(args
[2].signature
, 'a(vy)')
72 aeq(avy
.__class
__, types
.Array
)
74 aeq(avy
[0].__class
__, tuple)
76 aeq(avy
[0][0].__class
__, types
.Variant
)
77 aeq(avy
[0][0].signature
, 'y')
78 aeq(avy
[0][0].object.__class
__, types
.Byte
)
79 aeq(avy
[0][0].object, types
.Byte('a'))
80 aeq(avy
[0][1].__class
__, types
.Byte
)
81 aeq(avy
[0][1], types
.Byte('b'))
82 aeq(avy
[1].__class
__, tuple)
84 aeq(avy
[1][0].__class
__, types
.Variant
)
85 aeq(avy
[1][0].signature
, 'u')
86 aeq(avy
[1][0].object.__class
__, types
.UInt32
)
87 aeq(avy
[1][0].object, 123)
88 aeq(avy
[1][1].__class
__, types
.Byte
)
89 aeq(avy
[1][1], types
.Byte(1))
91 def test_Variant(self
):
92 Variant
= types
.Variant
94 a(Variant(1, 'i') == Variant(1, 'i'))
95 a(not (Variant(1, 'i') == Variant(1, 'u')))
96 a(not (Variant(1, 'i') == Variant(2, 'i')))
97 a(not (Variant(1, 'i') == Variant(2, 'u')))
98 a(not (Variant(1, 'i') != Variant(1, 'i')))
99 a(Variant(1, 'i') != Variant(1, 'u'))
100 a(Variant(1, 'i') != Variant(2, 'i'))
101 a(Variant(1, 'i') != Variant(2, 'u'))
103 def test_Signature(self
):
104 self
.assertRaises(Exception, types
.Signature
, 'a')
105 self
.assertEquals(types
.Signature('ab'), 'ab')
106 self
.assert_(isinstance(types
.Signature('ab'), str))
107 self
.assertEquals(tuple(types
.Signature('ab(xt)a{sv}')),
108 ('ab', '(xt)', 'a{sv}'))
109 self
.assert_(isinstance(tuple(types
.Signature('ab'))[0],
112 def test_guess_signature(self
):
113 aeq
= self
.assertEquals
114 from _dbus_bindings
import Message
115 aeq(Message
.guess_signature(('a','b')), '(ss)')
116 aeq(Message
.guess_signature('a','b'), 'ss')
117 aeq(Message
.guess_signature(['a','b']), 'as')
118 aeq(Message
.guess_signature(('a',)), '(s)')
119 aeq(Message
.guess_signature('abc'), 's')
120 aeq(Message
.guess_signature(types
.Int32(123)), 'i')
121 aeq(Message
.guess_signature(('a',)), '(s)')
122 aeq(Message
.guess_signature(['a']), 'as')
123 aeq(Message
.guess_signature({'a':'b'}), 'a{ss}')
125 if __name__
== '__main__':