103 lines
		
	
	
		
			No EOL
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			103 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(room_jid="confernce@gajim.org", account="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() |