From e6409568c11f5ec1341e85770f2f01dded676d7a Mon Sep 17 00:00:00 2001
From: Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com>
Date: Fri, 24 May 2024 20:12:53 +0200
Subject: [PATCH] Reenable pylint broad exception (#2536)

---
 .pylintrc                                             |  2 +-
 .../tests/test_aiopg_integration.py                   | 11 +++++++----
 .../tests/mocks/lambda_function.py                    |  1 +
 .../tests/test_dbapi_integration.py                   |  3 +++
 .../tests/test_aio_client_interceptor_hooks.py        |  4 ++--
 .../tests/test_client_interceptor_hooks.py            |  4 ++--
 .../tests/test_psycopg_integration.py                 |  6 +++---
 .../tests/test_urllib_integration.py                  |  2 +-
 8 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/.pylintrc b/.pylintrc
index 114dadef75..9f6c80faa9 100644
--- a/.pylintrc
+++ b/.pylintrc
@@ -492,4 +492,4 @@ min-public-methods=2
 
 # Exceptions that will emit a warning when being caught. Defaults to
 # "Exception".
-overgeneral-exceptions=Exception
+overgeneral-exceptions=builtins.Exception
diff --git a/instrumentation/opentelemetry-instrumentation-aiopg/tests/test_aiopg_integration.py b/instrumentation/opentelemetry-instrumentation-aiopg/tests/test_aiopg_integration.py
index fb76bd0f38..c497ae4564 100644
--- a/instrumentation/opentelemetry-instrumentation-aiopg/tests/test_aiopg_integration.py
+++ b/instrumentation/opentelemetry-instrumentation-aiopg/tests/test_aiopg_integration.py
@@ -17,6 +17,7 @@
 from unittest.mock import MagicMock
 
 import aiopg
+import psycopg2
 
 import opentelemetry.instrumentation.aiopg
 from opentelemetry import trace as trace_api
@@ -384,7 +385,9 @@ def test_span_failed(self):
             span.attributes[SpanAttributes.DB_STATEMENT], "Test query"
         )
         self.assertIs(span.status.status_code, trace_api.StatusCode.ERROR)
-        self.assertEqual(span.status.description, "Exception: Test Exception")
+        self.assertEqual(
+            span.status.description, "ProgrammingError: Test Exception"
+        )
 
     def test_executemany(self):
         db_integration = AiopgIntegration(self.tracer, "testcomponent")
@@ -570,17 +573,17 @@ class MockCursor:
     # pylint: disable=unused-argument, no-self-use
     async def execute(self, query, params=None, throw_exception=False):
         if throw_exception:
-            raise Exception("Test Exception")
+            raise psycopg2.ProgrammingError("Test Exception")
 
     # pylint: disable=unused-argument, no-self-use
     async def executemany(self, query, params=None, throw_exception=False):
         if throw_exception:
-            raise Exception("Test Exception")
+            raise psycopg2.ProgrammingError("Test Exception")
 
     # pylint: disable=unused-argument, no-self-use
     async def callproc(self, query, params=None, throw_exception=False):
         if throw_exception:
-            raise Exception("Test Exception")
+            raise psycopg2.ProgrammingError("Test Exception")
 
     def close(self):
         pass
diff --git a/instrumentation/opentelemetry-instrumentation-aws-lambda/tests/mocks/lambda_function.py b/instrumentation/opentelemetry-instrumentation-aws-lambda/tests/mocks/lambda_function.py
index a878d0f06a..539c896a0b 100644
--- a/instrumentation/opentelemetry-instrumentation-aws-lambda/tests/mocks/lambda_function.py
+++ b/instrumentation/opentelemetry-instrumentation-aws-lambda/tests/mocks/lambda_function.py
@@ -22,4 +22,5 @@ def rest_api_handler(event, context):
 
 
 def handler_exc(event, context):
+    # pylint: disable=broad-exception-raised
     raise Exception("500 internal server error")
diff --git a/instrumentation/opentelemetry-instrumentation-dbapi/tests/test_dbapi_integration.py b/instrumentation/opentelemetry-instrumentation-dbapi/tests/test_dbapi_integration.py
index d0835e93e6..eb2d628a3a 100644
--- a/instrumentation/opentelemetry-instrumentation-dbapi/tests/test_dbapi_integration.py
+++ b/instrumentation/opentelemetry-instrumentation-dbapi/tests/test_dbapi_integration.py
@@ -419,11 +419,13 @@ def __init__(self) -> None:
     # pylint: disable=unused-argument, no-self-use
     def execute(self, query, params=None, throw_exception=False):
         if throw_exception:
+            # pylint: disable=broad-exception-raised
             raise Exception("Test Exception")
 
     # pylint: disable=unused-argument, no-self-use
     def executemany(self, query, params=None, throw_exception=False):
         if throw_exception:
+            # pylint: disable=broad-exception-raised
             raise Exception("Test Exception")
         self.query = query
         self.params = params
@@ -431,4 +433,5 @@ def executemany(self, query, params=None, throw_exception=False):
     # pylint: disable=unused-argument, no-self-use
     def callproc(self, query, params=None, throw_exception=False):
         if throw_exception:
+            # pylint: disable=broad-exception-raised
             raise Exception("Test Exception")
diff --git a/instrumentation/opentelemetry-instrumentation-grpc/tests/test_aio_client_interceptor_hooks.py b/instrumentation/opentelemetry-instrumentation-grpc/tests/test_aio_client_interceptor_hooks.py
index fe906b26c1..9086d8b0f7 100644
--- a/instrumentation/opentelemetry-instrumentation-grpc/tests/test_aio_client_interceptor_hooks.py
+++ b/instrumentation/opentelemetry-instrumentation-grpc/tests/test_aio_client_interceptor_hooks.py
@@ -47,11 +47,11 @@ def response_hook(span, response):
 
 
 def request_hook_with_exception(_span, _request):
-    raise Exception()
+    raise Exception()  # pylint: disable=broad-exception-raised
 
 
 def response_hook_with_exception(_span, _response):
-    raise Exception()
+    raise Exception()  # pylint: disable=broad-exception-raised
 
 
 @pytest.mark.asyncio
diff --git a/instrumentation/opentelemetry-instrumentation-grpc/tests/test_client_interceptor_hooks.py b/instrumentation/opentelemetry-instrumentation-grpc/tests/test_client_interceptor_hooks.py
index aeecffc71c..ac65c76c34 100644
--- a/instrumentation/opentelemetry-instrumentation-grpc/tests/test_client_interceptor_hooks.py
+++ b/instrumentation/opentelemetry-instrumentation-grpc/tests/test_client_interceptor_hooks.py
@@ -73,11 +73,11 @@ def response_hook(span, response):
 
 
 def request_hook_with_exception(_span, _request):
-    raise Exception()
+    raise Exception()  # pylint: disable=broad-exception-raised
 
 
 def response_hook_with_exception(_span, _response):
-    raise Exception()
+    raise Exception()  # pylint: disable=broad-exception-raised
 
 
 class TestHooks(TestBase):
diff --git a/instrumentation/opentelemetry-instrumentation-psycopg/tests/test_psycopg_integration.py b/instrumentation/opentelemetry-instrumentation-psycopg/tests/test_psycopg_integration.py
index 4fbcac6042..e2b3ed917a 100644
--- a/instrumentation/opentelemetry-instrumentation-psycopg/tests/test_psycopg_integration.py
+++ b/instrumentation/opentelemetry-instrumentation-psycopg/tests/test_psycopg_integration.py
@@ -53,17 +53,17 @@ def __init__(self, *args, **kwargs):
     # pylint: disable=unused-argument, no-self-use
     async def execute(self, query, params=None, throw_exception=False):
         if throw_exception:
-            raise Exception("Test Exception")
+            raise psycopg.Error("Test Exception")
 
     # pylint: disable=unused-argument, no-self-use
     async def executemany(self, query, params=None, throw_exception=False):
         if throw_exception:
-            raise Exception("Test Exception")
+            raise psycopg.Error("Test Exception")
 
     # pylint: disable=unused-argument, no-self-use
     async def callproc(self, query, params=None, throw_exception=False):
         if throw_exception:
-            raise Exception("Test Exception")
+            raise psycopg.Error("Test Exception")
 
     async def __aenter__(self, *args, **kwargs):
         return self
diff --git a/instrumentation/opentelemetry-instrumentation-urllib/tests/test_urllib_integration.py b/instrumentation/opentelemetry-instrumentation-urllib/tests/test_urllib_integration.py
index 36189e12c1..f73f0d1b97 100644
--- a/instrumentation/opentelemetry-instrumentation-urllib/tests/test_urllib_integration.py
+++ b/instrumentation/opentelemetry-instrumentation-urllib/tests/test_urllib_integration.py
@@ -99,7 +99,7 @@ def timeout_exception_callback(*_, **__):
 
     @staticmethod
     def base_exception_callback(*_, **__):
-        raise Exception("test")
+        raise Exception("test")  # pylint: disable=broad-exception-raised
 
     def assert_span(self, exporter=None, num_spans=1):
         if exporter is None: