testrunner handling of unexpected success
=========================================

Python 2.7 introduced the concept of expectedFailures to unittest.
See http://www.voidspace.org.uk/python/articles/unittest2.shtml#more-skipping

Although testrunner is currently not able to hande unexpected successes
correctly at least it does not report them as successes.


This document has some edge-case examples to test various aspects of
the test runner.

Separating Python path and test directories
-------------------------------------------

The --path option defines a directory to be searched for tests *and* a
directory to be added to Python's search path.  The --test-path option
can be used when you want to set a test search path without also
affecting the Python path:

    >>> import os, sys
    >>> directory_with_tests = os.path.join(this_directory, 'testrunner-ex-719369')

    >>> from zope.testing import testrunner

    >>> defaults = [
    ...     '--path', directory_with_tests,
    ...     '--tests-pattern', '^sampletestsf?$',
    ...     ]
    >>> sys.argv = ['test']
    >>> testrunner.run_internal(defaults)
    ... # doctest: +ELLIPSIS
    Running zope.testing.testrunner.layer.UnitTests tests:
      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
    Failure in test test_ef (sampletestsf.TestUnexpectedSuccess)
    Traceback (most recent call last):
    _UnexpectedSuccess
      Ran 1 tests with 1 failures and 0 errors in N.NNN seconds.
    Tearing down left over layers:
      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
    True
