Metadata-Version: 1.1
Name: robotsuite
Version: 1.6.0
Summary: Robot Framework test suite for Python unittest framework
Home-page: https://github.com/collective/robotsuite/
Author: Asko Soukka
Author-email: asko.soukka@iki.fi
License: GPL
Description: Python unittest test suite for Robot Framework
        ==============================================
        
        This is an experimental package
        for wrapping Robot Framework test suites into Python unittest suites
        to make it possible to run Robot Framework tests
        as `plone.testing`_'s layered test suites:
        
        .. code:: python
        
            import unittest2 as unittest
        
            from plone.testing import layered
            from robotsuite import RobotTestSuite
        
            from my_package.testing import ACCEPTANCE_TESTING
        
        
            def test_suite():
                suite = unittest.TestSuite()
                suite.addTests([
                    layered(RobotTestSuite('mysuite.txt'),
                            layer=ACCEPTANCE_TESTING),
                ])
                return suite
        
        *RobotTestSuite* splits Robot Framework test suites into separate
        unittest test cases so that Robot will be run once for every test
        case in every test suite parsed from the given Robot Framework
        test suite.
        Because of that, each Robot will generate a separate test report
        for each test.
        Each report will have it's own folder,
        which are created recursively
        reflecting the structure of the given test suite.
        
        *RobotTestSuite*'s way of wrapping tests into
        unittest's test suite is similar to how doctest-module's
        DocTestSuite does its wrappings.
        See the documentation of DocTestSuite for
        possible common parameters (e.g. for how to pass a test suite from a
        different package).
        
        The main motivation behind this package is to make
        Robot Framework support existing test fixtures and test isolation
        when testing `Plone`_.
        Yet, this should help anyone wanting to use Robot Framework with
        `zope.testrunner`_ or other Python unittest compatible test runner.
        
        .. _plone.testing: http://pypi.python.org/pypi/plone.testing
        .. _zope.testrunner: http://pypi.python.org/pypi/zope.testrunner
        .. _Plone: http://pypi.python.org/pypi/Plone
        
        If this works for you, please contribute at:
        http://github.com/collective/robotsuite/
        
        .. image:: https://secure.travis-ci.org/collective/robotsuite.png
           :target: http://travis-ci.org/collective/robotsuite
        
        
        Setting robot variables from environment variables
        --------------------------------------------------
        
        Robot Framework supports overriding test variables from command-line, which
        is not-available when running tests as robotsuite-wrapped with other test
        runners. That's why robotsuite supports settings variables as environment
        variables so that every ``ROBOT_``-prefixed environment variable will be
        mapped into corresponding test variable without the ``ROBOT_``-prefix.
        
        
        Declaring tests non-critical by given set of tags
        -------------------------------------------------
        
        Robot Framework supports declaring tests with given tags as *non-critical*
        to prevent their failing to fail the complete build on CI. This is supported
        as keyword argument for *RobotTestSuite* as follows:
        
        .. code:: python
        
           def test_suite():
               suite = unittest.TestSuite()
               suite.addTests([
                   layered(RobotTestSuite('mysuite.txt',
                                          noncritical=['non-critical-tag']),
                           layer=ACCEPTANCE_TESTING),
               ])
               return suite
        
        
        Setting zope.testrunner-level
        -----------------------------
        
        `zope.testrunner`_ supports annotating test suites with levels to avoid
        slow test being run unless wanted:
        
        .. code:: python
        
           def test_suite():
               suite = unittest.TestSuite()
               suite.addTests([
                   layered(RobotTestSuite('mysuite.txt'),
                           layer=ACCEPTANCE_TESTING),
               ])
               suite.level = 10
               return suite
        
        
        Appending test results to existing test report
        ----------------------------------------------
        
        When running Robot Framework through robotsuite, its test reports are created
        into the current working directory with filenames ``robot_output.xml``,
        ``robot_log.html`` and ``robot_report.html``. The default behavior is to
        override the existing ``robot_output.xml`` (and also the other report files
        generated from that).
        
        To merge test results from separate test runs into the same test report, set
        environment variable ``ROBOTSUITE_APPEND_OUTPUT_XML=1`` to prevent robotsuite
        from overriding the existing test results, but to always append to the existing
        ``robot_output.xml``.
        
        
        Including or skipping all RobotTestSuite-wrapped tests
        ------------------------------------------------------
        
        Robot Framework is often used with Selenium2Library_ to write acceptance test
        using the Selenium-framework. Yet, because those test may be slow to run, one
        might want sometimes (e.g. on CI) to run everything except the robotsuite
        wrapped tests, and later only the robotsuite wrapped tests.
        
        This can be achieved for sure, with injecting a custom string into the names
        of robotsuite-wrapped tests with ``ROBOTSUITE_PREFIX``-environment variable
        and then filter the test with that string.
        
        E.g. run everything except the robotsuite wrapped tests with:
        
        .. code:: bash
        
           $ ROBOTSUITE_PREFIX=ROBOTSUITE bin/test --all -t \!ROBOTSUITE
        
        and the other way around with:
        
        .. code:: bash
        
           $ ROBOTSUITE_PREFIX=ROBOTSUITE bin/test --all -t ROBOTSUITE
        
        .. _Selenium2Library: https://pypi.python.org/pypi/robotframework-selenium2library
        
        
        
        Re-using test suites from other packages
        ----------------------------------------
        
        Sometime it could be useful to re-use acceptance test from some upstream
        package to test your slightly tailored package (e.g. with a custom theme).
        This can be done with by defining the test lookup location with
        ``package``-keyword argment for ``RobotTestSuite``:
        
        .. code:: python
        
            def test_suite():
                suite = unittest.TestSuite()
                suite.addTests([
                    layered(leveled(
                        robotsuite.RobotTestSuite('robot',
                                                  package='Products.CMFPlone.tests'),
                    ), layer=PLONE_APP_MOSAIC_NO_PAC_ROBOT),
                ])
                return suite
        
        Changelog
        =========
        
        1.6.0 (2014-06-29)
        ------------------
        
        - Add support for ROBOTSUITE_PREFIX-env for injecting custom string into all
          robotsuite test names
          [Asko Soukka]
        - Add UTF-8 support for robot variables [#6]
          [Tom Gross]
          [Vincent Fretin]
        - Added Python 3.4 support
          [Vincent Fretin]
        
        
        1.5.0 (2014-04-13)
        ------------------
        
        - Restore original behavior to override the exiting robot_output.xml. Set
          environment variable ROBOTSUITE_APPEND_OUTPUT_XML=1 to append test results to
          the existing robot_output.xml.
          [Asko Soukka]
        
        1.4.3 (2014-01-27)
        ------------------
        
        - Fix issue where test suites with sub-suites were not supported
          [Asko Soukka]
        
        1.4.2 (2013-11-22)
        ------------------
        
        - Fix issue where suite setups were run for suites without tests
          wit robotframework >= 2.8.0
          [Asko Soukka]
        
        1.4.1 (2013-10-13)
        ------------------
        
        - Fix regression in 1.4.0, which dropped relative path names from robot test
          cases
          [Asko Soukka]
        - Fix RobotTestCase to mimic DocTestCase enough to allow plone.testing to set
          'layer' for it
          [Asko Soukka]
        - Fix to set given test 'setUp' and 'tearDown' methods properly as
          instancemethods (will break existing methods not accepting 'self' parameters)
          [Asko Soukka]
        
        1.4.0 (2013-06-19)
        ------------------
        
        - Supports only roboframework >= 2.8.
          Use robotsuite 1.3.x with robotframework 1.7.x
          [Asko Soukka]
        
        1.3.3 (2013-06-05)
        ------------------
        
        - Fix to support custom screenshot filenames with paths [fix #2]
          [Asko Soukka]
        
        1.3.2 (2013-06-03)
        ------------------
        
        - Remove screenshot capturing from functional test
          [Asko Soukka]
        
        1.3.1 (2013-06-03)
        ------------------
        
        - Pin robotframework < 2.8rc1, because robotsuite is not yet
          compatible with robotframework 2.8.x
          [Asko Soukka]
        
        1.3.0 (2013-04-09)
        ------------------
        
        - Allow passing arguments critical/noncritical
          to only raise an AssertionError if the test is critical
          [reinhardt]
        
        1.2.2 (2013-04-08)
        ------------------
        
        - Fix to copy all screenshots (not only selenium-screenshot\*.png) when mergin
          test reports
        
        1.2.1 (2013-03-08)
        ------------------
        
        - Revert setting the default zope.testrunner level and support setting it via
          environment variable ROBOTSUITE_LEVEL (e.g. ROBOTSUITE_LEVEL=2).
        
        1.2.0 (2013-03-08)
        ------------------
        
        - Override test suite __module__ test case id() to support
          collective.xmltestreport
        - Add support for zope.testrunner test suite levels (with default value of 2 to
          allow easily to run all but robot tests with zope.testrunner
        
        1.1.0 (2013-02-20)
        ------------------
        
        - Change of behavior to not remove existing ``robot_output.xml``, but always
          just merge new test data into it. ``robot_output.xml`` can be reseted by
          deleting it manually between tests.
        
        1.0.4 (2013-02-19)
        ------------------
        
        - Fix issue in merging of test reports from tests form two or more separate
          test suites
        
        1.0.3 (2013-02-18)
        ------------------
        
        - Fix the example test to read ZSERVER_PORT -environment variable properly
        
        1.0.2 (2013-02-09)
        ------------------
        
        - Fix to replace spaces in test report folder names
        
        1.0.1 (2013-02-09)
        ------------------
        
        - Add newline before stdout dump on failing tests
        
        1.0.0 (2013-02-08)
        ------------------
        
        - Stop replacing spaces with underscores in testnames
        
        0.9.0 (2012-09-21)
        ------------------
        
        - Added injecting logged errors into captured stdout to be dumped with robot
          output when a test fails.
        
        0.8.0 (2012-09-13)
        ------------------
        
        - Added support for setting pybot cli-variables from ROBOT\_-prefixed
          environment variables.
        
        0.7.0 (2012-09-11)
        ------------------
        
        - Implemented custom merge for Robot Framework reports to create better
          concatenated test report and fully support Robot Framework plugin for
          Jenkins.
        - Fixed to copy (selenium-)screenshots into the root test directory to
          make it easier to publish them in Jenkins.
        
        0.6.0 (2012-08-21)
        ------------------
        
        - Fixed screenshot paths in concatenated report.
        - Fixed test names to include suite filename instead of classname.
        - Fixed to allow dash in normalized test names.
        
        0.5.0 (2012-07-23)
        ------------------
        
        - Included robotframework test tags as part of tests' string representation
          to allow test be filtered with tags (e.g. with `zope.testrunner`_).
        - Added creation of concatenated log file.
        
        0.4.0 (2012-06-04)
        ------------------
        
        - Fixed to rename test method of each test after the actual robot framework
          test run by the test case.
        
        0.3.1 (2012-06-03)
        ------------------
        
        - Updated README.
        
        0.3.0 (2012-06-03)
        ------------------
        
        - Enabled robotframework reports for tests. Each test suite and each test
          will have their own outputdir, recursively.
        
        0.2.0 (2012-06-02)
        ------------------
        
        - Support for directories as (recursive) suites.
        
        0.1.0 (2012-05-30)
        ------------------
        
        - Proof of concept.
        
Platform: UNKNOWN
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.4
