[Erp5-report] r21240 - in /erp5/trunk/products/ERP5Security: ./ tests/
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri May 30 13:55:20 CEST 2008
Author: romain
Date: Fri May 30 13:55:19 2008
New Revision: 21240
URL: http://svn.erp5.org?rev=21240&view=rev
Log:
Check the method getUserByLogin.
Keep compatibility with previous implementation in order to accept non iterable
parameter as login.
Modified:
erp5/trunk/products/ERP5Security/ERP5UserManager.py
erp5/trunk/products/ERP5Security/tests/testERP5Security.py
Modified: erp5/trunk/products/ERP5Security/ERP5UserManager.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Security/ERP5UserManager.py?rev=21240&r1=21239&r2=21240&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Security/ERP5UserManager.py (original)
+++ erp5/trunk/products/ERP5Security/ERP5UserManager.py Fri May 30 13:55:19 2008
@@ -192,6 +192,10 @@
def _getUserByLogin(login, exact_match):
# because we aren't logged in, we have to create our own
# SecurityManager to be able to access the Catalog
+ if isinstance(login, list):
+ login = tuple(login)
+ elif not isinstance(login, tuple):
+ login = (str(login),)
sm = getSecurityManager()
if sm.getUser().getId() != SUPER_USER:
newSecurityManager(self, self.getUser(SUPER_USER))
Modified: erp5/trunk/products/ERP5Security/tests/testERP5Security.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Security/tests/testERP5Security.py?rev=21240&r1=21239&r2=21240&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Security/tests/testERP5Security.py (original)
+++ erp5/trunk/products/ERP5Security/tests/testERP5Security.py Fri May 30 13:55:19 2008
@@ -405,6 +405,40 @@
getSecurityManager().getUser().getRolesInContext(module))
self.failIf('Assignor' in
getSecurityManager().getUser().getRolesInContext(obj))
+
+ def testGetUserByLogin(self):
+ """Test getUserByLogin method
+ """
+ self.loginAsUser(self.username)
+
+ # getUserByLogin accept login as a string
+ self.portal.portal_caches.clearAllCache()
+ get_transaction().commit()
+ person_list = self.portal.acl_users.erp5_users.getUserByLogin(self.username)
+ self.assertEquals(1, len(person_list))
+ self.assertEquals(self.username, person_list[0].getReference())
+
+ # getUserByLogin accept login as a list
+ self.portal.portal_caches.clearAllCache()
+ get_transaction().commit()
+ person_list = self.portal.acl_users.erp5_users.getUserByLogin([self.username])
+ self.assertEquals(1, len(person_list))
+ self.assertEquals(self.username, person_list[0].getReference())
+
+ # getUserByLogin accept login as a tuple
+ self.portal.portal_caches.clearAllCache()
+ get_transaction().commit()
+ person_list = self.portal.acl_users.erp5_users.getUserByLogin((self.username,))
+ self.assertEquals(1, len(person_list))
+ self.assertEquals(self.username, person_list[0].getReference())
+
+ # PreferenceTool pass a user as parameter
+ user = getSecurityManager().getUser()
+ self.portal.portal_caches.clearAllCache()
+ get_transaction().commit()
+ person_list = self.portal.acl_users.erp5_users.getUserByLogin(user)
+ self.assertEquals(1, len(person_list))
+ self.assertEquals(self.username, person_list[0].getReference())
def test_suite():
suite = unittest.TestSuite()
More information about the Erp5-report
mailing list