Skip to content

Commit 0102e67

Browse files
committed
Adding working (and not working) tests for issue
1 parent 2d440e0 commit 0102e67

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

include/pybind11/pybind11.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1362,7 +1362,7 @@ template <typename Type> class enum_ : public class_<Type> {
13621362

13631363
constexpr bool is_arithmetic = detail::any_of<std::is_same<arithmetic, Extra>...>::value;
13641364

1365-
auto entries = m_entries;
1365+
dict& entries = m_entries;
13661366
def("__repr__", [name, entries](Type value) -> pybind11::str {
13671367
for (const auto &kv : entries) {
13681368
if (pybind11::cast<Type>(kv.second) == value)

tests/test_enum.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,18 @@ def test_converstion_enum():
4646
assert m.test_conversion_enum(m.ConversionEnum.Convert1) == "ConversionEnum::Convert1"
4747
assert m.test_conversion_enum(m.ConversionEnum("Convert1")) == "ConversionEnum::Convert1"
4848
assert m.test_conversion_enum("Convert1") == "ConversionEnum::Convert1"
49-
assert m.test_conversion_enum(m.ConversionEnum.Convert1) == "ConversionEnum::Convert1"
49+
50+
51+
def test_conversion_enum_raises():
52+
with pytest.raises(ValueError) as excinfo:
53+
m.ConversionEnum("Convert0")
54+
assert str(excinfo.value) == "\"Convert0\" is not a valid value for enum type ConversionEnum"
55+
56+
57+
def test_conversion_enum_raises_implicit():
58+
with pytest.raises(ValueError) as excinfo:
59+
m.test_conversion_enum("Convert0")
60+
assert str(excinfo.value) == "\"Convert0\" is not a valid value for enum type ConversionEnum"
5061

5162

5263
def test_scoped_enum():

0 commit comments

Comments
 (0)