|
26 | 26 | from cryptography.hazmat.primitives.asymmetric import rsa |
27 | 27 |
|
28 | 28 | import snowflake.connector.aio |
29 | | -from snowflake.connector.aio import connect as async_connect |
30 | 29 | from snowflake.connector.aio._network import SnowflakeRestful |
31 | 30 | from snowflake.connector.aio.auth import ( |
32 | 31 | AuthByDefault, |
@@ -842,93 +841,3 @@ async def test_invalid_authenticator(): |
842 | 841 | ) |
843 | 842 | await conn.connect() |
844 | 843 | assert "Unknown authenticator: INVALID" in str(excinfo.value) |
845 | | - |
846 | | - |
847 | | -@pytest.mark.skipolddriver |
848 | | -@pytest.mark.parametrize("proxy_method", ["explicit_args", "env_vars"]) |
849 | | -async def test_large_query_through_proxy_async( |
850 | | - wiremock_generic_mappings_dir, |
851 | | - wiremock_target_proxy_pair, |
852 | | - wiremock_mapping_dir, |
853 | | - proxy_env_vars, |
854 | | - proxy_method, |
855 | | -): |
856 | | - target_wm, proxy_wm = wiremock_target_proxy_pair |
857 | | - |
858 | | - password_mapping = wiremock_mapping_dir / "auth/password/successful_flow.json" |
859 | | - multi_chunk_request_mapping = ( |
860 | | - wiremock_mapping_dir / "queries/select_large_request_successful.json" |
861 | | - ) |
862 | | - disconnect_mapping = ( |
863 | | - wiremock_generic_mappings_dir / "snowflake_disconnect_successful.json" |
864 | | - ) |
865 | | - telemetry_mapping = wiremock_generic_mappings_dir / "telemetry.json" |
866 | | - chunk_1_mapping = wiremock_mapping_dir / "queries/chunk_1.json" |
867 | | - chunk_2_mapping = wiremock_mapping_dir / "queries/chunk_2.json" |
868 | | - |
869 | | - expected_headers = {"Via": {"contains": "wiremock"}} |
870 | | - |
871 | | - target_wm.import_mapping(password_mapping, expected_headers=expected_headers) |
872 | | - target_wm.add_mapping_with_default_placeholders( |
873 | | - multi_chunk_request_mapping, expected_headers |
874 | | - ) |
875 | | - target_wm.add_mapping(disconnect_mapping, expected_headers=expected_headers) |
876 | | - target_wm.add_mapping(telemetry_mapping, expected_headers=expected_headers) |
877 | | - target_wm.add_mapping_with_default_placeholders(chunk_1_mapping, expected_headers) |
878 | | - target_wm.add_mapping_with_default_placeholders(chunk_2_mapping, expected_headers) |
879 | | - |
880 | | - set_proxy_env_vars, clear_proxy_env_vars = proxy_env_vars |
881 | | - connect_kwargs = { |
882 | | - "user": "testUser", |
883 | | - "password": "testPassword", |
884 | | - "account": "testAccount", |
885 | | - "host": target_wm.wiremock_host, |
886 | | - "port": target_wm.wiremock_http_port, |
887 | | - "protocol": "http", |
888 | | - "warehouse": "TEST_WH", |
889 | | - } |
890 | | - |
891 | | - if proxy_method == "explicit_args": |
892 | | - connect_kwargs.update( |
893 | | - { |
894 | | - "proxy_host": proxy_wm.wiremock_host, |
895 | | - "proxy_port": str(proxy_wm.wiremock_http_port), |
896 | | - "proxy_user": "proxyUser", |
897 | | - "proxy_password": "proxyPass", |
898 | | - } |
899 | | - ) |
900 | | - clear_proxy_env_vars() |
901 | | - else: |
902 | | - proxy_url = f"http://proxyUser:proxyPass@{proxy_wm.wiremock_host}:{proxy_wm.wiremock_http_port}" |
903 | | - set_proxy_env_vars(proxy_url) |
904 | | - |
905 | | - row_count = 50_000 |
906 | | - conn = await async_connect(**connect_kwargs) |
907 | | - try: |
908 | | - cur = conn.cursor() |
909 | | - await cur.execute( |
910 | | - f"select seq4() as n from table(generator(rowcount => {row_count}));" |
911 | | - ) |
912 | | - assert len(cur._result_set.batches) > 1 |
913 | | - _ = [r async for r in cur] |
914 | | - finally: |
915 | | - await conn.close() |
916 | | - |
917 | | - async with aiohttp.ClientSession() as session: |
918 | | - async with session.get( |
919 | | - f"{proxy_wm.http_host_with_port}/__admin/requests" |
920 | | - ) as resp: |
921 | | - proxy_reqs = await resp.json() |
922 | | - assert any( |
923 | | - "/queries/v1/query-request" in r["request"]["url"] |
924 | | - for r in proxy_reqs["requests"] |
925 | | - ) |
926 | | - |
927 | | - async with session.get( |
928 | | - f"{target_wm.http_host_with_port}/__admin/requests" |
929 | | - ) as resp: |
930 | | - target_reqs = await resp.json() |
931 | | - assert any( |
932 | | - "/queries/v1/query-request" in r["request"]["url"] |
933 | | - for r in target_reqs["requests"] |
934 | | - ) |
0 commit comments