[Erp5-report] r24846 - /erp5/trunk/products/ERP5Security/tests/testERP5Security.py

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Dec 9 12:53:49 CET 2008


Author: jerome
Date: Tue Dec  9 12:53:48 2008
New Revision: 24846

URL: http://svn.erp5.org?rev=24846&view=rev
Log:
test for action to change own password on preference tool

Modified:
    erp5/trunk/products/ERP5Security/tests/testERP5Security.py

Modified: erp5/trunk/products/ERP5Security/tests/testERP5Security.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Security/tests/testERP5Security.py?rev=24846&r1=24845&r2=24846&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Security/tests/testERP5Security.py [utf8] (original)
+++ erp5/trunk/products/ERP5Security/tests/testERP5Security.py [utf8] Tue Dec  9 12:53:48 2008
@@ -30,6 +30,7 @@
 """
 
 import unittest
+import transaction
 
 from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase,\
                                                      get_request
@@ -96,6 +97,11 @@
     self.failUnless(isinstance(self.getUserFolder(),
         PluggableAuthService.PluggableAuthService))
 
+  def loginAsUser(self, username):
+    uf = self.portal.acl_users
+    user = uf.getUserById(username).__of__(uf)
+    newSecurityManager(None, user)
+
   def _makePerson(self, open_assignment=1, assignment_start_date=None,
                   assignment_stop_date=None, **kw):
     """Creates a person in person module, and returns the object, after
@@ -251,6 +257,23 @@
     self.assertNotEquals(person_module[changed['new_id']].getReference(),
                          person_module[changed['id']].getReference())
   
+  def test_PreferenceTool_setNewPassword(self):
+    # Preference Tool has an action to change password
+    pers = self._makePerson(reference='the_user', password='secret',)
+    transaction.commit()
+    self.tic()
+    self._assertUserExists('the_user', 'secret')
+    self.loginAsUser('the_user')
+    self.portal.REQUEST.set('current_password', 'secret')
+    self.portal.REQUEST.set('new_password', 'new_secret')
+    self.portal.portal_preferences.PreferenceTool_setNewPassword()
+    self._assertUserExists('the_user', 'new_secret')
+    self._assertUserDoesNotExists('the_user', 'secret')
+
+    # password is not stored in plain text
+    self.assertNotEquals('new_secret', pers.getPassword())
+
+
   def test_OpenningAssignmentClearCache(self):
     """Openning an assignment for a person clear the cache automatically."""
     pers = self._makePerson(reference='the_user', password='secret',




More information about the Erp5-report mailing list