[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