|
| 1 | +from __future__ import annotations |
| 2 | + |
1 | 3 | import logging |
2 | 4 | from decimal import Decimal |
| 5 | +from typing import Any |
3 | 6 |
|
4 | 7 | import boto3 |
5 | 8 | import pyarrow as pa |
|
8 | 11 |
|
9 | 12 | import awswrangler as wr |
10 | 13 | import awswrangler.pandas as pd |
| 14 | +from awswrangler import _databases as _db_utils |
11 | 15 |
|
12 | 16 | from .._utils import ensure_data_types, get_df, pandas_equals |
13 | 17 |
|
|
17 | 21 |
|
18 | 22 |
|
19 | 23 | @pytest.fixture(scope="module", autouse=True) |
20 | | -def create_sql_server_database(databases_parameters): |
| 24 | +def create_sql_server_database(databases_parameters: dict[str, Any]) -> None: |
| 25 | + attrs = _db_utils.get_connection_attributes(connection="aws-sdk-pandas-sqlserver") |
21 | 26 | connection_str = ( |
22 | 27 | f"DRIVER={{ODBC Driver 17 for SQL Server}};" |
23 | | - f"SERVER={databases_parameters['sqlserver']['host']},{databases_parameters['sqlserver']['port']};" |
24 | | - f"UID={databases_parameters['user']};" |
25 | | - f"PWD={databases_parameters['password']}" |
| 28 | + f"SERVER={attrs.host},{attrs.port};" |
| 29 | + f"UID={attrs.user};" |
| 30 | + f"PWD={attrs.password}" |
26 | 31 | ) |
27 | | - con = pyodbc.connect(connection_str, autocommit=True) |
| 32 | + |
| 33 | + database_name = databases_parameters["sqlserver"]["database"] |
28 | 34 | sql_create_db = ( |
29 | | - f"IF NOT EXISTS(SELECT * FROM sys.databases WHERE name = '{databases_parameters['sqlserver']['database']}') " |
| 35 | + f"IF NOT EXISTS(SELECT * FROM sys.databases WHERE name = '{database_name}') " |
30 | 36 | "BEGIN " |
31 | | - f"CREATE DATABASE {databases_parameters['sqlserver']['database']} " |
| 37 | + f"CREATE DATABASE {database_name} " |
32 | 38 | "END" |
33 | 39 | ) |
34 | | - with con.cursor() as cursor: |
35 | | - cursor.execute(sql_create_db) |
36 | | - con.commit() |
37 | | - con.close() |
38 | 40 |
|
39 | | - yield |
| 41 | + with pyodbc.connect(connection_str, autocommit=True) as con: |
| 42 | + with con.cursor() as cursor: |
| 43 | + cursor.execute(sql_create_db) |
| 44 | + con.commit() |
40 | 45 |
|
41 | 46 |
|
42 | 47 | @pytest.fixture(scope="function") |
|
0 commit comments