Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'test/integration/test_roster.py')
-rw-r--r--test/integration/test_roster.py336
1 files changed, 167 insertions, 169 deletions
diff --git a/test/integration/test_roster.py b/test/integration/test_roster.py
index 0be85aa11..8b71df122 100644
--- a/test/integration/test_roster.py
+++ b/test/integration/test_roster.py
@@ -17,189 +17,187 @@ gajim.get_jid_from_account = lambda acc: 'myjid@' + acc
class TestRosterWindow(unittest.TestCase):
- def setUp(self):
- gajim.interface = MockInterface()
-
- self.C_NAME = roster_window.C_NAME
- self.C_TYPE = roster_window.C_TYPE
- self.C_JID = roster_window.C_JID
- self.C_ACCOUNT = roster_window.C_ACCOUNT
-
- # Add after creating RosterWindow
- # We want to test the filling explicitly
- gajim.contacts = contacts_module.LegacyContactsAPI()
- gajim.connections = {}
- self.roster = roster_window.RosterWindow()
-
- for acc in contacts:
- gajim.connections[acc] = MockConnection(acc)
- gajim.contacts.add_account(acc)
-
- ### Custom assertions
- def assert_all_contacts_are_in_roster(self, acc):
- for jid in contacts[acc]:
- self.assert_contact_is_in_roster(jid, acc)
-
- def assert_contact_is_in_roster(self, jid, account):
- contacts = gajim.contacts.get_contacts(account, jid)
- # check for all resources
- for contact in contacts:
- iters = self.roster._get_contact_iter(jid, account,
- model=self.roster.model)
-
- if jid != gajim.get_jid_from_account(account):
- # We don't care for groups of SelfContact
- self.assertTrue(len(iters) == len(contact.get_shown_groups()),
- msg='Contact is not in all his groups')
-
- # Are we big brother?
- bb_jid = None
- bb_account = None
- family = gajim.contacts.get_metacontacts_family(account, jid)
- if family:
- nearby_family, bb_jid, bb_account = \
- self.roster._get_nearby_family_and_big_brother(family, account)
-
- is_in_nearby_family = (jid, account) in (
- (data['jid'], data['account']) for data in nearby_family)
- self.assertTrue(is_in_nearby_family,
- msg='Contact not in his own nearby family')
-
- is_big_brother = (bb_jid, bb_account) == (jid, account)
-
- # check for each group tag
- for titerC in iters:
- self.assertTrue(self.roster.model.iter_is_valid(titerC),
- msg='Contact iter invalid')
-
- c_model = self.roster.model[titerC]
- self.assertEquals(contact.get_shown_name(), c_model[self.C_NAME],
- msg='Contact name missmatch')
- self.assertEquals(contact.jid, c_model[self.C_JID],
- msg='Jid missmatch')
-
- if not self.roster.regroup:
- self.assertEquals(account, c_model[self.C_ACCOUNT],
- msg='Account missmatch')
-
- # Check for correct nesting
- parent_iter = self.roster.model.iter_parent(titerC)
- p_model = self.roster.model[parent_iter]
- if family:
- if is_big_brother:
- self.assertTrue(p_model[self.C_TYPE] == 'group',
- msg='Big Brother is not on top')
- else:
- self.assertTrue(p_model[self.C_TYPE] == 'contact',
- msg='Little Brother brother has no BigB')
- else:
- if jid == gajim.get_jid_from_account(account):
- self.assertTrue(p_model[self.C_TYPE] == 'account',
- msg='SelfContact is not on top')
- else:
- self.assertTrue(p_model[self.C_TYPE] == 'group',
- msg='Contact not found in a group')
-
- def assert_group_is_in_roster(self, group, account):
- #TODO
- pass
-
- def assert_account_is_in_roster(self, acc):
- titerA = self.roster._get_account_iter(acc, model=self.roster.model)
- self.assertTrue(self.roster.model.iter_is_valid(titerA),
- msg='Account iter is invalid')
-
- acc_model = self.roster.model[titerA]
- self.assertEquals(acc_model[self.C_TYPE], 'account',
- msg='No account found')
-
- if not self.roster.regroup:
- self.assertEquals(acc_model[self.C_ACCOUNT], acc,
- msg='Account not found')
-
- self_jid = gajim.get_jid_from_account(acc)
- self.assertEquals(acc_model[self.C_JID], self_jid,
- msg='Account JID not found in account row')
-
- def assert_model_is_in_sync(self):
- #TODO: check that iter_n_children returns the correct numbers
- pass
-
- # tests
- def test_fill_contacts_and_groups_dicts(self):
- for acc in contacts:
- self.roster.fill_contacts_and_groups_dicts(contacts[acc], acc)
-
- for jid in contacts[acc]:
- instances = gajim.contacts.get_contacts(acc, jid)
-
- # Created a contact for each single jid?
- self.assertTrue(len(instances) == 1)
-
- # Contacts kept their info
- contact = instances[0]
- self.assertEquals(contact.groups, contacts[acc][jid]['groups'],
- msg='Group Missmatch')
-
- groups = contacts[acc][jid]['groups'] or ['General',]
-
- def test_fill_roster_model(self):
- for acc in contacts:
- self.roster.fill_contacts_and_groups_dicts(contacts[acc], acc)
-
- self.roster.add_account(acc)
- self.assert_account_is_in_roster(acc)
-
- self.roster.add_account_contacts(acc)
- self.assert_all_contacts_are_in_roster(acc)
-
- self.assert_model_is_in_sync()
+ def setUp(self):
+ gajim.interface = MockInterface()
+
+ self.C_NAME = roster_window.C_NAME
+ self.C_TYPE = roster_window.C_TYPE
+ self.C_JID = roster_window.C_JID
+ self.C_ACCOUNT = roster_window.C_ACCOUNT
+
+ # Add after creating RosterWindow
+ # We want to test the filling explicitly
+ gajim.contacts = contacts_module.LegacyContactsAPI()
+ gajim.connections = {}
+ self.roster = roster_window.RosterWindow()
+
+ for acc in contacts:
+ gajim.connections[acc] = MockConnection(acc)
+ gajim.contacts.add_account(acc)
+
+ ### Custom assertions
+ def assert_all_contacts_are_in_roster(self, acc):
+ for jid in contacts[acc]:
+ self.assert_contact_is_in_roster(jid, acc)
+
+ def assert_contact_is_in_roster(self, jid, account):
+ contacts = gajim.contacts.get_contacts(account, jid)
+ # check for all resources
+ for contact in contacts:
+ iters = self.roster._get_contact_iter(jid, account,
+ model=self.roster.model)
+
+ if jid != gajim.get_jid_from_account(account):
+ # We don't care for groups of SelfContact
+ self.assertTrue(len(iters) == len(contact.get_shown_groups()),
+ msg='Contact is not in all his groups')
+
+ # Are we big brother?
+ bb_jid = None
+ bb_account = None
+ family = gajim.contacts.get_metacontacts_family(account, jid)
+ if family:
+ nearby_family, bb_jid, bb_account = \
+ self.roster._get_nearby_family_and_big_brother(family, account)
+
+ is_in_nearby_family = (jid, account) in (
+ (data['jid'], data['account']) for data in nearby_family)
+ self.assertTrue(is_in_nearby_family,
+ msg='Contact not in his own nearby family')
+
+ is_big_brother = (bb_jid, bb_account) == (jid, account)
+
+ # check for each group tag
+ for titerC in iters:
+ self.assertTrue(self.roster.model.iter_is_valid(titerC),
+ msg='Contact iter invalid')
+
+ c_model = self.roster.model[titerC]
+ self.assertEquals(contact.get_shown_name(), c_model[self.C_NAME],
+ msg='Contact name missmatch')
+ self.assertEquals(contact.jid, c_model[self.C_JID],
+ msg='Jid missmatch')
+
+ if not self.roster.regroup:
+ self.assertEquals(account, c_model[self.C_ACCOUNT],
+ msg='Account missmatch')
+
+ # Check for correct nesting
+ parent_iter = self.roster.model.iter_parent(titerC)
+ p_model = self.roster.model[parent_iter]
+ if family:
+ if is_big_brother:
+ self.assertTrue(p_model[self.C_TYPE] == 'group',
+ msg='Big Brother is not on top')
+ else:
+ self.assertTrue(p_model[self.C_TYPE] == 'contact',
+ msg='Little Brother brother has no BigB')
+ else:
+ if jid == gajim.get_jid_from_account(account):
+ self.assertTrue(p_model[self.C_TYPE] == 'account',
+ msg='SelfContact is not on top')
+ else:
+ self.assertTrue(p_model[self.C_TYPE] == 'group',
+ msg='Contact not found in a group')
+
+ def assert_group_is_in_roster(self, group, account):
+ #TODO
+ pass
+
+ def assert_account_is_in_roster(self, acc):
+ titerA = self.roster._get_account_iter(acc, model=self.roster.model)
+ self.assertTrue(self.roster.model.iter_is_valid(titerA),
+ msg='Account iter is invalid')
+
+ acc_model = self.roster.model[titerA]
+ self.assertEquals(acc_model[self.C_TYPE], 'account',
+ msg='No account found')
+
+ if not self.roster.regroup:
+ self.assertEquals(acc_model[self.C_ACCOUNT], acc,
+ msg='Account not found')
+
+ self_jid = gajim.get_jid_from_account(acc)
+ self.assertEquals(acc_model[self.C_JID], self_jid,
+ msg='Account JID not found in account row')
+
+ def assert_model_is_in_sync(self):
+ #TODO: check that iter_n_children returns the correct numbers
+ pass
+
+ # tests
+ def test_fill_contacts_and_groups_dicts(self):
+ for acc in contacts:
+ self.roster.fill_contacts_and_groups_dicts(contacts[acc], acc)
+
+ for jid in contacts[acc]:
+ instances = gajim.contacts.get_contacts(acc, jid)
+
+ # Created a contact for each single jid?
+ self.assertTrue(len(instances) == 1)
+
+ # Contacts kept their info
+ contact = instances[0]
+ self.assertEquals(contact.groups, contacts[acc][jid]['groups'],
+ msg='Group Missmatch')
+
+ groups = contacts[acc][jid]['groups'] or ['General',]
+
+ def test_fill_roster_model(self):
+ for acc in contacts:
+ self.roster.fill_contacts_and_groups_dicts(contacts[acc], acc)
+
+ self.roster.add_account(acc)
+ self.assert_account_is_in_roster(acc)
+
+ self.roster.add_account_contacts(acc)
+ self.assert_all_contacts_are_in_roster(acc)
+
+ self.assert_model_is_in_sync()
class TestRosterWindowRegrouped(TestRosterWindow):
- def setUp(self):
- gajim.config.set('mergeaccounts', True)
- TestRosterWindow.setUp(self)
+ def setUp(self):
+ gajim.config.set('mergeaccounts', True)
+ TestRosterWindow.setUp(self)
- def test_toggle_regroup(self):
- self.roster.regroup = not self.roster.regroup
- self.roster.setup_and_draw_roster()
- self.roster.regroup = not self.roster.regroup
- self.roster.setup_and_draw_roster()
+ def test_toggle_regroup(self):
+ self.roster.regroup = not self.roster.regroup
+ self.roster.setup_and_draw_roster()
+ self.roster.regroup = not self.roster.regroup
+ self.roster.setup_and_draw_roster()
class TestRosterWindowMetaContacts(TestRosterWindowRegrouped):
- def test_receive_metacontact_data(self):
- for complete_data in metacontact_data:
- t_acc = complete_data[0]['account']
- t_jid = complete_data[0]['jid']
- data = complete_data[1:]
- for brother in data:
- acc = brother['account']
- jid = brother['jid']
- gajim.contacts.add_metacontact(t_acc, t_jid, acc, jid)
- self.roster.setup_and_draw_roster()
+ def test_receive_metacontact_data(self):
+ for complete_data in metacontact_data:
+ t_acc = complete_data[0]['account']
+ t_jid = complete_data[0]['jid']
+ data = complete_data[1:]
+ for brother in data:
+ acc = brother['account']
+ jid = brother['jid']
+ gajim.contacts.add_metacontact(t_acc, t_jid, acc, jid)
+ self.roster.setup_and_draw_roster()
- def test_connect_new_metacontact(self):
- self.test_fill_roster_model()
+ def test_connect_new_metacontact(self):
+ self.test_fill_roster_model()
- jid = u'coolstuff@gajim.org'
- contact = gajim.contacts.create_contact(jid, account1)
- gajim.contacts.add_contact(account1, contact)
- self.roster.add_contact(jid, account1)
- self.roster.chg_contact_status(contact, 'offline', '', account1)
+ jid = u'coolstuff@gajim.org'
+ contact = gajim.contacts.create_contact(jid, account1)
+ gajim.contacts.add_contact(account1, contact)
+ self.roster.add_contact(jid, account1)
+ self.roster.chg_contact_status(contact, 'offline', '', account1)
- gajim.contacts.add_metacontact(account1, u'samejid@gajim.org',
- account1, jid)
- self.roster.chg_contact_status(contact, 'online', '', account1)
+ gajim.contacts.add_metacontact(account1, u'samejid@gajim.org',
+ account1, jid)
+ self.roster.chg_contact_status(contact, 'online', '', account1)
- self.assert_model_is_in_sync()
+ self.assert_model_is_in_sync()
if __name__ == '__main__':
- unittest.main()
-
-# vim: se ts=3:
+ unittest.main()