r252620 - in Products.rendezvous/trunk: . Products/rendezvous Products/rendezvous/browser Products/rendezvous/tests docs

"Vincent Fretin" <svn-changes-z4DKO/[email protected]> Fri, 4 Oct 2013 20:22:07 +0000 (UTC)
Newsgroups gmane.comp.web.zope.plone.collective.cvs
Message-ID <[email protected]>
Author: vincentfretin
Date: Fri Oct  4 20:22:06 2013
New Revision: 252620

Added:
   Products.rendezvous/trunk/Products/rendezvous/testing.py
Removed:
   Products.rendezvous/trunk/Products/rendezvous/tests/framework.py
   Products.rendezvous/trunk/Products/rendezvous/tests/runalltests.py
   Products.rendezvous/trunk/Products/rendezvous/tests/testPlone.py
Modified:
   Products.rendezvous/trunk/Products/rendezvous/browser/RDV_RendezVousUtility.py
   Products.rendezvous/trunk/Products/rendezvous/browser/RDV_RendezVousView.py
   Products.rendezvous/trunk/Products/rendezvous/tests/__init__.py
   Products.rendezvous/trunk/Products/rendezvous/tests/testRDV_RendezVous.py
   Products.rendezvous/trunk/docs/HISTORY.txt
   Products.rendezvous/trunk/setup.py
Log:
migrate tests to plone.app.testing

Modified: Products.rendezvous/trunk/Products/rendezvous/browser/RDV_RendezVousUtility.py
==============================================================================
--- Products.rendezvous/trunk/Products/rendezvous/browser/RDV_RendezVousUtility.py	(original)
+++ Products.rendezvous/trunk/Products/rendezvous/browser/RDV_RendezVousUtility.py	Fri Oct  4 20:22:06 2013
@@ -17,10 +17,6 @@
 import copy
 ##/code-section module-header
 
-from zope.interface import implements
-
-from Products.CMFDynamicViewFTI.browserdefault import BrowserDefaultMixin
-
 
 class RDV_RendezVousUtility:
     """
@@ -45,9 +41,6 @@
     def toggleSelectedDate(view, selected_date):
         """Toogle selected date
         """
-        context = aq_inner(view.context)
-        request = view.request
-        uid = context.UID()
         selected_dates = RDV_RendezVousUtility.getPropositionsByDates(view)
         if not selected_date in selected_dates:
             selected_dates[selected_date] = []

Modified: Products.rendezvous/trunk/Products/rendezvous/browser/RDV_RendezVousView.py
==============================================================================
--- Products.rendezvous/trunk/Products/rendezvous/browser/RDV_RendezVousView.py	(original)
+++ Products.rendezvous/trunk/Products/rendezvous/browser/RDV_RendezVousView.py	Fri Oct  4 20:22:06 2013
@@ -134,7 +134,8 @@
 
     def addParticipation(self):
         context = self.context.aq_inner
-        actor = self.request.AUTHENTICATED_USER
+        mtool = getToolByName(context, "portal_membership")
+        actor = mtool.getAuthenticatedMember()
         participant = actor.getId()
         try:
             selected_propositions = self.request.form['propositions']

Added: Products.rendezvous/trunk/Products/rendezvous/testing.py
==============================================================================
--- (empty file)
+++ Products.rendezvous/trunk/Products/rendezvous/testing.py	Fri Oct  4 20:22:06 2013
@@ -0,0 +1,93 @@
+# -*- coding: utf-8 -*-
+"""Base module for unittesting."""
+
+from plone.app.robotframework.testing import AUTOLOGIN_LIBRARY_FIXTURE
+from plone.app.testing import applyProfile
+from plone.app.testing import FunctionalTesting
+from plone.app.testing import IntegrationTesting
+from plone.app.testing import login
+from plone.app.testing import PLONE_FIXTURE
+from plone.app.testing import PloneSandboxLayer
+from plone.app.testing import setRoles
+from plone.app.testing import TEST_USER_ID
+from plone.app.testing import TEST_USER_NAME
+from plone.testing import z2
+
+import unittest2 as unittest
+
+import Products.rendezvous
+
+
+class ProductsRendezvousLayer(PloneSandboxLayer):
+
+    defaultBases = (PLONE_FIXTURE,)
+    products = ('Products.rendezvous',
+               )
+
+    def setUpZope(self, app, configurationContext):
+        """Set up Zope."""
+        # Load ZCML
+        self.loadZCML(package=Products.rendezvous,
+                      name='configure.zcml')
+        for p in self.products:
+            z2.installProduct(app, p)
+
+    def setUpPloneSite(self, portal):
+        """Set up Plone."""
+        # Install into Plone site using portal_setup
+        applyProfile(portal, 'Products.rendezvous:default')
+
+        # Login and create some test content
+        setRoles(portal, TEST_USER_ID, ['Manager'])
+        login(portal, TEST_USER_NAME)
+
+        # Commit so that the test browser sees these objects
+        import transaction
+        transaction.commit()
+
+    def tearDownZope(self, app):
+        """Tear down Zope."""
+        for p in reversed(self.products):
+            z2.uninstallProduct(app, p)
+
+
+FIXTURE = ProductsRendezvousLayer(
+    name="FIXTURE"
+    )
+
+
+INTEGRATION = IntegrationTesting(
+    bases=(FIXTURE,),
+    name="INTEGRATION"
+    )
+
+
+FUNCTIONAL = FunctionalTesting(
+    bases=(FIXTURE,),
+    name="FUNCTIONAL"
+    )
+
+
+ACCEPTANCE = FunctionalTesting(bases=(FIXTURE,
+                                      AUTOLOGIN_LIBRARY_FIXTURE,
+                                      z2.ZSERVER_FIXTURE),
+                               name="ACCEPTANCE")
+
+
+class IntegrationTestCase(unittest.TestCase):
+    """Base class for integration tests."""
+
+    layer = INTEGRATION
+
+    def setUp(self):
+        super(IntegrationTestCase, self).setUp()
+        self.portal = self.layer['portal']
+
+    def login(self, username):
+        login(self.layer['portal'], username)
+
+
+class FunctionalTestCase(unittest.TestCase):
+    """Base class for functional tests."""
+
+    layer = FUNCTIONAL

Modified: Products.rendezvous/trunk/Products/rendezvous/tests/__init__.py
==============================================================================
--- Products.rendezvous/trunk/Products/rendezvous/tests/__init__.py	(original)
+++ Products.rendezvous/trunk/Products/rendezvous/tests/__init__.py	Fri Oct  4 20:22:06 2013
@@ -1,42 +1 @@
-# -*- coding: utf-8 -*-
 #
-# File: tests.py
-#
-# Copyright (c) 2008 by Ecreall
-# Generator: ArchGenXML Version 2.2 (svn)
-#            http://plone.org/products/archgenxml
-#
-# GNU General Public License (GPL)
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
-#
-
-__author__ = """Vincent Fretin <[email protected]>"""
-__docformat__ = 'plaintext'
-
-
-##code-section init-module-header #fill in your manual code here
-##/code-section init-module-header
-
-
-# Subpackages
-# Additional
-
-# Classes
-
-##code-section init-module-footer #fill in your manual code here
-##/code-section init-module-footer
-

Modified: Products.rendezvous/trunk/Products/rendezvous/tests/testRDV_RendezVous.py
==============================================================================
--- Products.rendezvous/trunk/Products/rendezvous/tests/testRDV_RendezVous.py	(original)
+++ Products.rendezvous/trunk/Products/rendezvous/tests/testRDV_RendezVous.py	Fri Oct  4 20:22:06 2013
@@ -1,59 +1,20 @@
 # -*- coding: utf-8 -*-
-#
-# File: testRDV_RendezVous.py
-#
-# Copyright (c) 2008 by Ecreall
-# Generator: ArchGenXML Version 2.2 (svn)
-#            http://plone.org/products/archgenxml
-#
-# GNU General Public License (GPL)
-#
-
-__author__ = """Vincent Fretin <[email protected]>"""
-__docformat__ = 'plaintext'
-
-import os, sys
-if __name__ == '__main__':
-    execfile(os.path.join(sys.path[0], 'framework.py'))
-
-##code-section module-header #fill in your manual code here
-##/code-section module-header
-
-#
-# Test-cases for class(es) 
-#
-
-from Testing import ZopeTestCase
-from Products.rendezvous.config import *
-from Products.rendezvous.tests.testPlone import testPlone
-
-# Import the tested classes
-from Products.rendezvous.content.RDV_RendezVous import RDV_RendezVous
-
-##code-section module-beforeclass #fill in your manual code here
 from Products.rendezvous.browser.RDV_RendezVousEdit import RDV_RendezVousEdit
-from Products.rendezvous.browser.RDV_PropositionsEdit import RDV_PropositionsEdit
-from zope.publisher.browser import TestRequest
-from zope.component import getMultiAdapter
-##/code-section module-beforeclass
+from Products.rendezvous.browser.RDV_RendezVousView import RDV_RendezVousView
 
+from ..testing import IntegrationTestCase
 
-class testRDV_RendezVous(testPlone):
-    """Test-cases for class(es) ."""
 
-    ##code-section class-header_testRDV_RendezVous #fill in your manual code here
-    ##/code-section class-header_testRDV_RendezVous
+class testRDV_RendezVous(IntegrationTestCase):
 
-    def afterSetUp(self):
-        self.app.REQUEST.SESSION = {}
-        self.setRoles('Manager')
+    def setUp(self):
+        super(testRDV_RendezVous, self).setUp()
+        self.portal.REQUEST.SESSION = {}
         rdv_id = self.portal.invokeFactory('RDV_RendezVous', 'rdv1')
         self.rdv = getattr(self.portal, rdv_id)
         self.portal.portal_membership.addMember("johndoe", "passwd", ['Member'], [], properties={'name': 'John Doe', 'email': '[email protected]'})
         self.johndoe = self.portal.portal_membership.getMemberById('johndoe')
 
-    # Manually created methods
-
     def test_DelDateWithPropositions(self):
         propositions = self._create_propositions()
         # remove one date
@@ -61,42 +22,42 @@
                                  '2008-11-29':[''],
         }
         self.rdv.setPropositionsByDates(expected_propositions)
-        self.assertEquals(expected_propositions, self.rdv.getPropositionsByDates())
+        self.assertEqual(expected_propositions, self.rdv.getPropositionsByDates())
 
     def test_AddDate(self):
-        request = self.app.REQUEST
+        request = self.portal.REQUEST
         view = RDV_RendezVousEdit(self.rdv, request)
-        self.assertEquals([], view.getSelectedDates())
-        request.set('rdvdate', '2008-11-27')
+        self.assertEqual([], view.getSelectedDates())
+        request.form['rdvdate'] = '2008-11-27'
         view = RDV_RendezVousEdit(self.rdv, request)
-        self.assertEquals(['2008-11-27'], view.getSelectedDates())
-        request.set('rdvdate', '2008-11-28')
+        self.assertEqual(['2008-11-27'], view.getSelectedDates())
+        request.form['rdvdate'] = '2008-11-28'
         view = RDV_RendezVousEdit(self.rdv, request)
-        self.assertEquals(['2008-11-27', '2008-11-28'], view.getSelectedDates())
-        request.set('rdvdate', '2008-11-29')
+        self.assertEqual(['2008-11-27', '2008-11-28'], view.getSelectedDates())
+        request.form['rdvdate'] = '2008-11-29'
         view = RDV_RendezVousEdit(self.rdv, request)
-        self.assertEquals(['2008-11-27', '2008-11-28', '2008-11-29'], view.getSelectedDates())
+        self.assertEqual(['2008-11-27', '2008-11-28', '2008-11-29'], view.getSelectedDates())
 
     def test_manage_participants_in_proposition(self):
         prop_id = self.rdv.invokeFactory('RDV_Proposition', 'prop')
         prop = getattr(self.rdv, prop_id)
         prop.manageParticipant('johndoe', checked=True)
-        self.assertEquals(('johndoe',), prop.getAvailable())
+        self.assertEqual(('johndoe',), prop.getAvailable())
         prop.manageParticipant('johnsmith', True)
-        self.assertEquals(('johndoe', 'johnsmith'), prop.getAvailable())
+        self.assertEqual(('johndoe', 'johnsmith'), prop.getAvailable())
         prop.manageParticipant('johndoe', False)
-        self.assertEquals(('johnsmith',), prop.getAvailable())
+        self.assertEqual(('johnsmith',), prop.getAvailable())
 
     def test_SaveChanges(self):
-        request = self.app.REQUEST
-        view = RDV_PropositionsEdit(self.rdv, request)
+        request = self.portal.REQUEST
+        view = RDV_RendezVousEdit(self.rdv, request)
         props = {'2008-12-25': ['12:00', 'minuit', 'midi', '', ''],
                  '2008-12-19': ['13:00', '14:00', '', '', ''],
                  '2008-12-31': ['', '', '', '', ''] }
         request.form = props
         request.form['finish'] = 'Finish'
         view.saveChanges()
-        self.assertEquals({'2008-12-25': ['12:00', 'minuit', 'midi'],
+        self.assertEqual({'2008-12-25': ['12:00', 'minuit', 'midi'],
                            '2008-12-19': ['13:00', '14:00'],
                             '2008-12-31': ['']}, self.rdv.getPropositionsByDates())
 
@@ -111,86 +72,71 @@
 
     def test_SetPropositions(self):
         propositions = self._create_propositions()
-        self.assertEquals(propositions, self.rdv.getPropositionsByDates())
+        self.assertEqual(propositions, self.rdv.getPropositionsByDates())
 
     def test_reedit_rendezvous(self):
         propositions = self._create_propositions()
-        request = self.app.REQUEST
+        request = self.portal.REQUEST
         view = RDV_RendezVousEdit(self.rdv, request)
-        self.assertEquals(propositions.keys(), view.getSelectedDates())
+        self.assertEqual(propositions.keys(), view.getSelectedDates())
 
     def test_NbColumns(self):
-        request = self.app.REQUEST
-        view = RDV_PropositionsEdit(self.rdv, request)
-        self.assertEquals(view.NB_COLUMNS, view.getNbColumns())
+        request = self.portal.REQUEST
+        view = RDV_RendezVousEdit(self.rdv, request)
+        self.assertEqual(view.NB_COLUMNS, view.getNbColumns())
 
     def test_incColumns(self):
-        request = self.app.REQUEST
+        request = self.portal.REQUEST
         request.form['extend'] = 'Extends columns'
-        view = RDV_PropositionsEdit(self.rdv, request)
-        self.assertEquals(view.NB_COLUMNS, view.getNbColumns())
+        view = RDV_RendezVousEdit(self.rdv, request)
+        self.assertEqual(view.NB_COLUMNS, view.getNbColumns())
         view.saveChanges()
 #        view.incNbColumns()
-        self.assertEquals(view.NB_COLUMNS*2, view.getNbColumns())
+        self.assertEqual(view.NB_COLUMNS*2, view.getNbColumns())
 
     def test_DelDate(self):
-        request = self.app.REQUEST
+        request = self.portal.REQUEST
         # add two dates
-        request.set('rdvdate', '2008-11-27')
+        request.form['rdvdate'] = '2008-11-27'
         view = RDV_RendezVousEdit(self.rdv, request)
-        request.set('rdvdate', '2008-11-28')
+        request.form['rdvdate'] = '2008-11-28'
         view = RDV_RendezVousEdit(self.rdv, request)
-        self.assertEquals(['2008-11-27', '2008-11-28'], view.getSelectedDates())
+        self.assertEqual(['2008-11-27', '2008-11-28'], view.getSelectedDates())
         # remove one date
-        request.set('rdvdate', '2008-11-27')
+        request.form['rdvdate'] = '2008-11-27'
         view = RDV_RendezVousEdit(self.rdv, request)
-        self.assertEquals(['2008-11-28'], view.getSelectedDates())
+        self.assertEqual(['2008-11-28'], view.getSelectedDates())
 
     def test_add_other_dates(self):
         propositions = self._create_propositions()
-        request = self.app.REQUEST
-        request.set('rdvdate', '2008-11-30')
+        request = self.portal.REQUEST
+        request.form['rdvdate'] = '2008-11-30'
         view = RDV_RendezVousEdit(self.rdv, request)
-        self.assertEquals(sorted(list(propositions.keys()) + ['2008-11-30']), sorted(view.getSelectedDates()))
+        self.assertEqual(sorted(list(propositions.keys()) + ['2008-11-30']), sorted(view.getSelectedDates()))
 
     def test_add_participant(self):
         self.rdv.addParticipant('johndoe')
-        self.assertEquals(('johndoe',), self.rdv.getParticipants())
+        self.assertEqual(('johndoe',), self.rdv.getParticipants())
 
     def test_add_participant_twice(self):
         self.rdv.addParticipant('johndoe')
         self.rdv.addParticipant('johndoe')
-        self.assertEquals(('johndoe',), self.rdv.getParticipants())
+        self.assertEqual(('johndoe',), self.rdv.getParticipants())
 
     def test_addParticipant(self):
-        request = self.app.REQUEST
-        view = RDV_PropositionsEdit(self.rdv, request)
+        request = self.portal.REQUEST
+        view = RDV_RendezVousEdit(self.rdv, request)
         props = {'2008-12-25': ['12:00', 'minuit', 'midi', '', ''],
                  '2008-12-19': ['13:00', '14:00', '', '', ''],
                  '2008-12-31': ['', '', '', '', ''] }
         request.form = props
         request.form['finish'] = 'Finish'
         view.saveChanges()
-        request = TestRequest()
-        request.AUTHENTICATED_USER = self.johndoe
+        request = self.portal.REQUEST
+        self.login('johndoe')
         propositions = self.rdv.getPropositionObjectsByDates()
         request.form = {'propositions': (propositions['2008-12-25'][0][1],)}
-        view = getMultiAdapter((self.rdv, request), name='add-participation')
-        view()
+        view = RDV_RendezVousView(self.rdv, request).addParticipation()
         prop = getattr(self.rdv, propositions['2008-12-25'][0][1])
-        self.assertEquals(prop.getAvailable(), ('johndoe',))
-        self.assertEquals(prop.getUnavailable(), ())
-
-def test_suite():
-    from unittest import TestSuite, makeSuite
-    suite = TestSuite()
-    suite.addTest(makeSuite(testRDV_RendezVous))
-    return suite
-
-##code-section module-footer #fill in your manual code here
-##/code-section module-footer
-
-if __name__ == '__main__':
-    framework()
-
-
+        self.assertEqual(prop.getAvailable(), ('johndoe',))
+        self.assertEqual(prop.getUnavailable(), ())

Modified: Products.rendezvous/trunk/docs/HISTORY.txt
==============================================================================
--- Products.rendezvous/trunk/docs/HISTORY.txt	(original)
+++ Products.rendezvous/trunk/docs/HISTORY.txt	Fri Oct  4 20:22:06 2013
@@ -4,7 +4,8 @@
 1.4.1 (unreleased)
 ------------------
 
-- Nothing changed yet.
+- Migrate tests to plone.app.testing.
+  [vincentfretin]
 
 
 1.4 (2011-12-22)

Modified: Products.rendezvous/trunk/setup.py
==============================================================================
--- Products.rendezvous/trunk/setup.py	(original)
+++ Products.rendezvous/trunk/setup.py	Fri Oct  4 20:22:06 2013
@@ -40,6 +40,12 @@
           'setuptools',
           # -*- Extra requirements: -*-
       ],
+      extras_require={
+        'test': [
+            'plone.app.testing',
+            'plone.app.robotframework',
+        ],
+      },
       entry_points="""
       # -*- Entry points: -*-
       """,

------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk