contact.account and gc_contact.account contains the account name of the owning account. There is still code around in many placed which tries to workaround this missing information. Such code has to be migrated on per-need basis.
106 lines
No EOL
3.1 KiB
Python
106 lines
No EOL
3.1 KiB
Python
'''
|
|
Test for Contact, GC_Contact and Contacts
|
|
'''
|
|
import unittest
|
|
|
|
import lib
|
|
lib.setup_env()
|
|
|
|
from common.contacts import CommonContact, Contact, GC_Contact, Contacts
|
|
from common.xmpp import NS_MUC
|
|
|
|
from common import caps
|
|
|
|
class TestCommonContact(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
self.contact = CommonContact(jid='', account="", resource='', show='',
|
|
status='', name='', our_chatstate=None, composing_xep=None,
|
|
chatstate=None, client_caps=None)
|
|
|
|
def test_default_client_supports(self):
|
|
'''
|
|
Test the caps support method of contacts.
|
|
See test_caps for more enhanced tests.
|
|
'''
|
|
caps.capscache = caps.CapsCache()
|
|
self.assertTrue(self.contact.supports(NS_MUC),
|
|
msg="Must not backtrace on simple check for supported feature")
|
|
|
|
self.contact.client_caps = caps.NullClientCaps()
|
|
|
|
self.assertTrue(self.contact.supports(NS_MUC),
|
|
msg="Must not backtrace on simple check for supported feature")
|
|
|
|
|
|
|
|
|
|
class TestContact(TestCommonContact):
|
|
|
|
def setUp(self):
|
|
TestCommonContact.setUp(self)
|
|
self.contact = Contact(jid="test@gajim.org", account="account")
|
|
|
|
def test_attributes_available(self):
|
|
'''This test supports the migration from the old to the new contact
|
|
domain model by smoke testing that no attribute values are lost'''
|
|
|
|
attributes = ["jid", "resource", "show", "status", "name", "our_chatstate",
|
|
"composing_xep", "chatstate", "client_caps", "priority", "sub"]
|
|
for attr in attributes:
|
|
self.assertTrue(hasattr(self.contact, attr), msg="expected: " + attr)
|
|
|
|
|
|
class TestGC_Contact(TestCommonContact):
|
|
|
|
def setUp(self):
|
|
TestCommonContact.setUp(self)
|
|
self.contact = GC_Contact("confernce@gajim.org", "account")
|
|
|
|
def test_attributes_available(self):
|
|
'''This test supports the migration from the old to the new contact
|
|
domain model by asserting no attributes have been lost'''
|
|
|
|
attributes = ["jid", "resource", "show", "status", "name", "our_chatstate",
|
|
"composing_xep", "chatstate", "client_caps", "role", "room_jid"]
|
|
for attr in attributes:
|
|
self.assertTrue(hasattr(self.contact, attr), msg="expected: " + attr)
|
|
|
|
class TestContacts(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
self.contacts = Contacts()
|
|
|
|
def test_create_add_get_contact(self):
|
|
jid = 'test@gajim.org'
|
|
account = "account"
|
|
|
|
contact = self.contacts.create_contact(jid=jid, account=account)
|
|
self.contacts.add_contact(account, contact)
|
|
|
|
retrieved_contact = self.contacts.get_contact(account, jid)
|
|
self.assertEqual(contact, retrieved_contact, "Contact must be known")
|
|
|
|
self.contacts.remove_contact(account, contact)
|
|
|
|
retrieved_contact = self.contacts.get_contact(account, jid)
|
|
self.assertNotEqual(contact, retrieved_contact,
|
|
msg="Contact must not be known any longer")
|
|
|
|
|
|
def test_copy_contact(self):
|
|
jid = 'test@gajim.org'
|
|
account = "account"
|
|
|
|
contact = self.contacts.create_contact(jid=jid, account=account)
|
|
copy = self.contacts.copy_contact(contact)
|
|
self.assertFalse(contact is copy, msg="Must not be the same")
|
|
|
|
# Not yet implemented to remain backwart compatible
|
|
# self.assertEqual(contact, copy, msg="Must be equal")
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main() |