diff options
| author | Simon McVittie <smcv@celebrin.pseudorandom.co.uk> | 2006-09-27 11:55:46 +0100 |
|---|---|---|
| committer | Simon McVittie <smcv@celebrin.pseudorandom.co.uk> | 2006-09-27 11:55:46 +0100 |
| commit | 747b2b9d37329796c4bf0bdaa1ca99e1d82d420d (patch) | |
| tree | cdf2ac99df6f70363c4d9500a1b3d84cd2aa21cb /test | |
| parent | de8aeda1687948230bb97fa4083744087356e738 (diff) | |
| download | dbus-python-747b2b9d37329796c4bf0bdaa1ca99e1d82d420d.tar.gz | |
Add a test case for the various options to get_args_list.
Fix ByteArray unmarshalling.
Diffstat (limited to 'test')
| -rwxr-xr-x | test/test-standalone.py | 112 |
1 files changed, 91 insertions, 21 deletions
diff --git a/test/test-standalone.py b/test/test-standalone.py index 454c6aa..e2e6bc1 100755 --- a/test/test-standalone.py +++ b/test/test-standalone.py @@ -23,6 +23,30 @@ if not _dbus_bindings.__file__.startswith(pydir): class TestTypes(unittest.TestCase): + def test_Variant(self): + Variant = types.Variant + a = self.assert_ + a(Variant(1, 'i') == Variant(1, 'i')) + a(not (Variant(1, 'i') == Variant(1, 'u'))) + a(not (Variant(1, 'i') == Variant(2, 'i'))) + a(not (Variant(1, 'i') == Variant(2, 'u'))) + a(not (Variant(1, 'i') != Variant(1, 'i'))) + a(Variant(1, 'i') != Variant(1, 'u')) + a(Variant(1, 'i') != Variant(2, 'i')) + a(Variant(1, 'i') != Variant(2, 'u')) + + def test_Signature(self): + self.assertRaises(Exception, types.Signature, 'a') + self.assertEquals(types.Signature('ab'), 'ab') + self.assert_(isinstance(types.Signature('ab'), str)) + self.assertEquals(tuple(types.Signature('ab(xt)a{sv}')), + ('ab', '(xt)', 'a{sv}')) + self.assert_(isinstance(tuple(types.Signature('ab'))[0], + types.Signature)) + + +class TestMessageMarshalling(unittest.TestCase): + def test_append(self): aeq = self.assertEquals from _dbus_bindings import SignalMessage @@ -88,27 +112,6 @@ class TestTypes(unittest.TestCase): aeq(avy[1][1].__class__, types.Byte) aeq(avy[1][1], types.Byte(1)) - def test_Variant(self): - Variant = types.Variant - a = self.assert_ - a(Variant(1, 'i') == Variant(1, 'i')) - a(not (Variant(1, 'i') == Variant(1, 'u'))) - a(not (Variant(1, 'i') == Variant(2, 'i'))) - a(not (Variant(1, 'i') == Variant(2, 'u'))) - a(not (Variant(1, 'i') != Variant(1, 'i'))) - a(Variant(1, 'i') != Variant(1, 'u')) - a(Variant(1, 'i') != Variant(2, 'i')) - a(Variant(1, 'i') != Variant(2, 'u')) - - def test_Signature(self): - self.assertRaises(Exception, types.Signature, 'a') - self.assertEquals(types.Signature('ab'), 'ab') - self.assert_(isinstance(types.Signature('ab'), str)) - self.assertEquals(tuple(types.Signature('ab(xt)a{sv}')), - ('ab', '(xt)', 'a{sv}')) - self.assert_(isinstance(tuple(types.Signature('ab'))[0], - types.Signature)) - def test_guess_signature(self): aeq = self.assertEquals from _dbus_bindings import Message @@ -122,5 +125,72 @@ class TestTypes(unittest.TestCase): aeq(Message.guess_signature(['a']), 'as') aeq(Message.guess_signature({'a':'b'}), 'a{ss}') + def test_get_args_options(self): + aeq = self.assertEquals + s = _dbus_bindings.SignalMessage('/', 'foo.bar', 'baz') + s.append('b', 'bytes', -1, 1, 'str', 'var', signature='yayiusv') + aeq(s.get_args_list(), ['b', ['b','y','t','e','s'], -1, 1, + u'str', types.Variant(u'var', signature='s')]) + byte, bytes, int32, uint32, string, variant = s.get_args_list() + aeq(byte.__class__, types.Byte) + aeq(bytes.__class__, types.Array) + aeq(bytes[0].__class__, types.Byte) + aeq(int32.__class__, types.Int32) + aeq(uint32.__class__, types.UInt32) + aeq(string.__class__, unicode) + aeq(variant.__class__, types.Variant) + aeq(variant.signature, 's') + + byte, bytes, int32, uint32, string, variant = s.get_args_list( + integer_bytes=True) + aeq(byte.__class__, int) + aeq(byte, ord('b')) + aeq(bytes.__class__, types.Array) + aeq(bytes[0].__class__, int) + aeq(bytes, [ord('b'), ord('y'), ord('t'), ord('e'), ord('s')]) + aeq(int32.__class__, types.Int32) + aeq(uint32.__class__, types.UInt32) + aeq(string.__class__, unicode) + aeq(variant.__class__, types.Variant) + aeq(variant.signature, 's') + + byte, bytes, int32, uint32, string, variant = s.get_args_list( + byte_arrays=True) + aeq(byte.__class__, types.Byte) + aeq(bytes.__class__, types.ByteArray) + aeq(bytes, 'bytes') + aeq(bytes[0].__class__, types.Byte) + aeq(int32.__class__, types.Int32) + aeq(uint32.__class__, types.UInt32) + aeq(string.__class__, unicode) + aeq(variant.__class__, types.Variant) + aeq(variant.signature, 's') + + byte, bytes, int32, uint32, string, variant = s.get_args_list( + utf8_strings=True) + aeq(byte.__class__, types.Byte) + aeq(bytes.__class__, types.Array) + aeq(bytes[0].__class__, types.Byte) + aeq(int32.__class__, types.Int32) + aeq(uint32.__class__, types.UInt32) + aeq(string.__class__, str) + aeq(string, 'str') + aeq(variant.__class__, types.Variant) + aeq(variant.signature, 's') + aeq(variant.object.__class__, str) + aeq(variant.object, 'var') + + byte, bytes, int32, uint32, string, variant = s.get_args_list( + variant_unpack_level=1) + aeq(byte.__class__, types.Byte) + aeq(bytes.__class__, types.Array) + aeq(bytes[0].__class__, types.Byte) + aeq(int32.__class__, types.Int32) + aeq(uint32.__class__, types.UInt32) + aeq(string.__class__, unicode) + aeq(variant.__class__, unicode) + aeq(variant, 'var') + + if __name__ == '__main__': unittest.main() |
