未验证 提交 ea20f8be 编写于 作者: T Tao Luo 提交者: GitHub

refine error message of input TypeError in framework.py (#19970)

* refine error message of input TypeError in framework.py

test=develop

* refine error message

test=develop

* update test_compare_op.py unit-test to improve coverage

test=develop
上级 940c6ff1
......@@ -1756,9 +1756,12 @@ class Operator(object):
elif isinstance(arg, Variable):
in_arg_names.append(cpt.to_text(arg.name))
else:
raise ValueError(
"not suprt args type , should be[ string_type, binary_type, Varibale]"
)
raise TypeError(
"The type of '%s' in operator %s should be "
"one of [basestring(), str, Varibale] in python2, "
"or one of [str, bytes, Variable] in python3."
"but received : " % (in_proto.name, type),
arg)
self.desc.set_input(in_proto.name, in_arg_names)
else:
self.desc.set_input(in_proto.name, [])
......
......@@ -17,6 +17,8 @@ from __future__ import print_function
import op_test
import unittest
import numpy
import paddle.fluid as fluid
from paddle.fluid import Program, program_guard
def create_test_class(op_type, typename, callback):
......@@ -45,5 +47,16 @@ for _type_name in {'float32', 'float64', 'int32', 'int64'}:
create_test_class('equal', _type_name, lambda _a, _b: _a == _b)
create_test_class('not_equal', _type_name, lambda _a, _b: _a != _b)
class TestCompareOpError(op_test.OpTest):
def test_errors(self):
with program_guard(Program(), Program()):
# The input x and y of compare_op must be Variable.
x = fluid.layers.data(name='x', shape=[1], dtype="float32")
y = fluid.create_lod_tensor(
numpy.array([[-1]]), [[1]], fluid.CPUPlace())
self.assertRaises(TypeError, fluid.layers.greater_equal, x, y)
if __name__ == '__main__':
unittest.main()
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册