mirror of
https://github.com/pybind/pybind11.git
synced 2026-03-14 20:27:47 +00:00
Fix debugging output for nameless py::arg_v annotations (#648)
* Fix debugging output for nameless py::arg annotations This fixes a couple bugs with nameless py::arg() (introduced in #634) annotations: - the argument name was being used in debug mode without checking that it exists (which would result in the std::string construction throwing an exception for being invoked with a nullptr) - the error output says "keyword arguments", but py::arg_v() can now also be used for positional argument defaults. - the debugging output "in function named 'blah'" was overly verbose: changed it to just "in function 'blah'". * Fix missing space in debug test string * Moved tests from issues to methods_and_attributes
This commit is contained in:
committed by
Wenzel Jakob
parent
93cc4bd6d7
commit
1eaacd19f6
@@ -255,3 +255,27 @@ def test_noconvert_args(msg):
|
||||
|
||||
Invoked with: 4
|
||||
"""
|
||||
|
||||
|
||||
def test_bad_arg_default(msg):
|
||||
from pybind11_tests import debug_enabled, bad_arg_def_named, bad_arg_def_unnamed
|
||||
|
||||
with pytest.raises(RuntimeError) as excinfo:
|
||||
bad_arg_def_named()
|
||||
assert msg(excinfo.value) == (
|
||||
"arg(): could not convert default argument 'a: NotRegistered' in function 'should_fail' "
|
||||
"into a Python object (type not registered yet?)"
|
||||
if debug_enabled else
|
||||
"arg(): could not convert default argument into a Python object (type not registered "
|
||||
"yet?). Compile in debug mode for more information."
|
||||
)
|
||||
|
||||
with pytest.raises(RuntimeError) as excinfo:
|
||||
bad_arg_def_unnamed()
|
||||
assert msg(excinfo.value) == (
|
||||
"arg(): could not convert default argument 'NotRegistered' in function 'should_fail' "
|
||||
"into a Python object (type not registered yet?)"
|
||||
if debug_enabled else
|
||||
"arg(): could not convert default argument into a Python object (type not registered "
|
||||
"yet?). Compile in debug mode for more information."
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user