diff options
author | Will Thompson <will.thompson@collabora.co.uk> | 2011-02-18 16:42:52 +0000 |
---|---|---|
committer | Will Thompson <will.thompson@collabora.co.uk> | 2011-02-18 17:28:59 +0000 |
commit | 5961487b0ec321b72e58ab9823ccd6f0a0097c95 (patch) | |
tree | 10186201261ab3ccc74857b7a91e7cea365b6bc2 /tests | |
parent | 43523d6c224129aaeb64f55ceed3c6719c3e2919 (diff) |
UpdateParameters: check for setting parameters to their default
A few patches ago, we made MC smarter about unsetting parameters which
have default values. Here, we make the symmetrical case work: explicitly
setting a previously-unset parameter to its default value should not
need a reconnect to take effect.
I really don't like how complicated check_parameter_update() has become,
but this does actually seem to need to be this complicated to get every
case right. Perhaps check_one_parameter() should be split into 'set' and
'unset' cases.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/twisted/account-manager/update-parameters.py | 45 | ||||
-rw-r--r-- | tests/twisted/telepathy/managers/fakecm.manager | 4 |
2 files changed, 46 insertions, 3 deletions
diff --git a/tests/twisted/account-manager/update-parameters.py b/tests/twisted/account-manager/update-parameters.py index 08367c00..74998f80 100644 --- a/tests/twisted/account-manager/update-parameters.py +++ b/tests/twisted/account-manager/update-parameters.py @@ -33,8 +33,11 @@ def test(q, bus, mc): tp_name_prefix + '.ConnectionManager.fakecm', bus=bus) # Create an account - params = dbus.Dictionary({"account": "someguy@example.com", - "password": "secrecy", 'nickname': 'albinoblacksheep'}, signature='sv') + params = dbus.Dictionary( + {"account": "someguy@example.com", + "password": "secrecy", + "nickname": "albinoblacksheep", + }, signature='sv') (cm_name_ref, account) = create_fakecm_account(q, bus, mc, params) # Enable the account @@ -196,6 +199,44 @@ def test(q, bus, mc): not_yet = ret.value[0] assertEquals(['nickname'], not_yet) + # Set contrived-example to its default value; since there's been no + # practical change, we shouldn't be told we need to reconnect to apply it. + call_async(q, account, 'UpdateParameters', + { 'contrived-example': dbus.UInt32(5) }, []) + ret, _ = q.expect_many( + EventPattern('dbus-return', method='UpdateParameters'), + EventPattern('dbus-signal', + path=account.object_path, + interface=cs.ACCOUNT, signal='AccountPropertyChanged', + args=[{'Parameters': { + 'account': r'\\', + 'password': 'secrecy', + 'secret-mushroom': '/Amanita muscaria/', + 'snakes': 42, + "contrived-example": 5, + }}]), + ) + not_yet = ret.value[0] + assertEquals([], not_yet) + + # Unset contrived-example; again, MC should be smart enough to know we + # don't need to do anything. + call_async(q, account, 'UpdateParameters', {}, ['contrived-example']) + ret, _ = q.expect_many( + EventPattern('dbus-return', method='UpdateParameters'), + EventPattern('dbus-signal', + path=account.object_path, + interface=cs.ACCOUNT, signal='AccountPropertyChanged', + args=[{'Parameters': { + 'account': r'\\', + 'password': 'secrecy', + 'secret-mushroom': '/Amanita muscaria/', + 'snakes': 42, + }}]), + ) + not_yet = ret.value[0] + assertEquals([], not_yet) + accounts_dir = os.environ['MC_ACCOUNT_DIR'] # fd.o #28557: when the file has been updated, the account parameter diff --git a/tests/twisted/telepathy/managers/fakecm.manager b/tests/twisted/telepathy/managers/fakecm.manager index 23a074e5..e0e63d5d 100644 --- a/tests/twisted/telepathy/managers/fakecm.manager +++ b/tests/twisted/telepathy/managers/fakecm.manager @@ -10,6 +10,8 @@ param-register=b param-com.example.Badgerable.Badgered=b dbus-property param-secret-mushroom=s param-snakes=u +param-contrived-example=u default-register=0 default-com.example.Badgerable.Badgered=0 -default-snakes=1 +default-com.example.Badgerable.Episode=5 +default-contrived-example=5 |