Changeset View
Changeset View
Standalone View
Standalone View
tests/functional/test_kolabd/test_001_user_sync.py
import time | import time | ||||
import unittest | import unittest | ||||
import pykolab | import pykolab | ||||
from pykolab import wap_client | from pykolab import wap_client | ||||
from pykolab.auth import Auth | from pykolab.auth import Auth | ||||
from pykolab.imap import IMAP | from pykolab.imap import IMAP | ||||
conf = pykolab.getConf() | conf = pykolab.getConf() | ||||
class TestKolabDaemon(unittest.TestCase): | class TestKolabDaemon(unittest.TestCase): | ||||
@classmethod | @classmethod | ||||
def setup_class(self, *args, **kw): | def setup_class(self, *args, **kw): | ||||
from tests.functional.purge_users import purge_users | from tests.functional.purge_users import purge_users | ||||
purge_users() | purge_users() | ||||
self.user = { | self.user = { | ||||
'local': 'john.doe', | 'local': 'john.doe', | ||||
Show All 15 Lines | def test_001_user_recipient_policy(self): | ||||
if hasattr(self, 'assertIsInstance'): | if hasattr(self, 'assertIsInstance'): | ||||
self.assertIsInstance(recipient, str) | self.assertIsInstance(recipient, str) | ||||
self.assertEqual(recipient, "uid=doe,ou=People,dc=example,dc=org") | self.assertEqual(recipient, "uid=doe,ou=People,dc=example,dc=org") | ||||
result = wap_client.user_info(recipient) | result = wap_client.user_info(recipient) | ||||
self.assertEqual(result['mail'], 'john.doe@example.org') | self.assertEqual(result['mail'], 'john.doe@example.org') | ||||
self.assertEqual(result['alias'], ['doe@example.org', 'j.doe@example.org']) | self.assertEqual(result['alias'], ['doe@example.org', 'j.doe@example.org']) | ||||
Lint: PEP8 E501: line too long (83 > 79 characters) | |||||
def test_002_user_recipient_policy_duplicate(self): | def test_002_user_recipient_policy_duplicate(self): | ||||
from tests.functional.user_add import user_add | from tests.functional.user_add import user_add | ||||
user = { | user = { | ||||
'local': 'jane.doe', | 'local': 'jane.doe', | ||||
'domain': 'example.org' | 'domain': 'example.org' | ||||
} | } | ||||
user_add("Jane", "Doe") | user_add("Jane", "Doe") | ||||
time.sleep(3) | time.sleep(3) | ||||
auth = Auth() | auth = Auth() | ||||
auth.connect() | auth.connect() | ||||
recipient = auth.find_recipient("%(local)s@%(domain)s" % (user)) | recipient = auth.find_recipient("%(local)s@%(domain)s" % (user)) | ||||
if hasattr(self, 'assertIsInstance'): | if hasattr(self, 'assertIsInstance'): | ||||
self.assertIsInstance(recipient, str) | self.assertIsInstance(recipient, str) | ||||
self.assertEqual(recipient, "uid=doe2,ou=People,dc=example,dc=org") | self.assertEqual(recipient, "uid=doe2,ou=People,dc=example,dc=org") | ||||
result = wap_client.user_info(recipient) | result = wap_client.user_info(recipient) | ||||
if not result.has_key('mailhost'): | if 'mailhost' not in result: | ||||
from tests.functional.synchronize import synchronize_once | from tests.functional.synchronize import synchronize_once | ||||
synchronize_once() | synchronize_once() | ||||
result = wap_client.user_info(recipient) | result = wap_client.user_info(recipient) | ||||
self.assertEqual(result['mail'], 'jane.doe@example.org') | self.assertEqual(result['mail'], 'jane.doe@example.org') | ||||
self.assertEqual(result['alias'], ['doe2@example.org', 'j.doe2@example.org']) | self.assertEqual(result['alias'], ['doe2@example.org', 'j.doe2@example.org']) | ||||
Lint: PEP8 E501 line too long (85 > 79 characters) Lint: PEP8 E501: line too long (85 > 79 characters) | |||||
def test_003_user_mailbox_created(self): | def test_003_user_mailbox_created(self): | ||||
time.sleep(2) | time.sleep(2) | ||||
imap = IMAP() | imap = IMAP() | ||||
imap.connect() | imap.connect() | ||||
folders = imap.lm('user/%(local)s@%(domain)s' % (self.user)) | folders = imap.lm('user/%(local)s@%(domain)s' % (self.user)) | ||||
self.assertEqual(len(folders), 1) | self.assertEqual(len(folders), 1) | ||||
Show All 21 Lines | def test_005_user_folders_metadata_set(self): | ||||
folders.extend(imap.lm('user/%(local)s@%(domain)s' % (self.user))) | folders.extend(imap.lm('user/%(local)s@%(domain)s' % (self.user))) | ||||
folders.extend(imap.lm('user/%(local)s/*@%(domain)s' % (self.user))) | folders.extend(imap.lm('user/%(local)s/*@%(domain)s' % (self.user))) | ||||
for folder in folders: | for folder in folders: | ||||
metadata = imap.get_metadata(folder) | metadata = imap.get_metadata(folder) | ||||
print metadata | print metadata | ||||
folder_name = '/'.join(folder.split('/')[2:]).split('@')[0] | folder_name = '/'.join(folder.split('/')[2:]).split('@')[0] | ||||
if ac_folders.has_key(folder_name): | if folder_name in ac_folders: | ||||
if ac_folders[folder_name].has_key('annotations'): | if 'annotations' in ac_folders[folder_name]: | ||||
for _annotation in ac_folders[folder_name]['annotations'].keys(): | for _annotation in ac_folders[folder_name]['annotations'].keys(): | ||||
Lint: PEP8 E501 line too long (85 > 79 characters) Lint: PEP8 E501: line too long (85 > 79 characters) | |||||
if _annotation.startswith('/private'): | if _annotation.startswith('/private'): | ||||
continue | continue | ||||
_annotation_value = ac_folders[folder_name]['annotations'][_annotation] | _annotation_value = ac_folders[folder_name]['annotations'][_annotation] | ||||
Lint: PEP8 E501 line too long (95 > 79 characters) Lint: PEP8 E501: line too long (95 > 79 characters) | |||||
self.assertTrue(metadata[metadata.keys().pop()].has_key(_annotation)) | self.assertTrue(_annotation in metadata[metadata.keys().pop()]) | ||||
Lint: PEP8 E501 line too long (87 > 79 characters) Lint: PEP8 E501: line too long (87 > 79 characters) | |||||
self.assertEqual(_annotation_value, metadata[metadata.keys().pop()][_annotation]) | self.assertEqual(_annotation_value, metadata[metadata.keys().pop()][_annotation]) | ||||
Lint: PEP8 E501 line too long (105 > 79 characters) Lint: PEP8 E501: line too long (105 > 79 characters) | |||||
def test_006_user_subscriptions(self): | def test_006_user_subscriptions(self): | ||||
imap = IMAP() | imap = IMAP() | ||||
imap.connect(login=False) | imap.connect(login=False) | ||||
login = conf.get('cyrus-imap', 'admin_login') | login = conf.get('cyrus-imap', 'admin_login') | ||||
password = conf.get('cyrus-imap', 'admin_password') | password = conf.get('cyrus-imap', 'admin_password') | ||||
imap.login_plain(login, password, 'john.doe@example.org') | imap.login_plain(login, password, 'john.doe@example.org') | ||||
folders = imap.lm() | folders = imap.lm() | ||||
self.assertTrue("INBOX" in folders) | self.assertTrue("INBOX" in folders) | ||||
folders = imap.imap.lsub() | folders = imap.imap.lsub() | ||||
self.assertTrue("Calendar" in folders) | self.assertTrue("Calendar" in folders) | ||||
def test_011_resource_add(self): | def test_011_resource_add(self): | ||||
pass | pass | ||||
def test_012_resource_mailbox_created(self): | def test_012_resource_mailbox_created(self): | ||||
pass | pass | ||||
def test_013_resource_mailbox_annotation(self): | def test_013_resource_mailbox_annotation(self): | ||||
pass | pass | ||||
line too long (83 > 79 characters)