Skip to content

Commit

Permalink
Merge branch 'main' into feat/43/test-obfuscate
Browse files Browse the repository at this point in the history
  • Loading branch information
beforan authored Jan 24, 2025
2 parents 34a4eb6 + d20b2a3 commit a732cb8
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 11 deletions.
28 changes: 19 additions & 9 deletions src/hutch_bunny/core/setting_database.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,23 @@
import hutch_bunny.core.settings as settings


def expand_short_drivers(drivername: str):
"""
Expand unqualified "short" db driver names when necessary so we can override sqlalchemy
e.g. when using psycopg3, expand `postgresql` explicitly rather than use sqlalchemy's default of psycopg2
"""

if drivername == "postgresql":
return settings.DEFAULT_POSTGRES_DRIVER

if drivername == "mssql":
return settings.DEFAULT_MSSQL_DRIVER

# Add other explicit driver qualification as needed ...

return drivername


def setting_database(logger: Logger):
logger.info("Setting up database connection...")

Expand All @@ -24,17 +41,10 @@ def setting_database(logger: Logger):
exit()
else:
datasource_db_port = environ.get("DATASOURCE_DB_PORT")
datasource_db_drivername = environ.get(
"DATASOURCE_DB_DRIVERNAME", settings.DEFAULT_DB_DRIVER
datasource_db_drivername = expand_short_drivers(
environ.get("DATASOURCE_DB_DRIVERNAME", settings.DEFAULT_DB_DRIVER)
)

# expand postgres to a full default driver, so we can override sqlalchemy
if datasource_db_drivername == "postgresql":
datasource_db_drivername = settings.DEFAULT_POSTGRES_DRIVER

if datasource_db_drivername == "mssql":
datasource_db_drivername = settings.DEFAULT_MSSQL_DRIVER

try:
db_manager = SyncDBManager(
username=environ.get("DATASOURCE_DB_USERNAME"),
Expand Down
5 changes: 4 additions & 1 deletion tests/test_demographics_distribution_query.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
from dotenv import load_dotenv
import os
import hutch_bunny.core.settings as settings
import hutch_bunny.core.setting_database as db_settings

load_dotenv()

Expand All @@ -23,7 +24,9 @@ def db_manager():
host=os.getenv("DATASOURCE_DB_HOST"),
port=(int(datasource_db_port) if datasource_db_port is not None else None),
database=os.getenv("DATASOURCE_DB_DATABASE"),
drivername=os.getenv("DATASOURCE_DB_DRIVERNAME", settings.DEFAULT_DB_DRIVER),
drivername=db_settings.expand_short_drivers(
os.getenv("DATASOURCE_DB_DRIVERNAME", settings.DEFAULT_DB_DRIVER)
),
schema=os.getenv("DATASOURCE_DB_SCHEMA"),
)

Expand Down
5 changes: 4 additions & 1 deletion tests/test_return.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
from dotenv import load_dotenv
import os
import hutch_bunny.core.settings as settings
import hutch_bunny.core.setting_database as db_settings

load_dotenv()

Expand All @@ -28,7 +29,9 @@ def db_manager():
host=os.getenv("DATASOURCE_DB_HOST"),
port=(int(datasource_db_port) if datasource_db_port is not None else None),
database=os.getenv("DATASOURCE_DB_DATABASE"),
drivername=os.getenv("DATASOURCE_DB_DRIVERNAME", settings.DEFAULT_DB_DRIVER),
drivername=db_settings.expand_short_drivers(
os.getenv("DATASOURCE_DB_DRIVERNAME", settings.DEFAULT_DB_DRIVER)
),
schema=os.getenv("DATASOURCE_DB_SCHEMA"),
)

Expand Down

0 comments on commit a732cb8

Please sign in to comment.