Commit ffed76b6 authored by Makdon's avatar Makdon Committed by Miss Islington (bot)

bpo-37094: Add example for TestCase.skipTest in unittest doc (GH-13645)



Also includes other minor test skipping doc improvements.


https://bugs.python.org/issue37094
parent a0c01bf1
...@@ -510,7 +510,8 @@ that is broken and will fail, but shouldn't be counted as a failure on a ...@@ -510,7 +510,8 @@ that is broken and will fail, but shouldn't be counted as a failure on a
:class:`TestResult`. :class:`TestResult`.
Skipping a test is simply a matter of using the :func:`skip` :term:`decorator` Skipping a test is simply a matter of using the :func:`skip` :term:`decorator`
or one of its conditional variants. or one of its conditional variants, calling :meth:`TestCase.skipTest` within a
:meth:`~TestCase.setUp` or test method, or raising :exc:`SkipTest` directly.
Basic skipping looks like this:: Basic skipping looks like this::
...@@ -531,16 +532,23 @@ Basic skipping looks like this:: ...@@ -531,16 +532,23 @@ Basic skipping looks like this::
# windows specific testing code # windows specific testing code
pass pass
def test_maybe_skipped(self):
if not external_resource_available():
self.skipTest("external resource not available")
# test code that depends on the external resource
pass
This is the output of running the example above in verbose mode:: This is the output of running the example above in verbose mode::
test_format (__main__.MyTestCase) ... skipped 'not supported in this library version' test_format (__main__.MyTestCase) ... skipped 'not supported in this library version'
test_nothing (__main__.MyTestCase) ... skipped 'demonstrating skipping' test_nothing (__main__.MyTestCase) ... skipped 'demonstrating skipping'
test_maybe_skipped (__main__.MyTestCase) ... skipped 'external resource not available'
test_windows_support (__main__.MyTestCase) ... skipped 'requires Windows' test_windows_support (__main__.MyTestCase) ... skipped 'requires Windows'
---------------------------------------------------------------------- ----------------------------------------------------------------------
Ran 3 tests in 0.005s Ran 4 tests in 0.005s
OK (skipped=3) OK (skipped=4)
Classes can be skipped just like methods:: Classes can be skipped just like methods::
...@@ -568,7 +576,7 @@ the test unless the passed object has a certain attribute:: ...@@ -568,7 +576,7 @@ the test unless the passed object has a certain attribute::
return lambda func: func return lambda func: func
return unittest.skip("{!r} doesn't have {!r}".format(obj, attr)) return unittest.skip("{!r} doesn't have {!r}".format(obj, attr))
The following decorators implement test skipping and expected failures: The following decorators and exception implement test skipping and expected failures:
.. decorator:: skip(reason) .. decorator:: skip(reason)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment