mirror of
https://github.com/pybind/pybind11.git
synced 2025-01-31 07:10:30 +00:00
add redeclaration test
This commit is contained in:
parent
882d20f57f
commit
b296137950
@ -1058,7 +1058,12 @@ TEST_SUBMODULE(pytypes, m) {
|
||||
instance.def(py::init());
|
||||
instance.attr_with_type_hint<float>("y");
|
||||
|
||||
m.def("attr_with_type_hint_float_x", [](py::handle obj) {
|
||||
obj.attr_with_type_hint<float>("x");
|
||||
});
|
||||
|
||||
m.attr_with_type_hint<py::typing::Final<int>>("CONST_INT") = 3;
|
||||
|
||||
m.attr("defined___cpp_inline_variables") = true;
|
||||
#else
|
||||
m.attr("defined___cpp_inline_variables") = false;
|
||||
|
@ -1153,6 +1153,18 @@ def test_class_attribute_types() -> None:
|
||||
assert instance1.y != instance2.y
|
||||
|
||||
|
||||
@pytest.mark.skipif(
|
||||
not m.defined___cpp_inline_variables,
|
||||
reason="C++17 feature __cpp_inline_variables not available.",
|
||||
)
|
||||
def test_redeclaration_attr_with_type_hint() -> None:
|
||||
obj = m.Instance()
|
||||
m.attr_with_type_hint_float_x(obj)
|
||||
help(obj)
|
||||
assert get_annotations_helper(obj)["x"] == "float"
|
||||
with pytest.raises(RuntimeError, match=r'^__annotations__\["x"\] was set already\.$'):
|
||||
m.attr_with_type_hint_float_x(obj)
|
||||
|
||||
@pytest.mark.skipif(
|
||||
not m.defined___cpp_inline_variables,
|
||||
reason="C++17 feature __cpp_inline_variables not available.",
|
||||
|
Loading…
Reference in New Issue
Block a user