From 507ba2ab3d3bc793a2da459b14135422b282b8a8 Mon Sep 17 00:00:00 2001 From: Tatiana Al-Chueyr Date: Mon, 18 Jul 2022 11:52:30 +0100 Subject: [PATCH] Add test for Snowflake load_file_to_table_natively --- tests/databases/test_snowflake.py | 40 +++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/tests/databases/test_snowflake.py b/tests/databases/test_snowflake.py index 035efeb874..7f95ad0388 100644 --- a/tests/databases/test_snowflake.py +++ b/tests/databases/test_snowflake.py @@ -450,3 +450,43 @@ def test_create_stage_amazon_fails_due_to_no_credentials(get_credentials): "In order to create an stage for S3, one of the following is required" ) assert exc_info.match(expected_msg) + + +@pytest.mark.integration +@pytest.mark.parametrize( + "database_table_fixture", + [ + {"database": Database.SNOWFLAKE}, + ], + indirect=True, + ids=["snowflake"], +) +@pytest.mark.parametrize( + "remote_files_fixture", + [ + {"provider": "amazon", "filetype": FileType.CSV}, + ], + indirect=True, + ids=["amazon_csv"], +) +def test_load_file_to_table_natively(remote_files_fixture, database_table_fixture): + """Load a file to a Snowflake table using the native optimisation.""" + filepath = remote_files_fixture[0] + database, target_table = database_table_fixture + database.load_file_to_table( + File(filepath), + target_table, + {}, + use_native_support=True + ) + + df = database.hook.get_pandas_df(f"SELECT * FROM {target_table.name}") + assert len(df) == 3 + expected = pd.DataFrame( + [ + {"id": 1, "name": "First"}, + {"id": 2, "name": "Second"}, + {"id": 3, "name": "Third with unicode पांचाल"}, + ] + ) + test_utils.assert_dataframes_are_equal(df, expected)