summaryrefslogtreecommitdiff
path: root/tests/functional/i/invalid/invalid_exceptions_caught.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/functional/i/invalid/invalid_exceptions_caught.py')
-rw-r--r--tests/functional/i/invalid/invalid_exceptions_caught.py135
1 files changed, 135 insertions, 0 deletions
diff --git a/tests/functional/i/invalid/invalid_exceptions_caught.py b/tests/functional/i/invalid/invalid_exceptions_caught.py
new file mode 100644
index 000000000..252643446
--- /dev/null
+++ b/tests/functional/i/invalid/invalid_exceptions_caught.py
@@ -0,0 +1,135 @@
+# pylint: disable=missing-docstring, too-few-public-methods, useless-object-inheritance
+# pylint: disable=too-many-ancestors, no-absolute-import, import-error, multiple-imports,wrong-import-position
+from __future__ import print_function
+
+import socket, binascii, abc, six
+
+class MyException(object):
+ """Custom 'exception'."""
+
+class MySecondException(object):
+ """Custom 'exception'."""
+
+class MyGoodException(Exception):
+ """Custom exception."""
+
+class MySecondGoodException(MyGoodException):
+ """Custom exception."""
+
+class SkipException(socket.error):
+ """Not an exception for Python 2, but one in 3."""
+
+class SecondSkipException(SkipException):
+ """Also a good exception."""
+
+try:
+ 1 + 1
+except MyException: # [catching-non-exception]
+ print("caught")
+
+try:
+ 1 + 2
+# +1:[catching-non-exception,catching-non-exception]
+except (MyException, MySecondException):
+ print("caught")
+
+try:
+ 1 + 3
+except MyGoodException:
+ print("caught")
+
+try:
+ 1 + 3
+except (MyGoodException, MySecondGoodException):
+ print("caught")
+
+try:
+ 1 + 3
+except (SkipException, SecondSkipException):
+ print("caught")
+
+try:
+ 1 + 42
+# +1:[catching-non-exception,catching-non-exception]
+except (None, list()):
+ print("caught")
+
+try:
+ 1 + 24
+except None: # [catching-non-exception]
+ print("caught")
+
+EXCEPTION = None
+EXCEPTION = ZeroDivisionError
+try:
+ 1 + 46
+except EXCEPTION:
+ print("caught")
+
+try:
+ 1 + 42
+# +1:[catching-non-exception,catching-non-exception,catching-non-exception]
+except (list([4, 5, 6]), None, ZeroDivisionError, 4):
+ print("caught")
+
+EXCEPTION_TUPLE = (ZeroDivisionError, OSError)
+NON_EXCEPTION_TUPLE = (ZeroDivisionError, OSError, 4)
+
+try:
+ 1 + 42
+except EXCEPTION_TUPLE:
+ print("caught")
+
+try:
+ 1 + 42
+except NON_EXCEPTION_TUPLE: # [catching-non-exception]
+ print("caught")
+
+from missing_import import UnknownError
+UNKNOWN_COMPONENTS = (ZeroDivisionError, UnknownError)
+
+try:
+ 1 + 42
+except UNKNOWN_COMPONENTS:
+ print("caught")
+
+try:
+ 1 + 42
+except binascii.Error:
+ print('builtin and detected')
+
+try:
+ 1 + 45
+except object: # [catching-non-exception]
+ print('caught')
+
+try:
+ 1 + 42
+except range: # [catching-non-exception]
+ print('caught')
+
+
+class HasErrorInMRO(six.with_metaclass(abc.ABCMeta, Exception)):
+ pass
+
+
+class Second(HasErrorInMRO):
+ pass
+
+
+try:
+ raise Second
+except Second:
+ pass
+
+
+class SomeBase(UnknownError):
+ pass
+
+
+EXCEPTIONS = (SomeBase, ValueError)
+
+try:
+ raise ValueError
+except EXCEPTIONS:
+ pass