mirror of
https://github.com/YosysHQ/nextpnr.git
synced 2026-05-04 23:25:13 +00:00
Update pybind11 to version 2.6.1
This commit is contained in:
43
3rdparty/pybind11/tests/test_enum.py
vendored
43
3rdparty/pybind11/tests/test_enum.py
vendored
@@ -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 "")
|
||||
|
||||
Reference in New Issue
Block a user