|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- """Test that inheriting from something which is not
- a class emits a warning. """
-
- # pylint: disable=no-init, import-error, invalid-name, using-constant-test
- # pylint: disable=missing-docstring, too-few-public-methods, no-absolute-import
-
- from missing import Missing
-
- if 1:
- Ambiguous = None
- else:
- Ambiguous = int
-
- class Empty(object):
- """ Empty class. """
-
- def return_class():
- """ Return a class. """
- return Good3
-
- class Bad(1): # [inherit-non-class]
- """ Can't inherit from instance. """
-
- class Bad1(lambda abc: 42): # [inherit-non-class]
- """ Can't inherit from lambda. """
-
- class Bad2(object()): # [inherit-non-class]
- """ Can't inherit from an instance of object. """
-
- class Bad3(return_class): # [inherit-non-class]
- """ Can't inherit from function. """
-
- class Bad4(Empty()): # [inherit-non-class]
- """ Can't inherit from instance. """
-
- class Good(object):
- pass
-
- class Good1(int):
- pass
-
- class Good2(type):
- pass
-
- class Good3(type(int)):
- pass
-
- class Good4(return_class()):
- pass
-
- class Good5(Good4, int, object):
- pass
-
- class Good6(Ambiguous):
- """ Inherits from something ambiguous.
-
- This could emit a warning when we will have
- flow detection.
- """
-
- class Unknown(Missing):
- pass
-
- class Unknown1(Good5 if True else Bad1):
- pass
-
-
- class NotInheritableBool(bool): # [inherit-non-class]
- pass
-
-
- class NotInheritableRange(range): # [inherit-non-class]
- pass
-
-
- class NotInheritableSlice(slice): # [inherit-non-class]
- pass
-
-
- class NotInheritableMemoryView(memoryview): # [inherit-non-class]
- pass
|