[telepathy-mission-control/master] account-manager/param-types.py: fd.o #21377: exercise all the types for which telepathy-spec defines a serialization

Simon McVittie simon.mcvittie at collabora.co.uk
Wed Jun 10 03:48:13 PDT 2009


---
 test/twisted/Makefile.am                           |    2 +
 test/twisted/account-manager/param-types.py        |   66 ++++++++++++++++++++
 .../telepathy/managers/onewitheverything.manager   |   45 +++++++++++++
 3 files changed, 113 insertions(+), 0 deletions(-)
 create mode 100644 test/twisted/account-manager/param-types.py
 create mode 100644 test/twisted/telepathy/managers/onewitheverything.manager

diff --git a/test/twisted/Makefile.am b/test/twisted/Makefile.am
index 54f56fb..0542c59 100644
--- a/test/twisted/Makefile.am
+++ b/test/twisted/Makefile.am
@@ -7,6 +7,7 @@ TWISTED_BASIC_TESTS = \
 	account-manager/create-with-properties.py \
 	account-manager/nickname.py \
 	account-manager/old-create-with-properties.py \
+	account-manager/param-types.py \
 	account-manager/presence.py \
 	account-manager/reconnect.py \
 	account-manager/recover-from-disconnect.py \
@@ -187,6 +188,7 @@ EXTRA_DIST = \
 	telepathy/clients/README \
 	telepathy/clients/AbiWord.client \
 	telepathy/managers/fakecm.manager \
+	telepathy/managers/onewitheverything.manager \
 	telepathy/managers/README \
 	constants.py \
         fakeclient.py \
diff --git a/test/twisted/account-manager/param-types.py b/test/twisted/account-manager/param-types.py
new file mode 100644
index 0000000..dc8dba6
--- /dev/null
+++ b/test/twisted/account-manager/param-types.py
@@ -0,0 +1,66 @@
+import dbus
+import dbus.service
+
+from servicetest import EventPattern, tp_name_prefix, tp_path_prefix, \
+        call_async
+from mctest import exec_test, create_fakecm_account
+import constants as cs
+
+def test(q, bus, mc):
+    cm_name_ref = dbus.service.BusName(
+            cs.tp_name_prefix + '.ConnectionManager.onewitheverything',
+            bus=bus)
+
+    # Get the AccountManager interface
+    account_manager = bus.get_object(cs.AM, cs.AM_PATH)
+    account_manager_iface = dbus.Interface(account_manager, cs.AM)
+
+    params = dbus.Dictionary({
+        's': 'lalala',
+        'o': dbus.ObjectPath('/lalala'),
+        'b': False,
+        'q': dbus.UInt16(42),
+        'u': dbus.UInt32(0xFFFFFFFFL),
+        't': dbus.UInt64(0xFFFFffffFFFFffffL),
+        'n': dbus.Int16(-42),
+        'i': dbus.Int32(-42),
+        'x': dbus.Int64(-1 * 0x7FFFffffFFFFffffL),
+        'd': 4.5,
+        'as': dbus.Array(['one', 'two', 'three'], signature='s')
+        }, signature='sv')
+
+    # Create an account
+    call_async(q, account_manager_iface, 'CreateAccount',
+            'onewitheverything', # Connection_Manager
+            'serializable', # Protocol
+            'fakeaccount', #Display_Name
+            params, # Parameters
+            {}, # Properties
+            )
+
+    am_signal, ret = q.expect_many(
+            EventPattern('dbus-signal', path=cs.AM_PATH,
+                interface=cs.AM, signal='AccountValidityChanged'),
+            EventPattern('dbus-return', method='CreateAccount'),
+            )
+    account_path = ret.value[0]
+    assert am_signal.args == [account_path, True], am_signal.args
+    assert account_path is not None
+
+    account = bus.get_object(
+        cs.tp_name_prefix + '.AccountManager',
+        account_path)
+    account_iface = dbus.Interface(account, cs.ACCOUNT)
+    account_props = dbus.Interface(account, cs.PROPERTIES_IFACE)
+
+    stored_params = account_props.Get(cs.ACCOUNT, 'Parameters')
+
+    for k in stored_params:
+        assert k in params, k
+
+    for k in params:
+        assert k in stored_params, k
+        assert stored_params[k] == params[k], (k, stored_params[k], params[k])
+
+if __name__ == '__main__':
+    exec_test(test, {})
diff --git a/test/twisted/telepathy/managers/onewitheverything.manager b/test/twisted/telepathy/managers/onewitheverything.manager
new file mode 100644
index 0000000..e7dba1b
--- /dev/null
+++ b/test/twisted/telepathy/managers/onewitheverything.manager
@@ -0,0 +1,45 @@
+[Protocol serializable]
+# All the types for which telepathy-spec defines a serialization
+param-s=s required
+param-o=o
+param-b=b
+param-q=q
+param-u=u
+param-t=t
+param-n=n
+param-i=i
+param-x=x
+param-d=d
+param-as=as
+
+[Protocol defaults]
+# All the types, plus a default for each
+param-s=s
+default-s=foo
+param-o=o
+default-o=/foo
+param-b=b
+default-b=true
+param-q=q
+default-q=1
+param-u=u
+default-u=1
+param-t=t
+default-t=1
+param-n=n
+default-n=-1
+param-i=i
+default-i=-1
+param-x=x
+default-x=-1
+param-d=d
+default-d=1.5
+param-as=as
+default-as=foo;bar;baz;
+
+[Protocol flags]
+# All the flags
+param-account=s required register
+param-name=s register
+param-key=s required register secret
+param-com.example.Badgerable.Badgers=s dbus-property
-- 
1.5.6.5




More information about the telepathy-commits mailing list