diff options
author | Simon McVittie <smcv@debian.org> | 2010-10-04 18:57:47 +0100 |
---|---|---|
committer | Simon McVittie <smcv@debian.org> | 2010-11-18 14:56:17 +0000 |
commit | 980215d5973ae67a87131585375665c74b97a586 (patch) | |
tree | 7bf246a2c5de5e7503d76cc2cc48b4ae877a4aca /tests | |
parent | 84a18ead14f77f44085cde9cd2c23ee1a65448a4 (diff) |
Test Protocol objects in a basic way
Diffstat (limited to 'tests')
-rw-r--r-- | tests/twisted/Makefile.am | 1 | ||||
-rw-r--r-- | tests/twisted/cm/protocol.py | 56 |
2 files changed, 57 insertions, 0 deletions
diff --git a/tests/twisted/Makefile.am b/tests/twisted/Makefile.am index a55e9b3..06bc3c9 100644 --- a/tests/twisted/Makefile.am +++ b/tests/twisted/Makefile.am @@ -1,4 +1,5 @@ TWISTED_TESTS = \ + cm/protocol.py \ connect/connect-success.py \ connect/connect-success-ssl.py \ connect/connect-fail.py \ diff --git a/tests/twisted/cm/protocol.py b/tests/twisted/cm/protocol.py new file mode 100644 index 0000000..85e5430 --- /dev/null +++ b/tests/twisted/cm/protocol.py @@ -0,0 +1,56 @@ +""" +Test Idle's o.fd.T.Protocol implementation +""" + +import dbus +from servicetest import (unwrap, tp_path_prefix, assertEquals, assertContains, + call_async) +from idletest import exec_test +import constants as cs + +def test(q, bus, conn, server): + cm = bus.get_object(cs.CM + '.idle', + tp_path_prefix + '/ConnectionManager/idle') + cm_iface = dbus.Interface(cm, cs.CM) + cm_prop_iface = dbus.Interface(cm, cs.PROPERTIES_IFACE) + + protocols = unwrap(cm_prop_iface.Get(cs.CM, 'Protocols')) + assertEquals(set(['irc']), set(protocols.keys())) + + protocol_names = unwrap(cm_iface.ListProtocols()) + assertEquals(set(['irc']), set(protocol_names)) + + cm_params = cm_iface.GetParameters('irc') + local_props = protocols['irc'] + local_params = local_props[cs.PROTOCOL + '.Parameters'] + assertEquals(cm_params, local_params) + + proto = bus.get_object(cm.bus_name, cm.object_path + '/irc') + proto_iface = dbus.Interface(proto, cs.PROTOCOL) + proto_prop_iface = dbus.Interface(proto, cs.PROPERTIES_IFACE) + proto_props = unwrap(proto_prop_iface.GetAll(cs.PROTOCOL)) + + for key in ['Parameters', 'Interfaces', 'ConnectionInterfaces', + 'RequestableChannelClasses', u'VCardField', u'EnglishName', u'Icon']: + a = local_props[cs.PROTOCOL + '.' + key] + b = proto_props[key] + assertEquals(a, b) + + assertEquals('x-irc', proto_props['VCardField']) + assertEquals('IRC', proto_props['EnglishName']) + assertEquals('im-irc', proto_props['Icon']) + + assertContains(cs.CONN_IFACE_ALIASING, proto_props['ConnectionInterfaces']) + assertContains(cs.CONN_IFACE_REQUESTS, proto_props['ConnectionInterfaces']) + + assertEquals('robot101', unwrap(proto_iface.NormalizeContact('Robot101'))) + + call_async(q, proto_iface, 'IdentifyAccount', {'account': 'Robot101'}) + q.expect('dbus-error', method='IdentifyAccount', name=cs.INVALID_ARGUMENT) + + test_params = {'account': 'Robot101', 'server': 'irc.oftc.net' } + acc_name = unwrap(proto_iface.IdentifyAccount(test_params)) + assertEquals('robot101@irc.oftc.net', acc_name) + +if __name__ == '__main__': + exec_test(test) |