[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/ Added check doctest for password form.

Charlie Clark charlie at begeistert.org
Sat Sep 18 11:07:11 EDT 2010


Log message for revision 116589:
  Added check doctest for password form.

Changed:
  U   Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/password.py
  A   Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/password.txt
  A   Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/test_password.py

-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/password.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/password.py	2010-09-18 15:05:55 UTC (rev 116588)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/password.py	2010-09-18 15:07:11 UTC (rev 116589)
@@ -16,7 +16,7 @@
 from DateTime import DateTime
 
 from zope.formlib import form
-from zope.interface import Interface, invariant
+from zope.interface import Interface, invariant, Invalid
 from zope.schema import ASCIILine, Password, List, TextLine
 
 from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
@@ -25,18 +25,12 @@
 from Products.CMFDefault.utils import Message as _
 from Products.CMFDefault.formlib.form import EditFormBase
 
-def check_domain(value):
-    if " " in value:
-        return False
-    return True
 
-
 class IPasswordSchema(Interface):
 
     password = Password(
                     title=_(u"New password"),
-                    min_length=5,
-                    required=False
+                    min_length=5
                     )
 
     confirmation = Password(
@@ -44,17 +38,6 @@
                     required=False
                     )
 
-    domains = List(
-                    title=_("Domains"),
-                    description=_(u"""If you do not know what this field is
-                                      for, leave it blank."""),
-                    value_type=ASCIILine(
-                            title=_(u"Domain name"),
-                            constraint=check_domain
-                            ),
-                    required = False
-                )
-
     @invariant
     def check_passwords_match(schema):
         """Password and confirmation must match"""
@@ -85,18 +68,6 @@
         if self.member.getProperty('last_login_time') == DateTime('1999/01/01'):
             self.member.setProperties(last_login_time='2000/01/01')
 
-    def setUpWidgets(self, ignore_request=False):
-        """Populate form with user domains"""
-        data = {}
-        data['domains'] = " ".join(self.member.getDomains())
-        self.widgets = form.setUpDataWidgets(
-                            self.form_fields,
-                            self.prefix,
-                            self.context,
-                            self.request,
-                            data=data,
-                            ignore_request=ignore_request)
-
     @property
     def member(self):
         return self.mtool.getAuthenticatedMember()

Added: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/password.txt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/password.txt	                        (rev 0)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/password.txt	2010-09-18 15:07:11 UTC (rev 116589)
@@ -0,0 +1,37 @@
+Password views
+----------
+
+Set up user.
+
+    >>> from urllib import quote
+    >>> uf = app.site.acl_users
+    >>> uf._doAddUser('mbr', 'mbrpw', ['Member'], [])
+    >>> mbr_credentials = quote('mbr:mbrpw'.encode('base64').rstrip())
+
+Create the browser object we'll be using.
+
+    # BBB for Zope 2.12
+    >>> try:
+    ...     from Testing.testbrowser import Browser
+    ... except ImportError:
+    ...     from Products.Five.testbrowser import Browser
+    >>> browser = Browser()
+
+Log the user in and then out
+    >>> browser.open('http://localhost/site/@@login.html')
+    >>> browser.getControl('[[cmf_default][Member ID]]').value = 'mbr'
+    >>> browser.getControl('[[cmf_default][Password]]').value = 'mbrpw'
+    >>> browser.getControl('[[cmf_default][Login]]').click()
+    >>> '[[cmf_default][Login success]]' in browser.contents
+    True
+    
+Open the join form. Password field should be visible
+
+    >>> browser.open("http://localhost/site/@@password.html")
+    >>> browser.getControl(name='form.password').value == ''
+    True
+    >>> browser.getControl(name='form.password').value = 'new password'
+    >>> browser.getControl(name='form.confirmation').value = 'is invalid'
+    >>> browser.getControl(name='form.actions.change').click()
+    >>> '[[cmf_default][Passwords do not match]]' in browser.contents
+    True
\ No newline at end of file

Added: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/test_password.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/test_password.py	                        (rev 0)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/test_password.py	2010-09-18 15:07:11 UTC (rev 116589)
@@ -0,0 +1,28 @@
+##############################################################################
+#
+# Copyright (c) 2010 Zope Foundation and Contributors.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+""" Test Products.CMFDefault.browser.password
+"""
+
+import unittest
+from Testing import ZopeTestCase
+
+from Products.CMFDefault.testing import FunctionalLayer
+
+
+ftest_suite = ZopeTestCase.FunctionalDocFileSuite('password.txt')
+ftest_suite.layer = FunctionalLayer
+
+def test_suite():
+    return unittest.TestSuite((
+        ftest_suite,
+    ))


Property changes on: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/test_password.py
___________________________________________________________________
Added: svn:keywords
   + Id
Added: svn:eol-style
   + native



More information about the checkins mailing list