enable new behavior only for Python 3, adjust new test to work with Python 2

parent 3d80ad57
......@@ -144,7 +144,11 @@ template <typename Type, typename Value> struct list_caster {
using value_conv = make_caster<Value>;
bool load(handle src, bool convert) {
if (!isinstance<sequence>(src) || (!isinstance<bytes>(src) && isinstance<str>(src)))
if (!isinstance<sequence>(src) || (
#if PY_MAJOR_VERSION >= 3
!isinstance<bytes>(src) &&
#endif
isinstance<str>(src)))
return false;
auto s = reinterpret_borrow<sequence>(src);
value.clear();
......
......@@ -247,7 +247,7 @@ def test_function_with_string_and_vector_string_arg():
def test_bytes_to_vector_uint8_t():
"""Check if a bytes is implicitly converted to std::vector<uint8_t>, issue #1807"""
assert m.func_with_vector_uint8_t_arg(b'abc') == 3
assert m.func_with_vector_uint8_t_arg([ord(c) for c in b'abc']) == 3
with pytest.raises(TypeError):
m.func_with_vector_uint8_t_arg('stringval')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment