aboutsummaryrefslogtreecommitdiffstats
path: root/3rdparty/pybind11/tests/test_enum.py
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/pybind11/tests/test_enum.py')
-rw-r--r--3rdparty/pybind11/tests/test_enum.py43
1 files changed, 32 insertions, 11 deletions
diff --git a/3rdparty/pybind11/tests/test_enum.py b/3rdparty/pybind11/tests/test_enum.py
index 7fe9b618..f6b24fc2 100644
--- a/3rdparty/pybind11/tests/test_enum.py
+++ b/3rdparty/pybind11/tests/test_enum.py
@@ -1,3 +1,4 @@
+# -*- coding: utf-8 -*-
import pytest
from pybind11_tests import enums as m
@@ -6,6 +7,9 @@ def test_unscoped_enum():
assert str(m.UnscopedEnum.EOne) == "UnscopedEnum.EOne"
assert str(m.UnscopedEnum.ETwo) == "UnscopedEnum.ETwo"
assert str(m.EOne) == "UnscopedEnum.EOne"
+ assert repr(m.UnscopedEnum.EOne) == "<UnscopedEnum.EOne: 1>"
+ assert repr(m.UnscopedEnum.ETwo) == "<UnscopedEnum.ETwo: 2>"
+ assert repr(m.EOne) == "<UnscopedEnum.EOne: 1>"
# name property
assert m.UnscopedEnum.EOne.name == "EOne"
@@ -20,18 +24,24 @@ def test_unscoped_enum():
assert m.UnscopedEnum.EOne.name == "EOne"
# __members__ property
- assert m.UnscopedEnum.__members__ == \
- {"EOne": m.UnscopedEnum.EOne, "ETwo": m.UnscopedEnum.ETwo, "EThree": m.UnscopedEnum.EThree}
+ assert m.UnscopedEnum.__members__ == {
+ "EOne": m.UnscopedEnum.EOne,
+ "ETwo": m.UnscopedEnum.ETwo,
+ "EThree": m.UnscopedEnum.EThree,
+ }
# __members__ readonly
with pytest.raises(AttributeError):
m.UnscopedEnum.__members__ = {}
# __members__ returns a copy
foo = m.UnscopedEnum.__members__
foo["bar"] = "baz"
- assert m.UnscopedEnum.__members__ == \
- {"EOne": m.UnscopedEnum.EOne, "ETwo": m.UnscopedEnum.ETwo, "EThree": m.UnscopedEnum.EThree}
+ assert m.UnscopedEnum.__members__ == {
+ "EOne": m.UnscopedEnum.EOne,
+ "ETwo": m.UnscopedEnum.ETwo,
+ "EThree": m.UnscopedEnum.EThree,
+ }
- for docstring_line in '''An unscoped enumeration
+ for docstring_line in """An unscoped enumeration
Members:
@@ -39,7 +49,9 @@ Members:
ETwo : Docstring for ETwo
- EThree : Docstring for EThree'''.split('\n'):
+ EThree : Docstring for EThree""".split(
+ "\n"
+ ):
assert docstring_line in m.UnscopedEnum.__doc__
# Unscoped enums will accept ==/!= int comparisons
@@ -49,10 +61,10 @@ Members:
assert y != 3
assert 3 != y
# Compare with None
- assert (y != None) # noqa: E711
+ assert y != None # noqa: E711
assert not (y == None) # noqa: E711
# Compare with an object
- assert (y != object())
+ assert y != object()
assert not (y == object())
# Compare with string
assert y != "2"
@@ -115,10 +127,10 @@ def test_scoped_enum():
assert z != 3
assert 3 != z
# Compare with None
- assert (z != None) # noqa: E711
+ assert z != None # noqa: E711
assert not (z == None) # noqa: E711
# Compare with an object
- assert (z != object())
+ assert z != object()
assert not (z == object())
# Scoped enums will *NOT* accept >, <, >= and <= int comparisons (Will throw exceptions)
with pytest.raises(TypeError):
@@ -142,6 +154,8 @@ def test_scoped_enum():
def test_implicit_conversion():
assert str(m.ClassWithUnscopedEnum.EMode.EFirstMode) == "EMode.EFirstMode"
assert str(m.ClassWithUnscopedEnum.EFirstMode) == "EMode.EFirstMode"
+ assert repr(m.ClassWithUnscopedEnum.EMode.EFirstMode) == "<EMode.EFirstMode: 1>"
+ assert repr(m.ClassWithUnscopedEnum.EFirstMode) == "<EMode.EFirstMode: 1>"
f = m.ClassWithUnscopedEnum.test_function
first = m.ClassWithUnscopedEnum.EFirstMode
@@ -166,7 +180,7 @@ def test_implicit_conversion():
x[f(first)] = 3
x[f(second)] = 4
# Hashing test
- assert str(x) == "{EMode.EFirstMode: 3, EMode.ESecondMode: 4}"
+ assert repr(x) == "{<EMode.EFirstMode: 1>: 3, <EMode.ESecondMode: 2>: 4}"
def test_binary_operators():
@@ -204,3 +218,10 @@ def test_duplicate_enum_name():
with pytest.raises(ValueError) as excinfo:
m.register_bad_enum()
assert str(excinfo.value) == 'SimpleEnum: element "ONE" already exists!'
+
+
+def test_docstring_signatures():
+ for enum_type in [m.ScopedEnum, m.UnscopedEnum]:
+ for attr in enum_type.__dict__.values():
+ # Issue #2623/PR #2637: Add argument names to enum_ methods
+ assert "arg0" not in (attr.__doc__ or "")