Skip to content

Commit

Permalink
use pyodbc instead
Browse files Browse the repository at this point in the history
  • Loading branch information
MarkBNinetyOne committed Jul 15, 2024
1 parent 0ce4fec commit 9e46e66
Showing 1 changed file with 10 additions and 1 deletion.
11 changes: 10 additions & 1 deletion modules/mssql/testcontainers/mssql/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@ class SqlServerContainer(DbContainer):
... engine = sqlalchemy.create_engine(mssql.get_connection_url())
... with engine.begin() as connection:
... result = connection.execute(sqlalchemy.text("select @@VERSION"))
Notes
-----
Requires `ODBC Driver 17 for SQL Server <https://docs.microsoft.com/en-us/sql/connect/odbc/
linux-mac/installing-the-microsoft-odbc-driver-for-sql-server>`_.
"""

def __init__(
Expand All @@ -31,6 +36,7 @@ def __init__(
port: int = 1433,
dbname: str = "tempdb",
dialect: str = "mssql+pymssql",
driver: str = "ODBC Driver 17 for SQL Server",
**kwargs,
) -> None:
raise_for_deprecated_parameter(kwargs, "user", "username")
Expand All @@ -43,6 +49,7 @@ def __init__(
self.username = username
self.dbname = dbname
self.dialect = dialect
self.driver = driver

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

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

0 comments on commit 9e46e66

Please sign in to comment.