[Pkg-telepathy-commits] [telepathy-mission-control-6] 94/280: Test some new corner cases in the default account storage backend

Simon McVittie smcv at debian.org
Thu Mar 27 20:07:09 UTC 2014


This is an automated email from the git hooks/post-receive script.

smcv pushed a commit to branch debian
in repository telepathy-mission-control-6.

commit f57ad64d19ff9002e0820678b3aca472a02c2270
Author: Simon McVittie <simon.mcvittie at collabora.co.uk>
Date:   Thu Sep 13 13:21:45 2012 +0100

    Test some new corner cases in the default account storage backend
    
    Now that we can load individual accounts from any of several directories,
    we should test that precedence and deletion behave correctly.
    
    Bug: https://bugs.freedesktop.org/show_bug.cgi?id=54875
    Reviewed-by: Guillaume Desmottes <guillaume.desmottes at collabora.co.uk>
---
 .../account-storage/default-keyring-storage.py     | 65 +++++++++++++++++++++-
 1 file changed, 64 insertions(+), 1 deletion(-)

diff --git a/tests/twisted/account-storage/default-keyring-storage.py b/tests/twisted/account-storage/default-keyring-storage.py
index c67399e..58ef108 100644
--- a/tests/twisted/account-storage/default-keyring-storage.py
+++ b/tests/twisted/account-storage/default-keyring-storage.py
@@ -27,7 +27,7 @@ import dbus
 import dbus.service
 
 from servicetest import EventPattern, tp_name_prefix, tp_path_prefix, \
-        call_async, assertEquals
+        call_async, assertEquals, assertContains, assertDoesNotContain
 from mctest import (
     exec_test, create_fakecm_account, get_fakecm_account, connect_to_mc,
     keyfile_read, tell_mc_to_die, resuscitate_mc
@@ -180,7 +180,45 @@ def test(q, bus, mc):
 }
 """)
 
+    # This version of this account will be used
+    open(new_variant_file_name.replace('.account', 'priority.account'),
+            'w').write("""{
+'manager': <'fakecm'>,
+'protocol': <'fakeprotocol'>,
+'DisplayName': <'Visible'>,
+'AutomaticPresence': <'2;available;;'>,
+'KeyFileParameters': <{'account': 'dontdivert at example.com',
+    'password': 'password_in_variant_file'}>
+}
+""")
+    # This one won't, because it's "masked" by the higher-priority one
+    open(low_prio_variant_file_name.replace('.account', 'priority.account'),
+            'w').write("""{
+'manager': <'fakecm'>,
+'protocol': <'fakeprotocol'>,
+'DisplayName': <'Hidden'>,
+'Nickname': <'Hidden'>,
+'AutomaticPresence': <'2;available;;'>,
+'KeyFileParameters': <{'account': 'dontdivert at example.com',
+    'password': 'password_in_variant_file'}>
+}
+""")
+
+    # This empty file is considered to "mask" the lower-priority one
+    open(new_variant_file_name.replace('.account', 'masked.account'),
+            'w').write('')
+    open(low_prio_variant_file_name.replace('.account', 'masked.account'),
+            'w').write("""{
+'manager': <'fakecm'>,
+'protocol': <'fakeprotocol'>,
+'AutomaticPresence': <'2;available;;'>,
+'KeyFileParameters': <{'account': 'dontdivert at example.com',
+    'password': 'password_in_variant_file'}>
+}
+""")
+
     account_manager, properties, interfaces = resuscitate_mc(q, bus, mc)
+    assertContains(account_path, properties['ValidAccounts'])
     account = get_fakecm_account(bus, mc, account_path)
     account_iface = dbus.Interface(account, cs.ACCOUNT)
 
@@ -199,6 +237,22 @@ def test(q, bus, mc):
                 'Parameters' in e.args[0]),
             )
 
+    # test that "masking" works
+    assertDoesNotContain(account_path + "masked", properties['ValidAccounts'])
+    assertDoesNotContain(account_path + "masked",
+            properties['InvalidAccounts'])
+
+    # test that priority works
+    assertContains(account_path + "priority", properties['ValidAccounts'])
+    priority_account = get_fakecm_account(bus, mc, account_path + "priority")
+    assertEquals('', priority_account.Properties.Get(cs.ACCOUNT, 'Nickname'))
+    assertEquals('Visible',
+            priority_account.Properties.Get(cs.ACCOUNT, 'DisplayName'))
+
+    # test what happens when we delete an account that has a lower-priority
+    # "other self"
+    assert priority_account.Remove() is None
+
     # Tell MC to die yet again
     tell_mc_to_die(q, bus)
 
@@ -208,13 +262,22 @@ def test(q, bus, mc):
     assert not os.path.exists(newer_key_file_name)
     assert os.path.exists(low_prio_variant_file_name)
     assert os.path.exists(new_variant_file_name)
+    assert open(new_variant_file_name.replace('.account', 'masked.account'),
+        'r').read() == ''
+    assert open(new_variant_file_name.replace('.account', 'priority.account'),
+        'r').read() == ''
+
     pwd = account_store('get', 'variant-file', 'param-password')
     assertEquals(None, pwd)
 
     # Write out an account configuration in the old keyfile, to test
     # migration from there
     os.remove(new_variant_file_name)
+    os.remove(new_variant_file_name.replace('.account', 'masked.account'))
+    os.remove(new_variant_file_name.replace('.account', 'priority.account'))
     os.remove(low_prio_variant_file_name)
+    os.remove(low_prio_variant_file_name.replace('.account', 'masked.account'))
+    os.remove(low_prio_variant_file_name.replace('.account', 'priority.account'))
     open(old_key_file_name, 'w').write(
 r"""# Telepathy accounts
 [%s]

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-telepathy/telepathy-mission-control-6.git



More information about the Pkg-telepathy-commits mailing list