SVN: CMF/trunk/CMFDefault/ - added basic unit tests for mailPassword() and registeredNotify()

Yvo Schubbe <[email protected]>
Newsgroups gmane.comp.web.zope.cmf.cvs
Message-ID <[email protected]>
Log message for revision 70607:
  - added basic unit tests for mailPassword() and registeredNotify()
  - removed ignored return value

Changed:
  U   CMF/trunk/CMFDefault/RegistrationTool.py
  A   CMF/trunk/CMFDefault/tests/RegistrationTool.txt
  U   CMF/trunk/CMFDefault/tests/test_RegistrationTool.py

-=-
Modified: CMF/trunk/CMFDefault/RegistrationTool.py
===================================================================
--- CMF/trunk/CMFDefault/RegistrationTool.py	2006-10-12 12:30:11 UTC (rev 70606)
+++ CMF/trunk/CMFDefault/RegistrationTool.py	2006-10-12 18:21:26 UTC (rev 70607)
@@ -183,8 +183,6 @@
         host = self.MailHost
         host.send( mail_text )
 
-        return self.mail_password_response( self, self.REQUEST )
-
     security.declareProtected(ManagePortal, 'editMember')
     def editMember( self
                   , member_id

Added: CMF/trunk/CMFDefault/tests/RegistrationTool.txt
===================================================================
--- CMF/trunk/CMFDefault/tests/RegistrationTool.txt	2006-10-12 12:30:11 UTC (rev 70606)
+++ CMF/trunk/CMFDefault/tests/RegistrationTool.txt	2006-10-12 18:21:26 UTC (rev 70607)
@@ -0,0 +1,48 @@
+RegistrationTool
+
+  First we need some dummy code::
+
+    >>> class Member:
+    ...     def __repr__(self): return 'foo'
+    ...     def getProperty(self, id): return '[email protected]'
+    ...     def getPassword(self): return 'secret'
+
+    >>> class MembershipTool:
+    ...     def getMemberById(self, id): return Member()
+
+    >>> class MailHost:
+    ...     def send(self, messageText): self.lastMessage = messageText
+
+    >>> def password_email(**kw):
+    ...     return 'Reminder: %(member)s, %(password)s' % kw
+
+    >>> def mail_password_response(*args):
+    ...     return 'done'
+
+    >>> def registered_email(**kw):
+    ...     return 'Welcome: %(member)s, %(password)s, %(email)s' % kw
+
+  Now we can set up a RegistrationTool with dummy context::
+
+    >>> from Products.CMFDefault.RegistrationTool import RegistrationTool
+    >>> rtool = RegistrationTool()
+    >>> rtool.MailHost = MailHost()
+    >>> rtool.portal_membership = MembershipTool()
+    >>> rtool.password_email = password_email
+    >>> rtool.mail_password_response = mail_password_response
+    >>> rtool.registered_email = registered_email
+
+  mailPassword sends a password reminder and returns a response page::
+
+    >>> rtool.mailPassword('foo', None)
+    'done'
+
+    >>> rtool.MailHost.lastMessage
+    'Reminder: foo, secret'
+
+  registeredNotify sends a welcome message::
+
+    >>> rtool.registeredNotify('foo')
+
+    >>> rtool.MailHost.lastMessage
+    'Welcome: foo, secret, [email protected]'


Property changes on: CMF/trunk/CMFDefault/tests/RegistrationTool.txt
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: CMF/trunk/CMFDefault/tests/test_RegistrationTool.py
===================================================================
--- CMF/trunk/CMFDefault/tests/test_RegistrationTool.py	2006-10-12 12:30:11 UTC (rev 70606)
+++ CMF/trunk/CMFDefault/tests/test_RegistrationTool.py	2006-10-12 18:21:26 UTC (rev 70607)
@@ -18,6 +18,8 @@
 import unittest
 import Testing
 
+from zope.testing import doctest
+
 from Products.CMFCore.tests.base.testcase import RequestTest
 
 
@@ -137,6 +139,8 @@
 def test_suite():
     return unittest.TestSuite((
         unittest.makeSuite(RegistrationToolTests),
+        doctest.DocFileSuite('RegistrationTool.txt',
+                             optionflags=doctest.NORMALIZE_WHITESPACE),
         ))
 
 if __name__ == '__main__':
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.