You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by el...@apache.org on 2022/12/01 13:39:46 UTC

[airflow] branch main updated: Replace `unittests` in google provider tests by pure `pytest` (Part 1) (#27986)

This is an automated email from the ASF dual-hosted git repository.

eladkal pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new 6c62985055 Replace `unittests` in google provider tests by pure `pytest` (Part 1) (#27986)
6c62985055 is described below

commit 6c62985055e7f9a715c3ae47f6ff584ad8378e2a
Author: Andrey Anshin <An...@taragol.is>
AuthorDate: Thu Dec 1 17:39:37 2022 +0400

    Replace `unittests` in google provider tests by pure `pytest` (Part 1) (#27986)
---
 .../common/auth_backend/test_google_openid.py      |  5 +--
 .../google/common/hooks/test_base_google.py        | 52 ++++++++++------------
 .../google/common/hooks/test_discovery_api.py      |  9 ++--
 .../common/utils/test_id_token_credentials.py      |  5 +--
 .../google/firebase/hooks/test_firestore.py        | 13 +++---
 .../google/firebase/operators/test_firestore.py    |  3 +-
 .../providers/google/leveldb/hooks/test_leveldb.py |  3 +-
 .../google/leveldb/operators/test_leveldb.py       |  3 +-
 .../marketing_platform/hooks/test_analytics.py     |  5 +--
 .../hooks/test_campaign_manager.py                 |  6 +--
 .../marketing_platform/hooks/test_display_video.py |  6 +--
 .../marketing_platform/hooks/test_search_ads.py    |  6 +--
 .../marketing_platform/operators/test_analytics.py |  9 ++--
 .../operators/test_campaign_manager.py             | 27 ++++++-----
 .../operators/test_display_video.py                | 31 +++++++------
 .../operators/test_search_ads.py                   | 19 ++++----
 .../sensors/test_campaign_manager.py               |  4 +-
 .../sensors/test_display_video.py                  |  6 +--
 .../marketing_platform/sensors/test_search_ads.py  |  4 +-
 .../providers/google/suite/hooks/test_calendar.py  |  7 ++-
 tests/providers/google/suite/hooks/test_drive.py   | 15 +++----
 tests/providers/google/suite/hooks/test_sheets.py  |  5 +--
 tests/providers/google/suite/sensors/test_drive.py |  6 +--
 .../google/suite/transfers/test_gcs_to_gdrive.py   |  3 +-
 .../google/suite/transfers/test_sql_to_sheets.py   |  5 +--
 tests/providers/google/test_go_module.py           |  3 +-
 26 files changed, 125 insertions(+), 135 deletions(-)

diff --git a/tests/providers/google/common/auth_backend/test_google_openid.py b/tests/providers/google/common/auth_backend/test_google_openid.py
index 89774ab3e6..8aa77f6187 100644
--- a/tests/providers/google/common/auth_backend/test_google_openid.py
+++ b/tests/providers/google/common/auth_backend/test_google_openid.py
@@ -21,7 +21,6 @@ from unittest import mock
 import pytest
 from flask_login import current_user
 from google.auth.exceptions import GoogleAuthError
-from parameterized import parameterized
 
 from airflow.www.app import create_app
 from tests.test_utils.config import conf_vars
@@ -79,9 +78,9 @@ class TestGoogleOpenID:
         assert 200 == response.status_code
         assert "Default pool" in str(response.json)
 
-    @parameterized.expand([("bearer",), ("JWT_TOKEN",), ("bearer ",)])
+    @pytest.mark.parametrize("auth_header", ["bearer", "JWT_TOKEN", "bearer "])
     @mock.patch("google.oauth2.id_token.verify_token")
-    def test_malformed_headers(self, auth_header, mock_verify_token):
+    def test_malformed_headers(self, mock_verify_token, auth_header):
         mock_verify_token.return_value = {
             "iss": "accounts.google.com",
             "email_verified": True,
diff --git a/tests/providers/google/common/hooks/test_base_google.py b/tests/providers/google/common/hooks/test_base_google.py
index 9462344ac7..c21fcbac31 100644
--- a/tests/providers/google/common/hooks/test_base_google.py
+++ b/tests/providers/google/common/hooks/test_base_google.py
@@ -20,7 +20,6 @@ from __future__ import annotations
 import json
 import os
 import re
-import unittest
 from io import StringIO
 from unittest import mock
 
@@ -30,7 +29,6 @@ import tenacity
 from google.auth.environment_vars import CREDENTIALS
 from google.auth.exceptions import GoogleAuthError
 from google.cloud.exceptions import Forbidden
-from parameterized import parameterized
 
 from airflow import version
 from airflow.exceptions import AirflowException
@@ -47,6 +45,7 @@ except GoogleAuthError:
 
 MODULE_NAME = "airflow.providers.google.common.hooks.base_google"
 PROJECT_ID = "PROJECT_ID"
+ENV_VALUE = "/tmp/a"
 
 
 class NoForbiddenAfterCount:
@@ -73,7 +72,7 @@ def _retryable_test_with_temporary_quota_retry(thing):
     return thing()
 
 
-class QuotaRetryTestCase(unittest.TestCase):  # ptlint: disable=invalid-name
+class TestQuotaRetry:
     def test_do_nothing_on_non_error(self):
         result = _retryable_test_with_temporary_quota_retry(lambda: 42)
         assert result, 42
@@ -109,7 +108,7 @@ class FallbackToDefaultProjectIdFixtureClass:
         return self.fixture_project_id
 
 
-class TestFallbackToDefaultProjectId(unittest.TestCase):
+class TestFallbackToDefaultProjectId:
     def test_no_arguments(self):
         gcp_hook = FallbackToDefaultProjectIdFixtureClass(321)
 
@@ -141,11 +140,8 @@ class TestFallbackToDefaultProjectId(unittest.TestCase):
         assert gcp_hook.mock.call_count == 0
 
 
-ENV_VALUE = "/tmp/a"
-
-
-class TestProvideGcpCredentialFile(unittest.TestCase):
-    def setUp(self):
+class TestProvideGcpCredentialFile:
+    def setup_method(self):
         with mock.patch(
             MODULE_NAME + ".GoogleBaseHook.__init__",
             new=mock_base_gcp_hook_default_project_id,
@@ -250,8 +246,8 @@ class TestProvideGcpCredentialFile(unittest.TestCase):
         assert CREDENTIALS not in os.environ
 
 
-class TestProvideGcpCredentialFileAsContext(unittest.TestCase):
-    def setUp(self):
+class TestProvideGcpCredentialFileAsContext:
+    def setup_method(self):
         with mock.patch(
             "airflow.providers.google.common.hooks.base_google.GoogleBaseHook.__init__",
             new=mock_base_gcp_hook_default_project_id,
@@ -322,8 +318,8 @@ class TestProvideGcpCredentialFileAsContext(unittest.TestCase):
         assert CREDENTIALS not in os.environ
 
 
-class TestGoogleBaseHook(unittest.TestCase):
-    def setUp(self):
+class TestGoogleBaseHook:
+    def setup_method(self):
         self.instance = hook.GoogleBaseHook()
 
     @mock.patch(MODULE_NAME + ".get_credentials_and_project_id", return_value=("CREDENTIALS", "PROJECT_ID"))
@@ -482,8 +478,8 @@ class TestGoogleBaseHook(unittest.TestCase):
         with pytest.raises(AirflowException, match=re.escape("Invalid key JSON.")):
             self.instance.get_credentials_and_project_id()
 
-    @unittest.skipIf(
-        not default_creds_available, "Default Google Cloud credentials not available to run tests"
+    @pytest.mark.skipif(
+        not default_creds_available, reason="Default Google Cloud credentials not available to run tests"
     )
     def test_default_creds_with_scopes(self):
         self.instance.extras = {
@@ -509,8 +505,8 @@ class TestGoogleBaseHook(unittest.TestCase):
         assert "https://www.googleapis.com/auth/bigquery" in scopes
         assert "https://www.googleapis.com/auth/devstorage.read_only" in scopes
 
-    @unittest.skipIf(
-        not default_creds_available, "Default Google Cloud credentials not available to run tests"
+    @pytest.mark.skipif(
+        not default_creds_available, reason="Default Google Cloud credentials not available to run tests"
     )
     def test_default_creds_no_scopes(self):
         self.instance.extras = {"project": default_project}
@@ -625,26 +621,26 @@ class TestGoogleBaseHook(unittest.TestCase):
         http_authorized = self.instance._authorize().http
         assert http_authorized.timeout is not None
 
-    @parameterized.expand(
+    @pytest.mark.parametrize(
+        "impersonation_chain, target_principal, delegates",
         [
-            ("string", "ACCOUNT_1", "ACCOUNT_1", None),
-            ("single_element_list", ["ACCOUNT_1"], "ACCOUNT_1", []),
-            (
-                "multiple_elements_list",
+            pytest.param("ACCOUNT_1", "ACCOUNT_1", None, id="string"),
+            pytest.param(["ACCOUNT_1"], "ACCOUNT_1", [], id="single_element_list"),
+            pytest.param(
                 ["ACCOUNT_1", "ACCOUNT_2", "ACCOUNT_3"],
                 "ACCOUNT_3",
                 ["ACCOUNT_1", "ACCOUNT_2"],
+                id="multiple_elements_list",
             ),
-        ]
+        ],
     )
     @mock.patch(MODULE_NAME + ".get_credentials_and_project_id")
     def test_get_credentials_and_project_id_with_impersonation_chain(
         self,
-        _,
+        mock_get_creds_and_proj_id,
         impersonation_chain,
         target_principal,
         delegates,
-        mock_get_creds_and_proj_id,
     ):
         mock_credentials = mock.MagicMock()
         mock_get_creds_and_proj_id.return_value = (mock_credentials, PROJECT_ID)
@@ -663,8 +659,8 @@ class TestGoogleBaseHook(unittest.TestCase):
         assert (mock_credentials, PROJECT_ID) == result
 
 
-class TestProvideAuthorizedGcloud(unittest.TestCase):
-    def setUp(self):
+class TestProvideAuthorizedGcloud:
+    def setup_method(self):
         with mock.patch(
             MODULE_NAME + ".GoogleBaseHook.__init__",
             new=mock_base_gcp_hook_default_project_id,
@@ -774,7 +770,7 @@ class TestProvideAuthorizedGcloud(unittest.TestCase):
         )
 
 
-class TestNumRetry(unittest.TestCase):
+class TestNumRetry:
     def test_should_return_int_when_set_int_via_connection(self):
         instance = hook.GoogleBaseHook(gcp_conn_id="google_cloud_default")
         instance.extras = {
diff --git a/tests/providers/google/common/hooks/test_discovery_api.py b/tests/providers/google/common/hooks/test_discovery_api.py
index 17a20d0bee..148d8d60ec 100644
--- a/tests/providers/google/common/hooks/test_discovery_api.py
+++ b/tests/providers/google/common/hooks/test_discovery_api.py
@@ -17,18 +17,17 @@
 # under the License.
 from __future__ import annotations
 
-import unittest
 from unittest.mock import call, patch
 
 from airflow import models
-from airflow.configuration import load_test_config
+from airflow.configuration import conf
 from airflow.providers.google.common.hooks.discovery_api import GoogleDiscoveryApiHook
 from airflow.utils import db
 
 
-class TestGoogleDiscoveryApiHook(unittest.TestCase):
-    def setUp(self):
-        load_test_config()
+class TestGoogleDiscoveryApiHook:
+    def setup_method(self):
+        conf.load_test_config()
 
         db.merge_conn(
             models.Connection(
diff --git a/tests/providers/google/common/utils/test_id_token_credentials.py b/tests/providers/google/common/utils/test_id_token_credentials.py
index cf0d4c1f71..bd5fe8c5ee 100644
--- a/tests/providers/google/common/utils/test_id_token_credentials.py
+++ b/tests/providers/google/common/utils/test_id_token_credentials.py
@@ -19,7 +19,6 @@ from __future__ import annotations
 import json
 import os
 import re
-import unittest
 from unittest import mock
 
 import pytest
@@ -32,7 +31,7 @@ from airflow.providers.google.common.utils.id_token_credentials import (
 )
 
 
-class TestIDTokenCredentialsAdapter(unittest.TestCase):
+class TestIDTokenCredentialsAdapter:
     def test_should_use_id_token_from_parent_credentials(self):
         parent_credentials = mock.MagicMock()
         type(parent_credentials).id_token = mock.PropertyMock(side_effect=["ID_TOKEN1", "ID_TOKEN2"])
@@ -46,7 +45,7 @@ class TestIDTokenCredentialsAdapter(unittest.TestCase):
         assert creds.token == "ID_TOKEN2"
 
 
-class TestGetDefaultIdTokenCredentials(unittest.TestCase):
+class TestGetDefaultIdTokenCredentials:
     @mock.patch.dict("os.environ")
     @mock.patch(
         "google.auth._cloud_sdk.get_application_default_credentials_path",
diff --git a/tests/providers/google/firebase/hooks/test_firestore.py b/tests/providers/google/firebase/hooks/test_firestore.py
index 8fa3251c5e..fee7595426 100644
--- a/tests/providers/google/firebase/hooks/test_firestore.py
+++ b/tests/providers/google/firebase/hooks/test_firestore.py
@@ -19,7 +19,6 @@ Tests for Google Cloud Firestore
 """
 from __future__ import annotations
 
-import unittest
 from unittest import mock
 from unittest.mock import PropertyMock
 
@@ -47,10 +46,10 @@ TEST_ERROR_OPERATION = {"done": True, "response": "response", "error": "error"}
 TEST_PROJECT_ID = "firestore--project-id"
 
 
-class TestCloudFirestoreHookWithPassedProjectId(unittest.TestCase):
+class TestCloudFirestoreHookWithPassedProjectId:
     hook: CloudFirestoreHook | None = None
 
-    def setUp(self):
+    def setup_method(self):
         with mock.patch(
             "airflow.providers.google.common.hooks.base_google.GoogleBaseHook.__init__",
             new=mock_base_gcp_hook_default_project_id,
@@ -126,10 +125,10 @@ class TestCloudFirestoreHookWithPassedProjectId(unittest.TestCase):
             self.hook.export_documents(body=EXPORT_DOCUMENT_BODY, project_id=TEST_PROJECT_ID)
 
 
-class TestCloudFirestoreHookWithDefaultProjectIdFromConnection(unittest.TestCase):
+class TestCloudFirestoreHookWithDefaultProjectIdFromConnection:
     hook: CloudFirestoreHook | None = None
 
-    def setUp(self):
+    def setup_method(self):
         with mock.patch(
             "airflow.providers.google.common.hooks.base_google.GoogleBaseHook.__init__",
             new=mock_base_gcp_hook_default_project_id,
@@ -220,10 +219,10 @@ class TestCloudFirestoreHookWithDefaultProjectIdFromConnection(unittest.TestCase
             self.hook.export_documents(body=EXPORT_DOCUMENT_BODY)
 
 
-class TestCloudFirestoreHookWithoutProjectId(unittest.TestCase):
+class TestCloudFirestoreHookWithoutProjectId:
     hook: CloudFirestoreHook | None = None
 
-    def setUp(self):
+    def setup_method(self):
         with mock.patch(
             "airflow.providers.google.common.hooks.base_google.GoogleBaseHook.__init__",
             new=mock_base_gcp_hook_no_default_project_id,
diff --git a/tests/providers/google/firebase/operators/test_firestore.py b/tests/providers/google/firebase/operators/test_firestore.py
index 141cc4a720..340058ef6e 100644
--- a/tests/providers/google/firebase/operators/test_firestore.py
+++ b/tests/providers/google/firebase/operators/test_firestore.py
@@ -16,7 +16,6 @@
 # under the License.
 from __future__ import annotations
 
-import unittest
 from unittest import mock
 
 from airflow.providers.google.firebase.operators.firestore import CloudFirestoreExportDatabaseOperator
@@ -30,7 +29,7 @@ EXPORT_DOCUMENT_BODY = {
 }
 
 
-class TestCloudFirestoreExportDatabaseOperator(unittest.TestCase):
+class TestCloudFirestoreExportDatabaseOperator:
     @mock.patch("airflow.providers.google.firebase.operators.firestore.CloudFirestoreHook")
     def test_execute(self, mock_firestore_hook):
         op = CloudFirestoreExportDatabaseOperator(
diff --git a/tests/providers/google/leveldb/hooks/test_leveldb.py b/tests/providers/google/leveldb/hooks/test_leveldb.py
index dd15b66fb5..ee6dd463be 100644
--- a/tests/providers/google/leveldb/hooks/test_leveldb.py
+++ b/tests/providers/google/leveldb/hooks/test_leveldb.py
@@ -17,7 +17,6 @@
 # under the License.
 from __future__ import annotations
 
-import unittest
 from unittest import mock
 
 import pytest
@@ -25,7 +24,7 @@ import pytest
 from airflow.providers.google.leveldb.hooks.leveldb import LevelDBHook, LevelDBHookException
 
 
-class TestLevelDBHook(unittest.TestCase):
+class TestLevelDBHook:
     @mock.patch.dict("os.environ", AIRFLOW_CONN_LEVELDB_DEFAULT="test")
     def test_get_conn_db_is_not_none(self):
         """Test get_conn method of hook"""
diff --git a/tests/providers/google/leveldb/operators/test_leveldb.py b/tests/providers/google/leveldb/operators/test_leveldb.py
index b2993f7ffd..26e65dfa33 100644
--- a/tests/providers/google/leveldb/operators/test_leveldb.py
+++ b/tests/providers/google/leveldb/operators/test_leveldb.py
@@ -33,14 +33,13 @@
 # under the License.
 from __future__ import annotations
 
-import unittest
 from unittest import mock
 
 from airflow.providers.google.leveldb.hooks.leveldb import LevelDBHook
 from airflow.providers.google.leveldb.operators.leveldb import LevelDBOperator
 
 
-class TestLevelDBOperator(unittest.TestCase):
+class TestLevelDBOperator:
     @mock.patch.dict("os.environ", AIRFLOW_CONN_LEVELDB_DEFAULT="test")
     @mock.patch.object(LevelDBHook, "run")
     def test_execute(self, mock_run):
diff --git a/tests/providers/google/marketing_platform/hooks/test_analytics.py b/tests/providers/google/marketing_platform/hooks/test_analytics.py
index 54490203e6..0f34f9dffd 100644
--- a/tests/providers/google/marketing_platform/hooks/test_analytics.py
+++ b/tests/providers/google/marketing_platform/hooks/test_analytics.py
@@ -17,7 +17,6 @@
 # under the License.
 from __future__ import annotations
 
-import unittest
 from unittest import mock
 
 from airflow.providers.google.marketing_platform.hooks.analytics import GoogleAnalyticsHook
@@ -33,8 +32,8 @@ DELEGATE_TO = "TEST_DELEGATE_TO"
 IMPERSONATION_CHAIN = ["ACCOUNT_1", "ACCOUNT_2", "ACCOUNT_3"]
 
 
-class TestGoogleAnalyticsHook(unittest.TestCase):
-    def setUp(self):
+class TestGoogleAnalyticsHook:
+    def setup_method(self):
         with mock.patch(
             "airflow.providers.google.common.hooks.base_google.GoogleBaseHook.__init__",
             new=mock_base_gcp_hook_default_project_id,
diff --git a/tests/providers/google/marketing_platform/hooks/test_campaign_manager.py b/tests/providers/google/marketing_platform/hooks/test_campaign_manager.py
index 4d8911ebcd..c7fcc2a048 100644
--- a/tests/providers/google/marketing_platform/hooks/test_campaign_manager.py
+++ b/tests/providers/google/marketing_platform/hooks/test_campaign_manager.py
@@ -17,7 +17,7 @@
 # under the License.
 from __future__ import annotations
 
-from unittest import TestCase, mock
+from unittest import mock
 
 from airflow.providers.google.marketing_platform.hooks.campaign_manager import GoogleCampaignManagerHook
 from tests.providers.google.cloud.utils.base_gcp_mock import mock_base_gcp_hook_default_project_id
@@ -32,8 +32,8 @@ ENCRYPTION_ENTITY_TYPE = "encryption_entity_type"
 ENCRYPTION_ENTITY_ID = 1234567
 
 
-class TestGoogleCampaignManagerHook(TestCase):
-    def setUp(self):
+class TestGoogleCampaignManagerHook:
+    def setup_method(self):
         with mock.patch(
             "airflow.providers.google.common.hooks.base_google.GoogleBaseHook.__init__",
             new=mock_base_gcp_hook_default_project_id,
diff --git a/tests/providers/google/marketing_platform/hooks/test_display_video.py b/tests/providers/google/marketing_platform/hooks/test_display_video.py
index 094350c25b..f179dd436f 100644
--- a/tests/providers/google/marketing_platform/hooks/test_display_video.py
+++ b/tests/providers/google/marketing_platform/hooks/test_display_video.py
@@ -17,7 +17,7 @@
 # under the License.
 from __future__ import annotations
 
-from unittest import TestCase, mock
+from unittest import mock
 
 from airflow.providers.google.marketing_platform.hooks.display_video import GoogleDisplayVideo360Hook
 from tests.providers.google.cloud.utils.base_gcp_mock import mock_base_gcp_hook_default_project_id
@@ -26,8 +26,8 @@ API_VERSION = "v1"
 GCP_CONN_ID = "google_cloud_default"
 
 
-class TestGoogleDisplayVideo360Hook(TestCase):
-    def setUp(self):
+class TestGoogleDisplayVideo360Hook:
+    def setup_method(self):
         with mock.patch(
             "airflow.providers.google.common.hooks.base_google.GoogleBaseHook.__init__",
             new=mock_base_gcp_hook_default_project_id,
diff --git a/tests/providers/google/marketing_platform/hooks/test_search_ads.py b/tests/providers/google/marketing_platform/hooks/test_search_ads.py
index fcfddccb72..1e0205a956 100644
--- a/tests/providers/google/marketing_platform/hooks/test_search_ads.py
+++ b/tests/providers/google/marketing_platform/hooks/test_search_ads.py
@@ -17,7 +17,7 @@
 # under the License.
 from __future__ import annotations
 
-from unittest import TestCase, mock
+from unittest import mock
 
 from airflow.providers.google.marketing_platform.hooks.search_ads import GoogleSearchAdsHook
 from tests.providers.google.cloud.utils.base_gcp_mock import mock_base_gcp_hook_default_project_id
@@ -26,8 +26,8 @@ API_VERSION = "v2"
 GCP_CONN_ID = "google_cloud_default"
 
 
-class TestSearchAdsHook(TestCase):
-    def setUp(self):
+class TestSearchAdsHook:
+    def setup_method(self):
         with mock.patch(
             "airflow.providers.google.marketing_platform.hooks.search_ads.GoogleBaseHook.__init__",
             new=mock_base_gcp_hook_default_project_id,
diff --git a/tests/providers/google/marketing_platform/operators/test_analytics.py b/tests/providers/google/marketing_platform/operators/test_analytics.py
index 7081edadc4..455b8e605a 100644
--- a/tests/providers/google/marketing_platform/operators/test_analytics.py
+++ b/tests/providers/google/marketing_platform/operators/test_analytics.py
@@ -16,7 +16,6 @@
 # under the License.
 from __future__ import annotations
 
-import unittest
 from tempfile import NamedTemporaryFile
 from unittest import mock
 
@@ -40,7 +39,7 @@ BUCKET = "gs://bucket"
 BUCKET_OBJECT_NAME = "file.csv"
 
 
-class TestGoogleAnalyticsListAccountsOperator(unittest.TestCase):
+class TestGoogleAnalyticsListAccountsOperator:
     @mock.patch("airflow.providers.google.marketing_platform.operators.analytics.GoogleAnalyticsHook")
     def test_execute(self, hook_mock):
         op = GoogleAnalyticsListAccountsOperator(
@@ -54,7 +53,7 @@ class TestGoogleAnalyticsListAccountsOperator(unittest.TestCase):
         hook_mock.return_value.list_accounts.assert_called_once()
 
 
-class TestGoogleAnalyticsRetrieveAdsLinksListOperator(unittest.TestCase):
+class TestGoogleAnalyticsRetrieveAdsLinksListOperator:
     @mock.patch("airflow.providers.google.marketing_platform.operators.analytics.GoogleAnalyticsHook")
     def test_execute(self, hook_mock):
         op = GoogleAnalyticsRetrieveAdsLinksListOperator(
@@ -78,7 +77,7 @@ class TestGoogleAnalyticsRetrieveAdsLinksListOperator(unittest.TestCase):
         )
 
 
-class TestGoogleAnalyticsGetAdsLinkOperator(unittest.TestCase):
+class TestGoogleAnalyticsGetAdsLinkOperator:
     @mock.patch("airflow.providers.google.marketing_platform.operators.analytics.GoogleAnalyticsHook")
     def test_execute(self, hook_mock):
         op = GoogleAnalyticsGetAdsLinkOperator(
@@ -105,7 +104,7 @@ class TestGoogleAnalyticsGetAdsLinkOperator(unittest.TestCase):
         )
 
 
-class TestGoogleAnalyticsDataImportUploadOperator(unittest.TestCase):
+class TestGoogleAnalyticsDataImportUploadOperator:
     @mock.patch("airflow.providers.google.marketing_platform.operators.analytics.GoogleAnalyticsHook")
     @mock.patch("airflow.providers.google.marketing_platform.operators.analytics.GCSHook")
     @mock.patch("airflow.providers.google.marketing_platform.operators.analytics.NamedTemporaryFile")
diff --git a/tests/providers/google/marketing_platform/operators/test_campaign_manager.py b/tests/providers/google/marketing_platform/operators/test_campaign_manager.py
index 7b9eb1009b..bd52f05b17 100644
--- a/tests/providers/google/marketing_platform/operators/test_campaign_manager.py
+++ b/tests/providers/google/marketing_platform/operators/test_campaign_manager.py
@@ -19,9 +19,9 @@ from __future__ import annotations
 
 import json
 from tempfile import NamedTemporaryFile
-from unittest import TestCase, mock
+from unittest import mock
 
-from parameterized import parameterized
+import pytest
 
 from airflow.models import DAG, TaskInstance as TI
 from airflow.providers.google.marketing_platform.operators.campaign_manager import (
@@ -62,7 +62,7 @@ REPORT_NAME = "test_report.csv"
 TEMP_FILE_NAME = "test"
 
 
-class TestGoogleCampaignManagerDeleteReportOperator(TestCase):
+class TestGoogleCampaignManagerDeleteReportOperator:
     @mock.patch(
         "airflow.providers.google.marketing_platform.operators.campaign_manager.GoogleCampaignManagerHook"
     )
@@ -86,12 +86,12 @@ class TestGoogleCampaignManagerDeleteReportOperator(TestCase):
         )
 
 
-class TestGoogleCampaignManagerDownloadReportOperator(TestCase):
-    def setUp(self):
+class TestGoogleCampaignManagerDownloadReportOperator:
+    def setup_method(self):
         with create_session() as session:
             session.query(TI).delete()
 
-    def tearDown(self):
+    def teardown_method(self):
         with create_session() as session:
             session.query(TI).delete()
 
@@ -153,7 +153,10 @@ class TestGoogleCampaignManagerDownloadReportOperator(TestCase):
         )
         xcom_mock.assert_called_once_with(None, key="report_name", value=REPORT_NAME + ".gz")
 
-    @parameterized.expand([BUCKET_NAME, f"gs://{BUCKET_NAME}", "XComArg", "{{ ti.xcom_pull(task_ids='f') }}"])
+    @pytest.mark.parametrize(
+        "test_bucket_name",
+        [BUCKET_NAME, f"gs://{BUCKET_NAME}", "XComArg", "{{ ti.xcom_pull(task_ids='f') }}"],
+    )
     @mock.patch("airflow.providers.google.marketing_platform.operators.campaign_manager.http")
     @mock.patch("airflow.providers.google.marketing_platform.operators.campaign_manager.tempfile")
     @mock.patch(
@@ -162,11 +165,11 @@ class TestGoogleCampaignManagerDownloadReportOperator(TestCase):
     @mock.patch("airflow.providers.google.marketing_platform.operators.campaign_manager.GCSHook")
     def test_set_bucket_name(
         self,
-        test_bucket_name,
         gcs_hook_mock,
         hook_mock,
         tempfile_mock,
         http_mock,
+        test_bucket_name,
     ):
         http_mock.MediaIoBaseDownload.return_value.next_chunk.return_value = (
             None,
@@ -211,7 +214,7 @@ class TestGoogleCampaignManagerDownloadReportOperator(TestCase):
         )
 
 
-class TestGoogleCampaignManagerInsertReportOperator(TestCase):
+class TestGoogleCampaignManagerInsertReportOperator:
     @mock.patch(
         "airflow.providers.google.marketing_platform.operators.campaign_manager.GoogleCampaignManagerHook"
     )
@@ -258,7 +261,7 @@ class TestGoogleCampaignManagerInsertReportOperator(TestCase):
         assert op.report == report
 
 
-class TestGoogleCampaignManagerRunReportOperator(TestCase):
+class TestGoogleCampaignManagerRunReportOperator:
     @mock.patch(
         "airflow.providers.google.marketing_platform.operators.campaign_manager.GoogleCampaignManagerHook"
     )
@@ -292,7 +295,7 @@ class TestGoogleCampaignManagerRunReportOperator(TestCase):
         xcom_mock.assert_called_once_with(None, key="file_id", value=FILE_ID)
 
 
-class TestGoogleCampaignManagerBatchInsertConversionsOperator(TestCase):
+class TestGoogleCampaignManagerBatchInsertConversionsOperator:
     @mock.patch(
         "airflow.providers.google.marketing_platform.operators.campaign_manager.GoogleCampaignManagerHook"
     )
@@ -317,7 +320,7 @@ class TestGoogleCampaignManagerBatchInsertConversionsOperator(TestCase):
         )
 
 
-class TestGoogleCampaignManagerBatchUpdateConversionOperator(TestCase):
+class TestGoogleCampaignManagerBatchUpdateConversionOperator:
     @mock.patch(
         "airflow.providers.google.marketing_platform.operators.campaign_manager.GoogleCampaignManagerHook"
     )
diff --git a/tests/providers/google/marketing_platform/operators/test_display_video.py b/tests/providers/google/marketing_platform/operators/test_display_video.py
index e35573286a..bf9552485c 100644
--- a/tests/providers/google/marketing_platform/operators/test_display_video.py
+++ b/tests/providers/google/marketing_platform/operators/test_display_video.py
@@ -19,9 +19,9 @@ from __future__ import annotations
 
 import json
 from tempfile import NamedTemporaryFile
-from unittest import TestCase, mock
+from unittest import mock
 
-from parameterized import parameterized
+import pytest
 
 from airflow.models import DAG, TaskInstance as TI
 from airflow.providers.google.marketing_platform.operators.display_video import (
@@ -50,7 +50,7 @@ QUERY_ID = FILENAME = "test"
 OBJECT_NAME = "object_name"
 
 
-class TestGoogleDisplayVideo360CreateReportOperator(TestCase):
+class TestGoogleDisplayVideo360CreateReportOperator:
     @mock.patch(
         "airflow.providers.google.marketing_platform.operators."
         "display_video.GoogleDisplayVideo360CreateReportOperator.xcom_push"
@@ -88,7 +88,7 @@ class TestGoogleDisplayVideo360CreateReportOperator(TestCase):
         assert op.body == body
 
 
-class TestGoogleDisplayVideo360DeleteReportOperator(TestCase):
+class TestGoogleDisplayVideo360DeleteReportOperator:
     @mock.patch(
         "airflow.providers.google.marketing_platform.operators.display_video.GoogleDisplayVideo360Hook"
     )
@@ -106,12 +106,12 @@ class TestGoogleDisplayVideo360DeleteReportOperator(TestCase):
         hook_mock.return_value.delete_query.assert_called_once_with(query_id=QUERY_ID)
 
 
-class TestGoogleDisplayVideo360DownloadReportOperator(TestCase):
-    def setUp(self):
+class TestGoogleDisplayVideo360DownloadReportOperator:
+    def setup_method(self):
         with create_session() as session:
             session.query(TI).delete()
 
-    def tearDown(self):
+    def teardown_method(self):
         with create_session() as session:
             session.query(TI).delete()
 
@@ -172,7 +172,10 @@ class TestGoogleDisplayVideo360DownloadReportOperator(TestCase):
         )
         mock_xcom.assert_called_once_with(None, key="report_name", value=REPORT_NAME + ".gz")
 
-    @parameterized.expand([BUCKET_NAME, f"gs://{BUCKET_NAME}", "XComArg", "{{ ti.xcom_pull(task_ids='f') }}"])
+    @pytest.mark.parametrize(
+        "test_bucket_name",
+        [BUCKET_NAME, f"gs://{BUCKET_NAME}", "XComArg", "{{ ti.xcom_pull(task_ids='f') }}"],
+    )
     @mock.patch("airflow.providers.google.marketing_platform.operators.display_video.shutil")
     @mock.patch("airflow.providers.google.marketing_platform.operators.display_video.urllib.request")
     @mock.patch("airflow.providers.google.marketing_platform.operators.display_video.tempfile")
@@ -182,12 +185,12 @@ class TestGoogleDisplayVideo360DownloadReportOperator(TestCase):
     )
     def test_set_bucket_name(
         self,
-        test_bucket_name,
         mock_hook,
         mock_gcs_hook,
         mock_temp,
         mock_request,
         mock_shutil,
+        test_bucket_name,
     ):
         mock_temp.NamedTemporaryFile.return_value.__enter__.return_value.name = FILENAME
         mock_hook.return_value.get_query.return_value = {
@@ -232,7 +235,7 @@ class TestGoogleDisplayVideo360DownloadReportOperator(TestCase):
         )
 
 
-class TestGoogleDisplayVideo360RunReportOperator(TestCase):
+class TestGoogleDisplayVideo360RunReportOperator:
     @mock.patch(
         "airflow.providers.google.marketing_platform.operators.display_video.GoogleDisplayVideo360Hook"
     )
@@ -254,7 +257,7 @@ class TestGoogleDisplayVideo360RunReportOperator(TestCase):
         hook_mock.return_value.run_query.assert_called_once_with(query_id=REPORT_ID, params=parameters)
 
 
-class TestGoogleDisplayVideo360DownloadLineItemsOperator(TestCase):
+class TestGoogleDisplayVideo360DownloadLineItemsOperator:
     @mock.patch(
         "airflow.providers.google.marketing_platform.operators.display_video.GoogleDisplayVideo360Hook"
     )
@@ -306,7 +309,7 @@ class TestGoogleDisplayVideo360DownloadLineItemsOperator(TestCase):
         hook_mock.return_value.download_line_items.assert_called_once_with(request_body=request_body)
 
 
-class TestGoogleDisplayVideo360UploadLineItemsOperator(TestCase):
+class TestGoogleDisplayVideo360UploadLineItemsOperator:
     @mock.patch("airflow.providers.google.marketing_platform.operators.display_video.tempfile")
     @mock.patch(
         "airflow.providers.google.marketing_platform.operators.display_video.GoogleDisplayVideo360Hook"
@@ -347,7 +350,7 @@ class TestGoogleDisplayVideo360UploadLineItemsOperator(TestCase):
         hook_mock.return_value.upload_line_items.assert_called_once_with(line_items=line_items)
 
 
-class TestGoogleDisplayVideo360SDFtoGCSOperator(TestCase):
+class TestGoogleDisplayVideo360SDFtoGCSOperator:
     @mock.patch(
         "airflow.providers.google.marketing_platform.operators.display_video.GoogleDisplayVideo360Hook"
     )
@@ -416,7 +419,7 @@ class TestGoogleDisplayVideo360SDFtoGCSOperator(TestCase):
         )
 
 
-class TestGoogleDisplayVideo360CreateSDFDownloadTaskOperator(TestCase):
+class TestGoogleDisplayVideo360CreateSDFDownloadTaskOperator:
     @mock.patch(
         "airflow.providers.google.marketing_platform.operators."
         "display_video.GoogleDisplayVideo360CreateSDFDownloadTaskOperator.xcom_push"
diff --git a/tests/providers/google/marketing_platform/operators/test_search_ads.py b/tests/providers/google/marketing_platform/operators/test_search_ads.py
index 535e8ef9a1..0698d9fd3d 100644
--- a/tests/providers/google/marketing_platform/operators/test_search_ads.py
+++ b/tests/providers/google/marketing_platform/operators/test_search_ads.py
@@ -19,9 +19,9 @@ from __future__ import annotations
 
 import json
 from tempfile import NamedTemporaryFile
-from unittest import TestCase, mock
+from unittest import mock
 
-from parameterized import parameterized
+import pytest
 
 from airflow.models import DAG, TaskInstance as TI
 from airflow.providers.google.marketing_platform.operators.search_ads import (
@@ -42,7 +42,7 @@ REPORT_NAME = "test_report.csv"
 FILE_NAME = "test"
 
 
-class TestGoogleSearchAdsInsertReportOperator(TestCase):
+class TestGoogleSearchAdsInsertReportOperator:
     @mock.patch("airflow.providers.google.marketing_platform.operators.search_ads.GoogleSearchAdsHook")
     @mock.patch("airflow.providers.google.marketing_platform.operators.search_ads.BaseOperator")
     @mock.patch(
@@ -77,12 +77,12 @@ class TestGoogleSearchAdsInsertReportOperator(TestCase):
         assert op.report == report
 
 
-class TestGoogleSearchAdsDownloadReportOperator(TestCase):
-    def setUp(self):
+class TestGoogleSearchAdsDownloadReportOperator:
+    def setup_method(self):
         with create_session() as session:
             session.query(TI).delete()
 
-    def tearDown(self):
+    def teardown_method(self):
         with create_session() as session:
             session.query(TI).delete()
 
@@ -125,11 +125,14 @@ class TestGoogleSearchAdsDownloadReportOperator(TestCase):
         )
         xcom_mock.assert_called_once_with(None, key="file_name", value=FILE_NAME + ".csv.gz")
 
-    @parameterized.expand([BUCKET_NAME, f"gs://{BUCKET_NAME}", "XComArg", "{{ ti.xcom_pull(task_ids='f') }}"])
+    @pytest.mark.parametrize(
+        "test_bucket_name",
+        [BUCKET_NAME, f"gs://{BUCKET_NAME}", "XComArg", "{{ ti.xcom_pull(task_ids='f') }}"],
+    )
     @mock.patch("airflow.providers.google.marketing_platform.operators.search_ads.NamedTemporaryFile")
     @mock.patch("airflow.providers.google.marketing_platform.operators.search_ads.GCSHook")
     @mock.patch("airflow.providers.google.marketing_platform.operators.search_ads.GoogleSearchAdsHook")
-    def test_set_bucket_name(self, test_bucket_name, hook_mock, gcs_hook_mock, tempfile_mock):
+    def test_set_bucket_name(self, hook_mock, gcs_hook_mock, tempfile_mock, test_bucket_name):
         temp_file_name = "TEMP"
         data = b"data"
 
diff --git a/tests/providers/google/marketing_platform/sensors/test_campaign_manager.py b/tests/providers/google/marketing_platform/sensors/test_campaign_manager.py
index 88b21da93c..09fcb12748 100644
--- a/tests/providers/google/marketing_platform/sensors/test_campaign_manager.py
+++ b/tests/providers/google/marketing_platform/sensors/test_campaign_manager.py
@@ -17,7 +17,7 @@
 # under the License.
 from __future__ import annotations
 
-from unittest import TestCase, mock
+from unittest import mock
 
 from airflow.providers.google.marketing_platform.sensors.campaign_manager import (
     GoogleCampaignManagerReportSensor,
@@ -27,7 +27,7 @@ API_VERSION = "api_version"
 GCP_CONN_ID = "google_cloud_default"
 
 
-class TestGoogleCampaignManagerDeleteReportOperator(TestCase):
+class TestGoogleCampaignManagerDeleteReportOperator:
     @mock.patch(
         "airflow.providers.google.marketing_platform.sensors.campaign_manager.GoogleCampaignManagerHook"
     )
diff --git a/tests/providers/google/marketing_platform/sensors/test_display_video.py b/tests/providers/google/marketing_platform/sensors/test_display_video.py
index 7b764b5cde..fb7a7c9091 100644
--- a/tests/providers/google/marketing_platform/sensors/test_display_video.py
+++ b/tests/providers/google/marketing_platform/sensors/test_display_video.py
@@ -17,7 +17,7 @@
 # under the License.
 from __future__ import annotations
 
-from unittest import TestCase, mock
+from unittest import mock
 
 from airflow.providers.google.marketing_platform.sensors.display_video import (
     GoogleDisplayVideo360GetSDFDownloadOperationSensor,
@@ -28,7 +28,7 @@ API_VERSION = "api_version"
 GCP_CONN_ID = "google_cloud_default"
 
 
-class TestGoogleDisplayVideo360ReportSensor(TestCase):
+class TestGoogleDisplayVideo360ReportSensor:
     @mock.patch("airflow.providers.google.marketing_platform.sensors.display_video.GoogleDisplayVideo360Hook")
     @mock.patch("airflow.providers.google.marketing_platform.sensors.display_video.BaseSensorOperator")
     def test_poke(self, mock_base_op, hook_mock):
@@ -46,7 +46,7 @@ class TestGoogleDisplayVideo360ReportSensor(TestCase):
         hook_mock.return_value.get_query.assert_called_once_with(query_id=report_id)
 
 
-class TestGoogleDisplayVideo360Sensor(TestCase):
+class TestGoogleDisplayVideo360Sensor:
     @mock.patch("airflow.providers.google.marketing_platform.sensors.display_video.GoogleDisplayVideo360Hook")
     @mock.patch("airflow.providers.google.marketing_platform.sensors.display_video.BaseSensorOperator")
     def test_poke(self, mock_base_op, hook_mock):
diff --git a/tests/providers/google/marketing_platform/sensors/test_search_ads.py b/tests/providers/google/marketing_platform/sensors/test_search_ads.py
index 1860300c4e..9c5312177e 100644
--- a/tests/providers/google/marketing_platform/sensors/test_search_ads.py
+++ b/tests/providers/google/marketing_platform/sensors/test_search_ads.py
@@ -17,7 +17,7 @@
 # under the License.
 from __future__ import annotations
 
-from unittest import TestCase, mock
+from unittest import mock
 
 from airflow.providers.google.marketing_platform.sensors.search_ads import GoogleSearchAdsReportSensor
 
@@ -25,7 +25,7 @@ API_VERSION = "api_version"
 GCP_CONN_ID = "google_cloud_default"
 
 
-class TestSearchAdsReportSensor(TestCase):
+class TestSearchAdsReportSensor:
     @mock.patch("airflow.providers.google.marketing_platform.sensors.search_ads.GoogleSearchAdsHook")
     @mock.patch("airflow.providers.google.marketing_platform.sensors.search_ads.BaseSensorOperator")
     def test_poke(self, mock_base_op, hook_mock):
diff --git a/tests/providers/google/suite/hooks/test_calendar.py b/tests/providers/google/suite/hooks/test_calendar.py
index f472b3da3f..0c67488ef2 100644
--- a/tests/providers/google/suite/hooks/test_calendar.py
+++ b/tests/providers/google/suite/hooks/test_calendar.py
@@ -21,7 +21,6 @@ from __future__ import annotations
 Unit Tests for the Google Calendar Hook
 """
 
-import unittest
 from unittest import mock
 
 from airflow.providers.google.suite.hooks.calendar import GoogleCalendarHook
@@ -46,8 +45,8 @@ NUM_RETRIES = 5
 API_RESPONSE = {"test": "response"}
 
 
-class TestGoogleCalendarHook(unittest.TestCase):
-    def setUp(self):
+class TestGoogleCalendarHook:
+    def setup_method(self):
         with mock.patch(
             "airflow.providers.google.common.hooks.base_google.GoogleBaseHook.__init__",
             new=mock_base_gcp_hook_default_project_id,
@@ -60,7 +59,7 @@ class TestGoogleCalendarHook(unittest.TestCase):
         execute_method = get_method.return_value.execute
         execute_method.return_value = {"kind": "calendar#events", "nextPageToken": None, "items": [EVENT]}
         result = self.hook.get_events(calendar_id=CALENDAR_ID)
-        self.assertEqual(result, [EVENT])
+        assert result == [EVENT]
         execute_method.assert_called_once_with(num_retries=NUM_RETRIES)
         get_method.assert_called_once_with(
             calendarId=CALENDAR_ID,
diff --git a/tests/providers/google/suite/hooks/test_drive.py b/tests/providers/google/suite/hooks/test_drive.py
index 52aa7c52e8..4dfddaa8de 100644
--- a/tests/providers/google/suite/hooks/test_drive.py
+++ b/tests/providers/google/suite/hooks/test_drive.py
@@ -17,22 +17,21 @@
 # under the License.
 from __future__ import annotations
 
-import unittest
 from unittest import mock
 
 from airflow.providers.google.suite.hooks.drive import GoogleDriveHook
 from tests.providers.google.cloud.utils.base_gcp_mock import GCP_CONNECTION_WITH_PROJECT_ID
 
 
-class TestGoogleDriveHook(unittest.TestCase):
-    def setUp(self):
+class TestGoogleDriveHook:
+    def setup_method(self):
         self.patcher_get_connection = mock.patch(
             "airflow.hooks.base.BaseHook.get_connection", return_value=GCP_CONNECTION_WITH_PROJECT_ID
         )
         self.patcher_get_connection.start()
         self.gdrive_hook = GoogleDriveHook(gcp_conn_id="test")
 
-    def tearDown(self) -> None:
+    def teardown_method(self) -> None:
         self.patcher_get_connection.stop()
 
     @mock.patch(
@@ -171,7 +170,7 @@ class TestGoogleDriveHook(unittest.TestCase):
         mock_method.assert_called_once_with(
             folder_id=folder_id, file_name=file_name, drive_id=drive_id, include_trashed=True
         )
-        self.assertEqual(True, result_value)
+        assert result_value
 
     @mock.patch("airflow.providers.google.suite.hooks.drive.GoogleDriveHook.get_file_id")
     @mock.patch("airflow.providers.google.suite.hooks.drive.GoogleDriveHook.get_conn")
@@ -218,7 +217,7 @@ class TestGoogleDriveHook(unittest.TestCase):
         ]
 
         result_value = self.gdrive_hook.get_file_id(folder_id, file_name, drive_id)
-        self.assertEqual({"id": "ID_1", "mime_type": "text/plain"}, result_value)
+        assert result_value == {"id": "ID_1", "mime_type": "text/plain"}
 
     @mock.patch("airflow.providers.google.suite.hooks.drive.GoogleDriveHook.get_conn")
     def test_get_file_id_when_multiple_files_exists(self, mock_get_conn):
@@ -231,7 +230,7 @@ class TestGoogleDriveHook(unittest.TestCase):
         ]
 
         result_value = self.gdrive_hook.get_file_id(folder_id, file_name, drive_id)
-        self.assertEqual({"id": "ID_1", "mime_type": "text/plain"}, result_value)
+        assert result_value == {"id": "ID_1", "mime_type": "text/plain"}
 
     @mock.patch("airflow.providers.google.suite.hooks.drive.GoogleDriveHook.get_conn")
     def test_get_file_id_when_no_file_exists(self, mock_get_conn):
@@ -242,7 +241,7 @@ class TestGoogleDriveHook(unittest.TestCase):
         mock_get_conn.return_value.files.return_value.list.return_value.execute.side_effect = [{"files": []}]
 
         result_value = self.gdrive_hook.get_file_id(folder_id, file_name, drive_id)
-        self.assertEqual({}, result_value)
+        assert result_value == {}
 
     @mock.patch("airflow.providers.google.suite.hooks.drive.MediaFileUpload")
     @mock.patch("airflow.providers.google.suite.hooks.drive.GoogleDriveHook.get_conn")
diff --git a/tests/providers/google/suite/hooks/test_sheets.py b/tests/providers/google/suite/hooks/test_sheets.py
index 9426774dfe..86355f0786 100644
--- a/tests/providers/google/suite/hooks/test_sheets.py
+++ b/tests/providers/google/suite/hooks/test_sheets.py
@@ -20,7 +20,6 @@ Unit Tests for the GSheets Hook
 """
 from __future__ import annotations
 
-import unittest
 from unittest import mock
 
 import pytest
@@ -45,8 +44,8 @@ NUM_RETRIES = 5
 API_RESPONSE = {"test": "response"}
 
 
-class TestGSheetsHook(unittest.TestCase):
-    def setUp(self):
+class TestGSheetsHook:
+    def setup_method(self):
         with mock.patch(
             "airflow.providers.google.common.hooks.base_google.GoogleBaseHook.__init__",
             new=mock_base_gcp_hook_default_project_id,
diff --git a/tests/providers/google/suite/sensors/test_drive.py b/tests/providers/google/suite/sensors/test_drive.py
index 73693d1157..c5c3fdc26a 100644
--- a/tests/providers/google/suite/sensors/test_drive.py
+++ b/tests/providers/google/suite/sensors/test_drive.py
@@ -18,7 +18,7 @@
 from __future__ import annotations
 
 import os
-from unittest import TestCase, mock
+from unittest import mock
 
 from airflow.providers.google.suite.sensors.drive import GoogleDriveFileExistenceSensor
 
@@ -30,7 +30,7 @@ TEST_DELEGATE_TO = "TEST_DELEGATE_TO"
 TEST_IMPERSONATION_CHAIN = ["ACCOUNT_1", "ACCOUNT_2", "ACCOUNT_3"]
 
 
-class TestGoogleDriveFileSensor(TestCase):
+class TestGoogleDriveFileSensor:
     @mock.patch("airflow.providers.google.suite.sensors.drive.GoogleDriveHook")
     def test_should_pass_argument_to_hook(self, mock_hook):
         task = GoogleDriveFileExistenceSensor(
@@ -46,8 +46,8 @@ class TestGoogleDriveFileSensor(TestCase):
         mock_hook.return_value.exists.return_value = True
 
         result = task.poke(mock.MagicMock())
+        assert result
 
-        self.assertEqual(True, result)
         mock_hook.assert_called_once_with(
             delegate_to=TEST_DELEGATE_TO,
             gcp_conn_id=TEST_GCP_CONN_ID,
diff --git a/tests/providers/google/suite/transfers/test_gcs_to_gdrive.py b/tests/providers/google/suite/transfers/test_gcs_to_gdrive.py
index a6e4d3ea32..9721543cc7 100644
--- a/tests/providers/google/suite/transfers/test_gcs_to_gdrive.py
+++ b/tests/providers/google/suite/transfers/test_gcs_to_gdrive.py
@@ -17,7 +17,6 @@
 # under the License.
 from __future__ import annotations
 
-import unittest
 from unittest import mock
 
 import pytest
@@ -29,7 +28,7 @@ MODULE = "airflow.providers.google.suite.transfers.gcs_to_gdrive"
 IMPERSONATION_CHAIN = ["ACCOUNT_1", "ACCOUNT_2", "ACCOUNT_3"]
 
 
-class TestGcsToGDriveOperator(unittest.TestCase):
+class TestGcsToGDriveOperator:
     @mock.patch(MODULE + ".GCSHook")
     @mock.patch(MODULE + ".GoogleDriveHook")
     @mock.patch(MODULE + ".tempfile.NamedTemporaryFile")
diff --git a/tests/providers/google/suite/transfers/test_sql_to_sheets.py b/tests/providers/google/suite/transfers/test_sql_to_sheets.py
index c5f2166895..19536bcd1b 100644
--- a/tests/providers/google/suite/transfers/test_sql_to_sheets.py
+++ b/tests/providers/google/suite/transfers/test_sql_to_sheets.py
@@ -16,18 +16,17 @@
 # under the License.
 from __future__ import annotations
 
-import unittest
 from unittest.mock import Mock, patch
 
 from airflow.providers.google.suite.transfers.sql_to_sheets import SQLToGoogleSheetsOperator
 
 
-class TestSQLToGoogleSheets(unittest.TestCase):
+class TestSQLToGoogleSheets:
     """
     Test class for SQLToGoogleSheetsOperator
     """
 
-    def setUp(self):
+    def setup_method(self):
         """
         setup
         """
diff --git a/tests/providers/google/test_go_module.py b/tests/providers/google/test_go_module.py
index 833f97c3b3..3a939bb610 100644
--- a/tests/providers/google/test_go_module.py
+++ b/tests/providers/google/test_go_module.py
@@ -17,13 +17,12 @@
 # under the License.
 from __future__ import annotations
 
-import unittest
 from unittest import mock
 
 from airflow.providers.google.go_module_utils import init_module, install_dependencies
 
 
-class TestGoModule(unittest.TestCase):
+class TestGoModule:
     @mock.patch("airflow.providers.google.go_module_utils.execute_in_subprocess")
     def test_should_init_go_module(self, mock_execute_in_subprocess):
         init_module(go_module_name="example.com/main", go_module_path="/home/example/go")