clarify that python_functions does not apply to unittest.TestCase

classes and their methods.  Addresses issue284.
This commit is contained in:
holger krekel 2013-11-22 13:44:56 +01:00
parent 08f3a0791d
commit 438d85b5ad
4 changed files with 23 additions and 10 deletions

View File

@ -78,10 +78,12 @@ def pytest_runtest_setup(item):
for new_expl in hook_result:
if new_expl:
# Don't include pageloads of data unless we are very verbose (-vv)
# Don't include pageloads of data unless we
# are very verbose (-vv)
if len(''.join(new_expl[1:])) > 80*8 and item.config.option.verbose < 2:
new_expl[1:] = ['Detailed information truncated, use "-vv" to see']
res = '\n~'.join(new_expl)
res = '\n'.join(new_expl)
print res
if item.config.getvalue("assertmode") == "rewrite":
# The result will be fed back a python % formatting
# operation, which will fail if there are extraneous

View File

@ -95,9 +95,6 @@ except NameError:
def assertrepr_compare(config, op, left, right):
"""Return specialised explanations for some operators/operands"""
width = 80 - 15 - len(op) - 2 # 15 chars indentation, 1 space around op
left_repr = py.io.saferepr(left, maxsize=int(width/2))
right_repr = py.io.saferepr(right, maxsize=width-len(left_repr))
summary = '%s %s %s' % (left_repr, op, right_repr)
issequence = lambda x: (isinstance(x, (list, tuple, Sequence))
and not isinstance(x, basestring))
@ -120,9 +117,7 @@ def assertrepr_compare(config, op, left, right):
elif op == 'not in':
if istext(left) and istext(right):
explanation = _notin_text(left, right, verbose)
except py.builtin._sysex:
raise
except:
except Exception:
excinfo = py.code.ExceptionInfo()
explanation = [
'(pytest_assertion plugin: representation of details failed. '
@ -130,7 +125,15 @@ def assertrepr_compare(config, op, left, right):
if not explanation:
return None
if istext(left):
left_repr = left[:int(width/2)]
else:
left_repr = py.io.saferepr(left, maxsize=int(width/2))
if istext(right):
right_repr = right[:int(width/2)]
else:
right_repr = py.io.saferepr(right, maxsize=width-len(left_repr))
summary = '%s %s %s' % (left_repr, op, right_repr)
return [summary] + explanation

View File

@ -121,6 +121,8 @@ Builtin configuration file options
.. confval:: python_functions
One or more name prefixes determining which test functions
and methods are considered as test modules.
and methods are considered as test modules. Note that this
has no effect on methods that live on a ``unittest.TestCase``
derived class.
See :ref:`change naming conventions` for examples.

View File

@ -53,6 +53,12 @@ then the test collection looks like this::
============================= in 0.01 seconds =============================
.. note::
the ``python_functions`` and ``python_classes`` has no effect
for ``unittest.TestCase`` test discovery because pytest delegates
detection of test case methods to unittest code.
Interpreting cmdline arguments as Python packages
-----------------------------------------------------