summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorSimon McVittie <smcv@celebrin.pseudorandom.co.uk>2006-09-27 11:55:46 +0100
committerSimon McVittie <smcv@celebrin.pseudorandom.co.uk>2006-09-27 11:55:46 +0100
commit747b2b9d37329796c4bf0bdaa1ca99e1d82d420d (patch)
treecdf2ac99df6f70363c4d9500a1b3d84cd2aa21cb /test
parentde8aeda1687948230bb97fa4083744087356e738 (diff)
downloaddbus-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-xtest/test-standalone.py112
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()