5 commits - pykolab/setup tests/functional wallace/module_resources.py
Jeroen van Meeuwen
vanmeeuwen at kolabsys.com
Sun May 19 13:37:53 CEST 2013
pykolab/setup/setup_roundcube.py | 1
tests/functional/purge_users.py | 2
tests/functional/test_wap_client/test_007_policy_uid.py | 176 ++++++++++++++++
wallace/module_resources.py | 7
4 files changed, 185 insertions(+), 1 deletion(-)
New commits:
commit 172d9ec71cdc142fd5cb8846261655fdf130a9e2
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date: Sun May 19 12:52:58 2013 +0200
Include kolab_files plugin by default
diff --git a/pykolab/setup/setup_roundcube.py b/pykolab/setup/setup_roundcube.py
index 659ba4d..2e0b08c 100644
--- a/pykolab/setup/setup_roundcube.py
+++ b/pykolab/setup/setup_roundcube.py
@@ -92,6 +92,7 @@ def execute(*args, **kw):
'calendar.inc.php',
'db.inc.php',
'kolab_auth.inc.php',
+ 'kolab_files.inc.php',
'kolab_folders.inc.php',
'kolab.inc.php',
'main.inc.php',
commit d0ef194abe3cb3634101d488c8539c47a3616d93
Merge: 4f566bc fdf3236
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date: Sun May 19 12:52:47 2013 +0200
Merge branch 'master' of ssh://git.kolab.org/git/pykolab
commit 4f566bcd9cecfb26363cbd0f047b5c6e9a513c6f
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date: Sat May 11 13:04:38 2013 +0200
New functional tests for policy_uid setting
diff --git a/tests/functional/test_wap_client/test_007_policy_uid.py b/tests/functional/test_wap_client/test_007_policy_uid.py
new file mode 100644
index 0000000..534ebda
--- /dev/null
+++ b/tests/functional/test_wap_client/test_007_policy_uid.py
@@ -0,0 +1,176 @@
+from ConfigParser import RawConfigParser
+import time
+import unittest
+
+import pykolab
+from pykolab import wap_client
+from pykolab.auth import Auth
+from pykolab.imap import IMAP
+
+conf = pykolab.getConf()
+
+class TestPolicyUid(unittest.TestCase):
+
+ def remove_option(self, section, option):
+ self.config.remove_option(section, option)
+
+ fp = open(conf.config_file, "w")
+ self.config.write(fp)
+ fp.close()
+
+ def set(self, section, option, value):
+ self.config.set(section, option, value)
+
+ fp = open(conf.config_file, "w")
+ self.config.write(fp)
+ fp.close()
+
+ @classmethod
+ def setup_class(self, *args, **kw):
+ self.config = RawConfigParser()
+ self.config.read(conf.config_file)
+
+ from tests.functional.purge_users import purge_users
+ purge_users()
+
+ self.user = {
+ 'local': 'john.doe',
+ 'domain': 'example.org'
+ }
+
+ self.login = conf.get('ldap', 'bind_dn')
+ self.password = conf.get('ldap', 'bind_pw')
+ self.domain = conf.get('kolab', 'primary_domain')
+
+ result = wap_client.authenticate(self.login, self.password, self.domain)
+
+ @classmethod
+ def teardown_class(self, *args, **kw):
+ self.config.remove_option('example.org', 'policy_uid')
+
+ fp = open(conf.config_file, "w")
+ self.config.write(fp)
+ fp.close()
+
+ from tests.functional.purge_users import purge_users
+ purge_users()
+
+ def test_001_default(self):
+ from tests.functional.user_add import user_add
+ user_add("John", "Doe")
+ from tests.functional.synchronize import synchronize_once
+ synchronize_once()
+
+ auth = Auth()
+ auth.connect()
+
+ user = auth.find_recipient('john.doe at example.org')
+
+ user_info = wap_client.user_info(user)
+
+ self.assertEqual(user_info['uid'], "doe")
+
+ from tests.functional.purge_users import purge_users
+ purge_users()
+
+ def test_002_givenname_dot_surname(self):
+ self.set('example.org', 'policy_uid', '%(givenname)s.%(surname)s')
+
+ from tests.functional.user_add import user_add
+ user_add("John", "Doe")
+ from tests.functional.synchronize import synchronize_once
+ synchronize_once()
+
+ auth = Auth()
+ auth.connect()
+
+ user = auth.find_recipient('john.doe at example.org')
+
+ user_info = wap_client.user_info(user)
+
+ self.assertEqual(user_info['uid'], "John.Doe")
+
+ from tests.functional.purge_users import purge_users
+ purge_users()
+
+ def test_003_givenname_fc_dot_surname(self):
+ self.set('example.org', 'policy_uid', "'%(givenname)s'[0:1].%(surname)s")
+
+ from tests.functional.user_add import user_add
+ user_add("John", "Doe")
+ from tests.functional.synchronize import synchronize_once
+ synchronize_once()
+
+ auth = Auth()
+ auth.connect()
+
+ user = auth.find_recipient('john.doe at example.org')
+
+ user_info = wap_client.user_info(user)
+
+ self.assertEqual(user_info['uid'], "J.Doe")
+
+ from tests.functional.purge_users import purge_users
+ purge_users()
+
+ def test_004_givenname(self):
+ self.set('example.org', 'policy_uid', '%(givenname)s')
+
+ from tests.functional.user_add import user_add
+ user_add("John", "Doe")
+ from tests.functional.synchronize import synchronize_once
+ synchronize_once()
+
+ auth = Auth()
+ auth.connect()
+
+ user = auth.find_recipient('john.doe at example.org')
+
+ user_info = wap_client.user_info(user)
+
+ self.assertEqual(user_info['uid'], "John")
+
+ from tests.functional.purge_users import purge_users
+ purge_users()
+
+ def test_005_lowercase_givenname(self):
+ self.set('example.org', 'policy_uid', '%(givenname)s.lower()')
+
+ from tests.functional.user_add import user_add
+ user_add("John", "Doe")
+ from tests.functional.synchronize import synchronize_once
+ synchronize_once()
+
+ auth = Auth()
+ auth.connect()
+
+ user = auth.find_recipient('john.doe at example.org')
+
+ user_info = wap_client.user_info(user)
+
+ self.assertEqual(user_info['uid'], "john")
+
+ from tests.functional.purge_users import purge_users
+ purge_users()
+
+ def test_006_lowercase_givenname_surname(self):
+ self.set('example.org', 'policy_uid', "%(givenname)s.lower().%(surname)s.lower()")
+
+ from tests.functional.user_add import user_add
+ user_add("John", "Doe")
+ from tests.functional.synchronize import synchronize_once
+ synchronize_once()
+
+ auth = Auth()
+ auth.connect()
+
+ user = auth.find_recipient('john.doe at example.org')
+
+ user_info = wap_client.user_info(user)
+
+ self.assertEqual(user_info['uid'], "john.doe")
+
+ from tests.functional.purge_users import purge_users
+ purge_users()
+
+
commit b748e6930703fcaf8910248d0b8af0acb4d00f82
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date: Tue May 7 15:20:35 2013 +0200
Delete a user by 'id', not 'user'
diff --git a/tests/functional/purge_users.py b/tests/functional/purge_users.py
index 5bc1b82..17db9d7 100644
--- a/tests/functional/purge_users.py
+++ b/tests/functional/purge_users.py
@@ -11,7 +11,7 @@ def purge_users():
users = wap_client.users_list()
for user in users['list']:
- wap_client.user_delete({'user': user})
+ wap_client.user_delete({'id': user})
from tests.functional.purge_imap import purge_imap
purge_imap()
commit 481f4112ac743b102f52b55ca9b50d62d6cafbe6
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date: Tue May 7 15:19:26 2013 +0200
Make sure .disconnect() is issued in order to prevent connections stacking up
diff --git a/wallace/module_resources.py b/wallace/module_resources.py
index 3bc62fc..cd92e3c 100644
--- a/wallace/module_resources.py
+++ b/wallace/module_resources.py
@@ -436,6 +436,9 @@ def execute(*args, **kw):
send_response(original_resource['mail'], itip_event)
+ auth.disconnect()
+ del auth
+
# Disconnect IMAP or we lock the mailbox almost constantly
imap.disconnect()
del imap
@@ -589,6 +592,8 @@ def resource_record_from_email_address(email_address):
resource_records = [ resource_records ]
+ auth.disconnect()
+
return resource_records
def resource_records_from_itip_events(itip_events):
@@ -722,6 +727,8 @@ def resource_records_from_itip_events(itip_events):
level=8
)
+ auth.disconnect()
+
return resource_records
def send_response(from_address, itip_events):
More information about the commits
mailing list