summaryrefslogtreecommitdiff
path: root/tests/functional/i/invalid/invalid_exceptions_raised.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/functional/i/invalid/invalid_exceptions_raised.py')
-rw-r--r--tests/functional/i/invalid/invalid_exceptions_raised.py105
1 files changed, 105 insertions, 0 deletions
diff --git a/tests/functional/i/invalid/invalid_exceptions_raised.py b/tests/functional/i/invalid/invalid_exceptions_raised.py
new file mode 100644
index 000000000..34f740de4
--- /dev/null
+++ b/tests/functional/i/invalid/invalid_exceptions_raised.py
@@ -0,0 +1,105 @@
+# pylint:disable=too-few-public-methods,no-init,import-error,missing-docstring, not-callable, useless-object-inheritance,import-outside-toplevel
+"""test pb with exceptions and old/new style classes"""
+
+
+class ValidException(Exception):
+ """Valid Exception."""
+
+class OldStyleClass:
+ """Not an exception."""
+
+class NewStyleClass(object):
+ """Not an exception."""
+
+
+def good_case():
+ """raise"""
+ raise ValidException('hop')
+
+def good_case1():
+ """zlib.error is defined in C module."""
+ import zlib
+ raise zlib.error(4)
+
+def good_case2():
+ """decimal.DivisionByZero is defined in C on Python 3."""
+ import decimal
+ raise decimal.DivisionByZero(4)
+
+def good_case3():
+ """io.BlockingIOError is defined in C."""
+ import io
+ raise io.BlockingIOError
+
+def bad_case0():
+ """raise"""
+ # +2:<3.0:[nonstandard-exception]
+ # +1:>=3.0:[raising-non-exception]
+ raise OldStyleClass('hop')
+
+def bad_case1():
+ """raise"""
+ raise NewStyleClass() # [raising-non-exception]
+
+def bad_case2():
+ """raise"""
+ # +2:<3.0:[nonstandard-exception]
+ # +1:>=3.0:[raising-non-exception]
+ raise OldStyleClass('hop')
+
+def bad_case3():
+ """raise"""
+ raise NewStyleClass # [raising-non-exception]
+
+def bad_case4():
+ """raise"""
+ raise NotImplemented('hop') # [notimplemented-raised]
+
+def bad_case5():
+ """raise"""
+ raise 1 # [raising-bad-type]
+
+def bad_case6():
+ """raise"""
+ raise None # [raising-bad-type]
+
+def bad_case7():
+ """raise list"""
+ raise list # [raising-non-exception]
+
+def bad_case8():
+ """raise tuple"""
+ raise tuple # [raising-non-exception]
+
+def bad_case9():
+ """raise dict"""
+ raise dict # [raising-non-exception]
+
+def unknown_bases():
+ """Don't emit when we don't know the bases."""
+ from lala import bala # pylint: disable=import-outside-toplevel
+ class MyException(bala):
+ pass
+ raise MyException
+
+
+def exception_instance_regression():
+ """Exceptions have a particular class type"""
+ try:
+ int("9a")
+ except ValueError as exc:
+ raise exc
+
+
+def reusing_same_name_picks_the_latest_raised_value():
+ class Error(Exception):
+ """some error"""
+
+ exceptions = tuple([ValueError, TypeError])
+ try:
+ raise ValueError
+ except exceptions as exc: # pylint: disable=catching-non-exception
+ # https://github.com/PyCQA/pylint/issues/1756
+ exc = Error(exc)
+ if exc:
+ raise exc