Overloaded C++ function Python wrappers now raise a TypeError instead of NotImplementedError

Occurs when the types passed are incorrect. This change means
there is now consistency with non-overloaded function wrappers which have always
raised TypeError when the incorrect types are passed.

See issue #1293
This commit is contained in:
William S Fulton 2018-07-31 19:12:02 +01:00
commit fd651ff4e2
6 changed files with 32 additions and 14 deletions

View file

@ -95,14 +95,18 @@ if li_std_string_extra.test_value_basic_overload(123) != "int":
try:
li_std_string_extra.test_value_basic_overload([x])
raise RuntimeError, "should throw NotImplementedError"
except NotImplementedError:
raise RuntimeError, "should throw TypeError"
except TypeError as e:
if str(e).find("Possible C/C++ prototypes are:") == -1:
raise RuntimeError("Incorrect error message text:\n{}".format(e))
pass
try:
li_std_string_extra.test_value_basic_overload([123])
raise RuntimeError, "should throw NotImplementedError"
except NotImplementedError:
raise RuntimeError, "should throw TypeError"
except TypeError as e:
if str(e).find("Possible C/C++ prototypes are:") == -1:
raise RuntimeError("Incorrect error message text:\n{}".format(e))
pass
# Global variables