telepathy-mission-control: nickname test: test what happens when we set an empty nickname
Simon McVittie
smcv at kemper.freedesktop.org
Tue Oct 9 09:11:35 PDT 2012
Module: telepathy-mission-control
Branch: master
Commit: a4355bb2eb2a682a4c1298c01683cffb4e42a666
URL: http://cgit.freedesktop.org/telepathy/telepathy-mission-control/commit/?id=a4355bb2eb2a682a4c1298c01683cffb4e42a666
Author: Simon McVittie <simon.mcvittie at collabora.co.uk>
Date: Tue Oct 9 11:10:12 2012 +0100
nickname test: test what happens when we set an empty nickname
---
tests/twisted/account-manager/nickname.py | 70 ++++++++++++++++++++---------
1 files changed, 49 insertions(+), 21 deletions(-)
diff --git a/tests/twisted/account-manager/nickname.py b/tests/twisted/account-manager/nickname.py
index 5ca8708..5a1c465 100644
--- a/tests/twisted/account-manager/nickname.py
+++ b/tests/twisted/account-manager/nickname.py
@@ -25,7 +25,7 @@ from servicetest import (EventPattern, tp_name_prefix, tp_path_prefix,
from mctest import exec_test, create_fakecm_account, enable_fakecm_account
import constants as cs
-def test(q, bus, mc, trivial_nickname=False):
+def test(q, bus, mc, nickname):
params = dbus.Dictionary({"account": "wjt at example.com",
"password": "secrecy"}, signature='sv')
(cm_name_ref, account) = create_fakecm_account(q, bus, mc, params)
@@ -33,21 +33,19 @@ def test(q, bus, mc, trivial_nickname=False):
account_iface = dbus.Interface(account, cs.ACCOUNT)
account_props = dbus.Interface(account, cs.PROPERTIES_IFACE)
- if trivial_nickname:
- nickname = params['account']
- else:
- nickname = 'resiak'
-
call_async(q, account_props, 'Set', cs.ACCOUNT, 'Nickname',
nickname)
- q.expect_many(
- EventPattern('dbus-signal',
- path=account.object_path,
- signal='AccountPropertyChanged',
- interface=cs.ACCOUNT,
- args=[{'Nickname': nickname}]),
- EventPattern('dbus-return', method='Set'),
- )
+ if nickname == '':
+ q.expect('dbus-return', method='Set')
+ else:
+ q.expect_many(
+ EventPattern('dbus-signal',
+ path=account.object_path,
+ signal='AccountPropertyChanged',
+ interface=cs.ACCOUNT,
+ args=[{'Nickname': nickname}]),
+ EventPattern('dbus-return', method='Set'),
+ )
assertEquals(nickname, account_props.Get(cs.ACCOUNT, 'Nickname'))
# OK, let's go online
@@ -58,9 +56,17 @@ def test(q, bus, mc, trivial_nickname=False):
]
forbidden = []
- if trivial_nickname:
+ if nickname == params['account'] or nickname == '':
forbidden.append(EventPattern('dbus-method-call', method='SetAliases'))
q.forbid_events(forbidden)
+
+ if nickname == '':
+ expect_after_connect.append(EventPattern('dbus-signal',
+ path=account.object_path,
+ signal='AccountPropertyChanged',
+ interface=cs.ACCOUNT,
+ predicate=(lambda e:
+ e.args[0].get('Nickname') == params['account'])))
else:
expect_after_connect.append(EventPattern('dbus-method-call',
interface=cs.CONN_IFACE_ALIASING, method='SetAliases',
@@ -75,12 +81,14 @@ def test(q, bus, mc, trivial_nickname=False):
get_aliases = results[1]
assert get_aliases.args[0] == [ conn.self_handle ]
- if trivial_nickname:
+ if nickname == params['account']:
assertLength(2, results)
+ elif nickname == '':
+ assertLength(3, results)
else:
assertLength(3, results)
set_aliases = results[2]
- assert set_aliases.args[0] == { conn.self_handle: 'resiak' }
+ assert set_aliases.args[0] == { conn.self_handle: nickname }
q.dbus_return(set_aliases.message, signature='')
if forbidden:
@@ -115,13 +123,13 @@ def test(q, bus, mc, trivial_nickname=False):
# If we set a trivial nickname while connected, MC does use it
nickname = params['account']
call_async(q, account_props, 'Set', cs.ACCOUNT, 'Nickname',
- nickname)
+ params['account'])
_, _, e = q.expect_many(
EventPattern('dbus-signal',
path=account.object_path,
signal='AccountPropertyChanged',
interface=cs.ACCOUNT,
- args=[{'Nickname': nickname}]),
+ args=[{'Nickname': params['account']}]),
EventPattern('dbus-return', method='Set'),
EventPattern('dbus-method-call',
interface=cs.CONN_IFACE_ALIASING, method='SetAliases',
@@ -131,9 +139,29 @@ def test(q, bus, mc, trivial_nickname=False):
assertEquals(nickname, account_props.Get(cs.ACCOUNT, 'Nickname'))
q.dbus_return(e.message, signature='')
+ # If we set an empty nickname while connected, MC currently does use it
+ # (??? this is pretty weird)
+ call_async(q, account_props, 'Set', cs.ACCOUNT, 'Nickname',
+ '')
+ _, _, e = q.expect_many(
+ EventPattern('dbus-signal',
+ path=account.object_path,
+ signal='AccountPropertyChanged',
+ interface=cs.ACCOUNT,
+ args=[{'Nickname': ''}]),
+ EventPattern('dbus-return', method='Set'),
+ EventPattern('dbus-method-call',
+ interface=cs.CONN_IFACE_ALIASING, method='SetAliases',
+ args=[{ conn.self_handle: '' }],
+ handled=False)
+ )
+ assertEquals('', account_props.Get(cs.ACCOUNT, 'Nickname'))
+ q.dbus_return(e.message, signature='')
+
def test_both(q, bus, mc):
- test(q, bus, mc, trivial_nickname=False)
- test(q, bus, mc, trivial_nickname=True)
+ test(q, bus, mc, nickname='resiak')
+ test(q, bus, mc, nickname='wjt at example.com')
+ test(q, bus, mc, nickname='')
if __name__ == '__main__':
exec_test(test_both, {})
More information about the telepathy-commits
mailing list