You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: test-data/unit/check-enum.test
+62-9Lines changed: 62 additions & 9 deletions
Original file line number
Diff line number
Diff line change
@@ -1905,6 +1905,9 @@ class Mixin:
1905
1905
1906
1906
# Correct Enums:
1907
1907
1908
+
class Correct0(enum.Enum):
1909
+
pass
1910
+
1908
1911
class Correct1(Mixin, First, enum.Enum):
1909
1912
pass
1910
1913
@@ -1917,8 +1920,29 @@ class Correct3(Mixin, enum.Enum):
1917
1920
class RegularClass(Mixin, First, Second):
1918
1921
pass
1919
1922
1923
+
# Correct inheritance:
1924
+
1925
+
class _InheritingDataAndMixin(Correct1):
1926
+
pass
1927
+
1928
+
class _CorrectWithData(First, Correct0):
1929
+
pass
1930
+
1931
+
class _CorrectWithDataAndMixin(Mixin, First, Correct0):
1932
+
pass
1933
+
1934
+
class _CorrectWithMixin(Mixin, Correct2):
1935
+
pass
1936
+
1920
1937
# Wrong Enums:
1921
1938
1939
+
class TwoDataTypesViaInheritance(Second, Correct2): # E: Only a single data type mixin is allowed for Enum subtypes, found extra "__main__.Correct2"
1940
+
pass
1941
+
1942
+
class TwoDataTypesViaInheritanceAndMixin(Second, Correct2, Mixin): # E: No base classes are allowed after "__main__.Correct2" \
1943
+
# E: Only a single data type mixin is allowed for Enum subtypes, found extra "__main__.Correct2"
1944
+
pass
1945
+
1922
1946
class MixinAfterEnum1(enum.Enum, Mixin): # E: No base classes are allowed after "enum.Enum"
1923
1947
pass
1924
1948
@@ -1928,27 +1952,56 @@ class MixinAfterEnum2(First, enum.Enum, Mixin): # E: No base classes are allowe
1928
1952
class TwoDataTypes(First, Second, enum.Enum): # E: Only a single data type mixin is allowed for Enum subtypes, found extra "__main__.Second"
1929
1953
pass
1930
1954
1931
-
class TwoDataTypesAndIntEnumMixin(First, Second, enum.IntEnum, Mixin): # E: Only a single data type mixin is allowed for Enum subtypes, found extra "__main__.Second" \
1932
-
# E: No base classes are allowed after "enum.IntEnum"
1955
+
class TwoDataTypesAndIntEnumMixin(First, Second, enum.IntEnum, Mixin): # E: No base classes are allowed after "enum.IntEnum" \
1956
+
# E: Only a single data type mixin is allowed for Enum subtypes, found extra "__main__.Second"
1933
1957
pass
1934
1958
1935
1959
class ThreeDataTypes(First, Second, Third, enum.Enum): # E: Only a single data type mixin is allowed for Enum subtypes, found extra "__main__.Second" \
1936
-
# E: # E: Only a single data type mixin is allowed for Enum subtypes, found extra "__main__.Third"
1960
+
# E: Only a single data type mixin is allowed for Enum subtypes, found extra "__main__.Third"
1937
1961
pass
1938
1962
1939
-
class ThreeDataTypesAndMixin(First, Second, Third, enum.Enum, Mixin): # E: Only a single data type mixin is allowed for Enum subtypes, found extra "__main__.Second" \
1940
-
# E: # E: Only a single data type mixin is allowed for Enum subtypes, found extra "__main__.Third" \
1941
-
# E: No base classes are allowed after "enum.Enum"
1963
+
class ThreeDataTypesAndMixin(First, Second, Third, enum.Enum, Mixin): # E: No base classes are allowed after "enum.Enum" \
1964
+
# E: Only a single data type mixin is allowed for Enum subtypes, found extra "__main__.Second" \
1965
+
# E: Only a single data type mixin is allowed for Enum subtypes, found extra "__main__.Third"
1942
1966
pass
1943
1967
1944
-
class FromEnumAndOther1(Correct2, Second, enum.Enum): # E: Only a single data type mixin is allowed for Enum subtypes, found extra "__main__.Second"
1968
+
class FromEnumAndOther1(Correct2, Second, enum.Enum): # E: No base classes are allowed after "__main__.Correct2" \
1969
+
# E: Only a single data type mixin is allowed for Enum subtypes, found extra "__main__.Second"
1945
1970
pass
1946
1971
1947
-
class FromEnumAndOther2(Correct2, Second): # E: Only a single data type mixin is allowed for Enum subtypes, found extra "__main__.Second"
1972
+
class FromEnumAndOther2(Correct2, Second): # E: No base classes are allowed after "__main__.Correct2" \
1973
+
# E: Only a single data type mixin is allowed for Enum subtypes, found extra "__main__.Second"
1948
1974
pass
1949
1975
[builtins fixtures/tuple.pyi]
1950
1976
1951
-
[case testEnumtValueUnionSimplification]
1977
+
[case testRegression12258]
1978
+
from enum import Enum
1979
+
1980
+
class MyEnum(Enum): ...
1981
+
1982
+
class BytesEnum(bytes, MyEnum): ... # Should be ok
1983
+
[builtins fixtures/tuple.pyi]
1984
+
1985
+
[case testEnumWithNewHierarchy]
1986
+
import enum
1987
+
1988
+
class A:
1989
+
def __new__(cls, val): ...
1990
+
class B(A):
1991
+
def __new__(cls, val): ...
1992
+
class C:
1993
+
def __new__(cls, val): ...
1994
+
1995
+
class E1(A, enum.Enum): ...
1996
+
class E2(B, enum.Enum): ...
1997
+
1998
+
# Errors:
1999
+
2000
+
class W1(C, E1): ... # E: Only a single data type mixin is allowed for Enum subtypes, found extra "__main__.E1"
2001
+
class W2(C, E2): ... # E: Only a single data type mixin is allowed for Enum subtypes, found extra "__main__.E2"
0 commit comments