Skip to content
This repository has been archived by the owner on Apr 10, 2023. It is now read-only.

Commit

Permalink
Changed PTC for plone.app.testing
Browse files Browse the repository at this point in the history
  • Loading branch information
tomgross committed Oct 31, 2014
1 parent 2763316 commit daf5317
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 44 deletions.
33 changes: 15 additions & 18 deletions Products/PasswordResetTool/tests/browser.txt
Expand Up @@ -8,12 +8,9 @@ Note that our usage of testbrowser is unusual and inconsistent, mostly
because Plone forms have inconsistencies and because testbrowser makes
assumptions that are not true for Plone forms.

>>> from Products.PloneTestCase import PloneTestCase as PTC
>>> from Products.Five.testbrowser import Browser
>>> browser = Browser()
>>> browser.handleErrors = False
>>> browser.open('http://nohost/plone/')

>>> from plone.testing.z2 import Browser
>>> from plone.app.testing import TEST_USER_NAME, TEST_USER_PASSWORD
>>> browser = Browser(layer['app'])

Assumptions
-----------
Expand Down Expand Up @@ -84,8 +81,8 @@ type in his initial password, so we need to enable that:

>>> browser.open('http://nohost/plone/login')
>>> browser.getLink('Log in').click()
>>> browser.getControl(name='__ac_name').value = PTC.portal_owner
>>> browser.getControl(name='__ac_password').value = PTC.default_password
>>> browser.getControl(name='__ac_name').value = TEST_USER_NAME
>>> browser.getControl(name='__ac_password').value = TEST_USER_PASSWORD
>>> browser.getControl(name='submit').click()
>>> "You are now logged in" in browser.contents
True
Expand Down Expand Up @@ -157,7 +154,7 @@ As part of our test setup, we replaced the original MailHost with our
own version. Our version doesn't mail messages, it just collects them
in a list called ``messages``:

>>> mailhost = self.portal.MailHost
>>> mailhost = layer['portal'].MailHost
>>> len(mailhost.messages)
1
>>> msg = mailhost.messages[0]
Expand Down Expand Up @@ -224,8 +221,8 @@ Log out again:
First, we want to login as the portal owner:

>>> browser.open('http://nohost/plone/login')
>>> browser.getControl(name='__ac_name').value = PTC.portal_owner
>>> browser.getControl(name='__ac_password').value = PTC.default_password
>>> browser.getControl(name='__ac_name').value = SITE_OWNER_NAME
>>> browser.getControl(name='__ac_password').value = SITE_OWNER_PASSWORD
>>> browser.getControl(name='submit').click()
>>> "You are now logged in" in browser.contents
True
Expand Down Expand Up @@ -271,8 +268,8 @@ password.
First off, we need to set ``validate_mail`` to False:

>>> browser.open('http://nohost/plone/login')
>>> browser.getControl(name='__ac_name').value = PTC.portal_owner
>>> browser.getControl(name='__ac_password').value = PTC.default_password
>>> browser.getControl(name='__ac_name').value = SITE_OWNER_NAME
>>> browser.getControl(name='__ac_password').value = SITE_OWNER_PASSWORD
>>> browser.getControl(name='submit').click()
>>> "You are now logged in" in browser.contents
True
Expand Down Expand Up @@ -308,7 +305,7 @@ Now register:

We should have received an e-mail at this point:

>>> mailhost = self.portal.MailHost
>>> mailhost = layer['portal'].MailHost
>>> len(mailhost.messages)
2
>>> msg = str(mailhost.messages[-1])
Expand Down Expand Up @@ -363,10 +360,10 @@ e-mail is sent containing the URL that lets the user log in.

First, we want to login as the portal owner:

>>> from Products.PloneTestCase import PloneTestCase as PTC
>>> from plone.app.testing import SITE_OWNER_NAME, SITE_OWNER_PASSWORD
>>> browser.open('http://nohost/plone/login')
>>> browser.getControl(name='__ac_name').value = PTC.portal_owner
>>> browser.getControl(name='__ac_password').value = PTC.default_password
>>> browser.getControl(name='__ac_name').value = SITE_OWNER_NAME
>>> browser.getControl(name='__ac_password').value = SITE_OWNER_PASSWORD
>>> browser.getControl(name='submit').click()
>>> "You are now logged in" in browser.contents
True
Expand Down Expand Up @@ -394,7 +391,7 @@ Now register and logout:

We should have received an e-mail at this point:

>>> mailhost = self.portal.MailHost
>>> mailhost = layer['portal'].MailHost
>>> len(mailhost.messages)
3
>>> msg = str(mailhost.messages[-1])
Expand Down
36 changes: 18 additions & 18 deletions Products/PasswordResetTool/tests/test_doctests.py
Expand Up @@ -4,45 +4,45 @@

import doctest
import unittest
from Testing.ZopeTestCase import FunctionalDocFileSuite
from Products.PloneTestCase import PloneTestCase
from Products.MailHost.interfaces import IMailHost
from zope.component import getSiteManager
from Acquisition import aq_base

PloneTestCase.setupPloneSite()

from Products.CMFPlone.tests.utils import MockMailHost

from plone.app import testing
from plone.testing import layered

OPTIONFLAGS = (doctest.ELLIPSIS |
doctest.NORMALIZE_WHITESPACE)

class MockMailHostTestCase(PloneTestCase.FunctionalTestCase):
class MockMailFixture(testing.PloneSandboxLayer):

def afterSetUp(self):
self.portal._original_MailHost = self.portal.MailHost
self.portal.MailHost = mailhost = MockMailHost('MailHost')
defaultBases = (testing.PLONE_FIXTURE,)

def setUpPloneSite(self, portal):
portal._original_MailHost = self.portal.MailHost
portal.MailHost = mailhost = MockMailHost('MailHost')
mailhost.smtp_host = 'localhost'
sm = getSiteManager(context=self.portal)
sm = getSiteManager(context=portal)
sm.unregisterUtility(provided=IMailHost)
sm.registerUtility(mailhost, provided=IMailHost)
self.portal.email_from_address = 'test@example.com'
portal.email_from_address = 'test@example.com'

def beforeTearDown(self):
self.portal.MailHost = self.portal._original_MailHost
sm = getSiteManager(context=self.portal)
sm.unregisterUtility(provided=IMailHost)
sm.registerUtility(aq_base(self.portal._original_MailHost), provided=IMailHost)
# def beforeTearDown(self):
# self.portal.MailHost = self.portal._original_MailHost
# sm = getSiteManager(context=self.portal)
# sm.unregisterUtility(provided=IMailHost)
# sm.registerUtility(aq_base(self.portal._original_MailHost), provided=IMailHost)

MOCK_MAIL_FIXTURE = MockMailFixture()

def test_suite():
return unittest.TestSuite((
FunctionalDocFileSuite('browser.txt',
doctest.DocFileSuite('browser.txt',
optionflags=OPTIONFLAGS,
package='Products.PasswordResetTool.tests',
test_class=MockMailHostTestCase),
FunctionalDocFileSuite('view.txt',
doctest.DocFileSuite('view.txt',
optionflags=OPTIONFLAGS,
package='Products.PasswordResetTool.tests',
test_class=MockMailHostTestCase),
Expand Down
14 changes: 7 additions & 7 deletions Products/PasswordResetTool/tests/view.txt
@@ -1,16 +1,16 @@
Test passwordreset BrowserView

>>> from Products.PloneTestCase import PloneTestCase as PTC
>>> from Products.Five.testbrowser import Browser
>>> browser = Browser()
>>> browser.handleErrors = False
>>> from plone.testing.z2 import Browser
>>> from plone.app.testing import TEST_USER_NAME, TEST_USER_PASSWORD
>>> browser = Browser(layer['app'])
>>> browser.open('http://nohost/plone/')

Setup Plone email sender

>>> self.portal.email_from_name=u'Old\u0159ich a Bo\u017eena'
>>> self.portal.email_from_address='smith@example.com'
>>> self.portal.title=u'Koko\u0159\xedn Portal'
>>> portal = layer['portal']
>>> portal.email_from_name=u'Old\u0159ich a Bo\u017eena'
>>> portal.email_from_address='smith@example.com'
>>> portal.title=u'Koko\u0159\xedn Portal'

Check view methods

Expand Down
2 changes: 1 addition & 1 deletion setup.py
Expand Up @@ -26,7 +26,7 @@
zip_safe=False,
extras_require=dict(
test=[
'Products.PloneTestCase',
'plone.app.testing',
]
),
install_requires=[
Expand Down

0 comments on commit daf5317

Please sign in to comment.