Description
Originally reported by: Anonymous
import numpy as np
def test_array():
assert not(any(np.array([0, -1]) < 0))
I have this file as test3.py
If I run this with
py.test test3.py
I get the following output
$ py.test test3.py
============================= test session starts ==============================
platform linux2 -- Python 2.6.6 -- pytest-2.0.0
collected 1 items
test3.py F
=================================== FAILURES ===================================
__________________________________ test_array __________________________________
self = AssertionError()
def __init__(self, *args):
BuiltinAssertionError.__init__(self, *args)
if args:
try:
self.msg = str(args[0])
except py.builtin._sysex:
raise
except:
self.msg = "<[broken __repr__] %s at %0xd>" %(
args[0].__class__, id(args[0]))
else:
f = py.code.Frame(sys._getframe(1))
try:
source = f.code.fullsource
if source is not None:
try:
source = source.getstatement(f.lineno, assertion=True)
except IndexError:
source = None
else:
source = str(source.deindent()).strip()
except py.error.ENOENT:
source = None
# this can also occur during reinterpretation, when the
# co_filename is set to "<run>".
if source:
self.msg = reinterpret(source, f, should_fail=True)
/usr/local/lib/python2.6/dist-packages/py/_code/assertion.py:79:
source = 'assert not(any(np.array([0, -1]) < 0))'
frame = <py._code.code.Frame object at 0x96208cc>, should_fail = True
def interpret(source, frame, should_fail=False):
mod = ast.parse(source)
visitor = DebugInterpreter(frame)
try:
visitor.visit(mod)
/usr/local/lib/python2.6/dist-packages/py/_code/_assertionnew.py:48:
self = <py._code._assertionnew.DebugInterpreter object at 0x9678a4c>
node = <_ast.Module object at 0x96788ac>
def visit(self, node):
"""Visit a node."""
method = 'visit_' + node.__class__.__name__
visitor = getattr(self, method, self.generic_visit)
return visitor(node)
/usr/lib/python2.6/ast.py:231:
self = <py._code._assertionnew.DebugInterpreter object at 0x9678a4c>
mod = <_ast.Module object at 0x96788ac>
def visit_Module(self, mod):
for stmt in mod.body:
self.visit(stmt)
/usr/local/lib/python2.6/dist-packages/py/_code/_assertionnew.py:146:
self = <py._code._assertionnew.DebugInterpreter object at 0x9678a4c>
node = <_ast.Assert object at 0x967872c>
def visit(self, node):
"""Visit a node."""
method = 'visit_' + node.__class__.__name__
visitor = getattr(self, method, self.generic_visit)
return visitor(node)
/usr/lib/python2.6/ast.py:231:
self = <py._code._assertionnew.DebugInterpreter object at 0x9678a4c>
assrt = <_ast.Assert object at 0x967872c>
def visit_Assert(self, assrt):
test_explanation, test_result = self.visit(assrt.test)
/usr/local/lib/python2.6/dist-packages/py/_code/_assertionnew.py:319:
self = <py._code._assertionnew.DebugInterpreter object at 0x9678a4c>
node = <_ast.UnaryOp object at 0x96785ac>
def visit(self, node):
"""Visit a node."""
method = 'visit_' + node.__class__.__name__
visitor = getattr(self, method, self.generic_visit)
return visitor(node)
/usr/lib/python2.6/ast.py:231:
self = <py._code._assertionnew.DebugInterpreter object at 0x9678a4c>
unary = <_ast.UnaryOp object at 0x96785ac>
def visit_UnaryOp(self, unary):
pattern = unary_map[unary.op.__class__]
operand_explanation, operand_result = self.visit(unary.operand)
/usr/local/lib/python2.6/dist-packages/py/_code/_assertionnew.py:202:
self = <py._code._assertionnew.DebugInterpreter object at 0x9678a4c>
node = <_ast.Call object at 0x96789cc>
def visit(self, node):
"""Visit a node."""
method = 'visit_' + node.__class__.__name__
visitor = getattr(self, method, self.generic_visit)
return visitor(node)
/usr/lib/python2.6/ast.py:231:
self = <py._code._assertionnew.DebugInterpreter object at 0x9678a4c>
call = <_ast.Call object at 0x96789cc>
def visit_Call(self, call):
func_explanation, func = self.visit(call.func)
arg_explanations = []
ns = {"__exprinfo_func" : func}
arguments = []
for arg in call.args:
arg_explanation, arg_result = self.visit(arg)
/usr/local/lib/python2.6/dist-packages/py/_code/_assertionnew.py:232:
self = <py._code._assertionnew.DebugInterpreter object at 0x9678a4c>
node = <_ast.Compare object at 0x9678a0c>
def visit(self, node):
"""Visit a node."""
method = 'visit_' + node.__class__.__name__
visitor = getattr(self, method, self.generic_visit)
return visitor(node)
/usr/lib/python2.6/ast.py:231:
self = <py._code._assertionnew.DebugInterpreter object at 0x9678a4c>
comp = <_ast.Compare object at 0x9678a0c>
def visit_Compare(self, comp):
left = comp.left
left_explanation, left_result = self.visit(left)
for op, next_op in zip(comp.ops, comp.comparators):
next_explanation, next_result = self.visit(next_op)
op_symbol = operator_map[op.__class__]
explanation = "%s %s %s" % (left_explanation, op_symbol,
next_explanation)
source = "__exprinfo_left %s __exprinfo_right" % (op_symbol,)
co = self._compile(source)
try:
result = self.frame.eval(co, __exprinfo_left=left_result,
__exprinfo_right=next_result)
except Exception:
raise Failure(explanation)
if not result:
E ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
/usr/local/lib/python2.6/dist-packages/py/_code/_assertionnew.py:177: ValueError
=========================== 1 failed in 0.23 seconds ===========================
$