"""Check that raise ... from .. uses a proper exception cause """ # pylint: disable=unreachable, import-error, multiple-imports import socket, unknown class ExceptionSubclass(Exception): """ subclass """ def test(): """ docstring """ raise IndexError from 1 # [bad-exception-cause] raise IndexError from None raise IndexError from ZeroDivisionError raise IndexError from object() # [bad-exception-cause] raise IndexError from ExceptionSubclass raise IndexError from socket.error raise IndexError() from None raise IndexError() from ZeroDivisionError raise IndexError() from ZeroDivisionError() raise IndexError() from object() # [bad-exception-cause] raise IndexError() from unknown def function(): """Function to be passed as exception""" try: pass except function as exc: # [catching-non-exception] raise Exception from exc # [bad-exception-cause, broad-exception-raised]