[Pytest-commit] commit/pytest: hpk42: clarify that python_functions does not apply to unittest.TestCase
commits-noreply at bitbucket.org
commits-noreply at bitbucket.org
Fri Nov 22 13:45:04 CET 2013
1 new commit in pytest:
https://bitbucket.org/hpk42/pytest/commits/73b1eed8ce09/
Changeset: 73b1eed8ce09
User: hpk42
Date: 2013-11-22 13:44:56
Summary: clarify that python_functions does not apply to unittest.TestCase
classes and their methods. Addresses issue284.
Affected #: 4 files
diff -r 4951204afadcc1070e0d478c7ba4e8bdd29cd8fd -r 73b1eed8ce09afd9c4944dda484fdfee6c3a428f _pytest/assertion/__init__.py
--- a/_pytest/assertion/__init__.py
+++ b/_pytest/assertion/__init__.py
@@ -78,10 +78,12 @@
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
diff -r 4951204afadcc1070e0d478c7ba4e8bdd29cd8fd -r 73b1eed8ce09afd9c4944dda484fdfee6c3a428f _pytest/assertion/util.py
--- a/_pytest/assertion/util.py
+++ b/_pytest/assertion/util.py
@@ -95,9 +95,6 @@
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 @@
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 @@
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
diff -r 4951204afadcc1070e0d478c7ba4e8bdd29cd8fd -r 73b1eed8ce09afd9c4944dda484fdfee6c3a428f doc/en/customize.txt
--- a/doc/en/customize.txt
+++ b/doc/en/customize.txt
@@ -121,6 +121,8 @@
.. 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.
diff -r 4951204afadcc1070e0d478c7ba4e8bdd29cd8fd -r 73b1eed8ce09afd9c4944dda484fdfee6c3a428f doc/en/example/pythoncollection.txt
--- a/doc/en/example/pythoncollection.txt
+++ b/doc/en/example/pythoncollection.txt
@@ -53,6 +53,12 @@
============================= 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
-----------------------------------------------------
Repository URL: https://bitbucket.org/hpk42/pytest/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
More information about the pytest-commit
mailing list