From d1a3249af44729c268512c856db818229d8f670b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Messiant?= Date: Fri, 27 Sep 2013 17:29:32 +0200 Subject: [PATCH] Add RobotFramework integration and some RobotFramework tests --- buildout.cfg | 9 +++++++ setup.py | 1 + src/collective/contact/core/testing.py | 10 +++++++ .../core/tests/robot/test_contacts.robot | 26 +++++++++++++++++++ .../contact/core/tests/test_robot.py | 24 +++++++++++++++++ 5 files changed, 70 insertions(+) create mode 100644 src/collective/contact/core/tests/robot/test_contacts.robot create mode 100644 src/collective/contact/core/tests/test_robot.py diff --git a/buildout.cfg b/buildout.cfg index dc3a0ac..fcc3438 100644 --- a/buildout.cfg +++ b/buildout.cfg @@ -3,9 +3,18 @@ extends = base.cfg parts += omelette + robot eggs += ipdb [omelette] recipe = collective.recipe.omelette eggs = ${test:eggs} + +[robot] +recipe = zc.recipe.egg +eggs = + collective.contact.core + ecreall.helpers.testing + Pillow + plone.app.robotframework[ride,reload] diff --git a/setup.py b/setup.py index dc75529..0405fef 100644 --- a/setup.py +++ b/setup.py @@ -61,6 +61,7 @@ setup(name='collective.contact.core', ], extras_require={ 'test': ['plone.app.testing', + 'plone.app.robotframework', 'ecreall.helpers.testing', ], }, diff --git a/src/collective/contact/core/testing.py b/src/collective/contact/core/testing.py index 0520a58..43da14b 100644 --- a/src/collective/contact/core/testing.py +++ b/src/collective/contact/core/testing.py @@ -4,6 +4,10 @@ from plone.app.testing import PloneWithPackageLayer from plone.app.testing import IntegrationTesting from plone.app.testing import FunctionalTesting +from plone.app.robotframework.testing import AUTOLOGIN_LIBRARY_FIXTURE + +from plone.testing import z2 + import collective.contact.core @@ -28,3 +32,9 @@ INTEGRATION = IntegrationTesting( FUNCTIONAL = FunctionalTesting( bases=(COLLECTIVE_CONTACT_CORE, ), name="FUNCTIONAL") + +ACCEPTANCE = FunctionalTesting( + bases=(COLLECTIVE_CONTACT_CORE, + AUTOLOGIN_LIBRARY_FIXTURE, + z2.ZSERVER_FIXTURE), + name="ACCEPTANCE") diff --git a/src/collective/contact/core/tests/robot/test_contacts.robot b/src/collective/contact/core/tests/robot/test_contacts.robot new file mode 100644 index 0000000..8c125e9 --- /dev/null +++ b/src/collective/contact/core/tests/robot/test_contacts.robot @@ -0,0 +1,26 @@ +*** Settings *** +Test Setup Open test browser +Test Teardown Close all browsers +Resource plone/app/robotframework/keywords.robot + +*** Keywords *** +Go to directory + Go to ${PLONE_URL}/mydirectory + +*** Test cases *** +Directory is available + Log in as site owner + Click link css=#portaltab-mydirectory a + Element should contain css=#content h1 Military directory + +Create a new organization + Log in as site owner + Go to directory + Open Add New Menu + Click link css=#plone-contentmenu-factories a#organization + Wait Until Page Contains Element css=#form-widgets-IBasic-title + Input Text css=#form-widgets-IBasic-title Squadron five + Click Button Save + Page should contain Squadron five + Go to directory + Element should contain organizations Squadron five diff --git a/src/collective/contact/core/tests/test_robot.py b/src/collective/contact/core/tests/test_robot.py new file mode 100644 index 0000000..12bd187 --- /dev/null +++ b/src/collective/contact/core/tests/test_robot.py @@ -0,0 +1,24 @@ +import os +import unittest +import robotsuite +from plone.testing import layered + +from ..testing import ACCEPTANCE + + +def test_suite(): + suite = unittest.TestSuite() + current_dir = os.path.abspath(os.path.dirname(__file__)) + robot_dir = os.path.join(current_dir, 'robot') + robot_tests = [ + os.path.join('robot', doc) for doc in os.listdir(robot_dir) + if doc.endswith('.robot') and doc.startswith('test_') + ] + for test in robot_tests: + suite.addTests([ + layered( + robotsuite.RobotTestSuite(test), + layer=ACCEPTANCE + ), + ]) + return suite