potiuk commented on code in PR #39831:
URL: https://github.com/apache/airflow/pull/39831#discussion_r1615150881
##########
tests/integration/providers/google/cloud/transfers/test_mssql_to_gcs.py:
##########
@@ -17,102 +17,65 @@
# under the License.
from __future__ import annotations
-import datetime
+import os
from unittest import mock
import pytest
-try:
- from airflow.providers.google.cloud.transfers.mssql_to_gcs import
MSSQLToGCSOperator
-except ImportError:
- pytest.skip("MSSQL not available", allow_module_level=True)
+from airflow.providers.google.cloud.transfers.mssql_to_gcs import
MSSQLToGCSOperator
+from airflow.providers.microsoft.mssql.hooks.mssql import MsSqlHook
+AIRFLOW_CONN_MSSQL_DEFAULT = "mssql://sa:airflow123@mssql:1433/"
TASK_ID = "test-mssql-to-gcs"
-MSSQL_CONN_ID = "mssql_conn_test"
-SQL = "select 1"
+TEST_TABLE_ID = "test_table_id"
+MSSQL_CONN_ID = "mssql_default"
BUCKET = "gs://test"
JSON_FILENAME = "test_{}.ndjson"
GZIP = False
-ROWS = [
- ("mock_row_content_1", 42, True, True),
- ("mock_row_content_2", 43, False, False),
- ("mock_row_content_3", 44, True, True),
-]
-CURSOR_DESCRIPTION = (
- ("some_str", 0, None, None, None, None, None),
- ("some_num", 3, None, None, None, None, None),
- ("some_binary", 2, None, None, None, None, None),
- ("some_bit", 3, None, None, None, None, None),
-)
NDJSON_LINES = [
- b'{"some_binary": true, "some_bit": true, "some_num": 42, "some_str":
"mock_row_content_1"}\n',
- b'{"some_binary": false, "some_bit": false, "some_num": 43, "some_str":
"mock_row_content_2"}\n',
- b'{"some_binary": true, "some_bit": true, "some_num": 44, "some_str":
"mock_row_content_3"}\n',
-]
-SCHEMA_FILENAME = "schema_test.json"
-SCHEMA_JSON = [
- b'[{"mode": "NULLABLE", "name": "some_str", "type": "STRING"}, ',
- b'{"mode": "NULLABLE", "name": "some_num", "type": "INTEGER"}, ',
- b'{"mode": "NULLABLE", "name": "some_binary", "type": "BOOLEAN"}, ',
- b'{"mode": "NULLABLE", "name": "some_bit", "type": "BOOLEAN"}]',
-]
-
-SCHEMA_JSON_BIT_FIELDS = [
- b'[{"mode": "NULLABLE", "name": "some_str", "type": "STRING"}, ',
- b'{"mode": "NULLABLE", "name": "some_num", "type": "INTEGER"}, ',
- b'{"mode": "NULLABLE", "name": "some_binary", "type": "BOOLEAN"}, ',
- b'{"mode": "NULLABLE", "name": "some_bit", "type": "INTEGER"}]',
+ b'{"Address": "1000 N West Street, Suite 1200", "City": "Wilmington, NC,
USA", "FirstName": "Apache",'
+ b' "LastName": "Airflow", "PersonID": 0}\n',
]
[email protected](reason="FIXME: Supposed to use 'mssql' integration which is
not implemented yet.")
@pytest.mark.integration("mssql")
class TestMsSqlToGoogleCloudStorageOperator:
- @pytest.mark.parametrize(
- "value, expected",
- [
- ("string", "string"),
- (32.9, 32.9),
- (-2, -2),
- (datetime.date(1970, 1, 2), "1970-01-02"),
- (datetime.date(1000, 1, 2), "1000-01-02"),
- (datetime.datetime(1970, 1, 1, 1, 0), "1970-01-01T01:00:00"),
- (datetime.time(hour=0, minute=0, second=0), "00:00:00"),
- (datetime.time(hour=23, minute=59, second=59), "23:59:59"),
- ],
- )
- def test_convert_type(self, value, expected):
+ def setup_method(self):
Review Comment:
Yes. You are right. I remembered it wrongly from the past.
I think in the past we had the convention that integration tests were
related to particular integration were in subfolder related to particular
integration, but those times are gone and indeed currently the structure is
more similar to unit tests and our `integration` tests are now structured
similarly to unit tests.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]