[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