[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/ Rudimentary doctest support for preferences form.
Charlie Clark
charlie at begeistert.org
Sat Sep 18 13:23:08 EDT 2010
Log message for revision 116598:
Rudimentary doctest support for preferences form.
Changed:
U Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/preferences.py
A Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/preferences.txt
U Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/test_preferences.py
-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/preferences.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/preferences.py 2010-09-18 16:53:03 UTC (rev 116597)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/preferences.py 2010-09-18 17:23:08 UTC (rev 116598)
@@ -15,8 +15,7 @@
from zope.schema import Choice, Bool
from zope.schema.vocabulary import SimpleTerm, SimpleVocabulary
-from zope.schema.interfaces import IVocabulary, IVocabularyFactory
-from zope.interface import Interface, directlyProvides, alsoProvides
+from zope.interface import Interface
from zope.formlib import form
from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
@@ -44,7 +43,7 @@
portal_skin = Choice(
title=_(u"Skin"),
- vocabulary="cmf.portal_skins",
+ vocabulary=u"cmf.portal_skins",
required=False)
Added: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/preferences.txt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/preferences.txt (rev 0)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/preferences.txt 2010-09-18 17:23:08 UTC (rev 116598)
@@ -0,0 +1,44 @@
+Preferences form
+----------------
+
+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())
+
+Set up dummy skins vocabulary
+ >>> from zope.schema.interfaces import IVocabularyFactory
+ >>> from zope.schema.vocabulary import SimpleVocabulary, SimpleTerm
+ >>> terms = [SimpleTerm('default', 'default', 'default'), SimpleTerm('fancy', 'fancy', 'fancy')]
+ >>> vocab = lambda: SimpleVocabulary(terms)
+ >>> from zope.component import getSiteManager
+ >>> sm = getSiteManager()
+ >>> sm.registerUtility(vocab, IVocabularyFactory, u'cmf.portal_skins')
+ >>> from zope.component import getUtility
+
+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
+ >>> 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 preferences form. E-mail field should be visible
+
+ >>> # browser.open("http://localhost/site/@@preferences.html")
+ >>> # browser.contents
+ >>> # browser.getControl(name='email').value == ''
+ True
+ >>> # browser.contents
\ No newline at end of file
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/test_preferences.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/test_preferences.py 2010-09-18 16:53:03 UTC (rev 116597)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/test_preferences.py 2010-09-18 17:23:08 UTC (rev 116598)
@@ -73,3 +73,15 @@
class DummySkinsTool:
pass
+
+#Doctests
+from Testing import ZopeTestCase
+from Products.CMFDefault.testing import FunctionalLayer
+
+ftest_suite = ZopeTestCase.FunctionalDocFileSuite('preferences.txt')
+ftest_suite.layer = FunctionalLayer
+
+def test_suite():
+ return unittest.TestSuite((
+ ftest_suite,
+ ))
\ No newline at end of file
More information about the checkins
mailing list