Skip to content

Commit 9e46e66

Browse files
use pyodbc instead
1 parent 0ce4fec commit 9e46e66

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

Diff for: modules/mssql/testcontainers/mssql/__init__.py

+10-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,11 @@ class SqlServerContainer(DbContainer):
2121
... engine = sqlalchemy.create_engine(mssql.get_connection_url())
2222
... with engine.begin() as connection:
2323
... result = connection.execute(sqlalchemy.text("select @@VERSION"))
24+
25+
Notes
26+
-----
27+
Requires `ODBC Driver 17 for SQL Server <https://docs.microsoft.com/en-us/sql/connect/odbc/
28+
linux-mac/installing-the-microsoft-odbc-driver-for-sql-server>`_.
2429
"""
2530

2631
def __init__(
@@ -31,6 +36,7 @@ def __init__(
3136
port: int = 1433,
3237
dbname: str = "tempdb",
3338
dialect: str = "mssql+pymssql",
39+
driver: str = "ODBC Driver 17 for SQL Server",
3440
**kwargs,
3541
) -> None:
3642
raise_for_deprecated_parameter(kwargs, "user", "username")
@@ -43,6 +49,7 @@ def __init__(
4349
self.username = username
4450
self.dbname = dbname
4551
self.dialect = dialect
52+
self.driver = driver
4653

4754
def _configure(self) -> None:
4855
self.with_env("SA_PASSWORD", self.password)
@@ -56,6 +63,8 @@ def _connect(self) -> None:
5663
assert status == 0, "Cannot run 'SELECT 1': container is not ready"
5764

5865
def get_connection_url(self) -> str:
59-
return super()._create_connection_url(
66+
base_url = super()._create_connection_url(
6067
dialect=self.dialect, username=self.username, password=self.password, dbname=self.dbname, port=self.port
6168
)
69+
url = base_url + f"?driver={'+'.join(self.driver.split(' '))}"
70+
return url

0 commit comments

Comments
 (0)