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")