1010from tests .constant import ASYNC_DRIVERS , SYNC_DRIVERS
1111
1212# Async fixture names for test filtering
13- ASYNC_FIXTURE_NAMES = ['pgmq_by_async_dsn' , 'pgmq_by_async_engine' , 'pgmq_by_async_session_maker' ]
13+ ASYNC_FIXTURE_NAMES = [
14+ "pgmq_by_async_dsn" ,
15+ "pgmq_by_async_engine" ,
16+ "pgmq_by_async_session_maker" ,
17+ ]
1418
1519
16- def pytest_addoption (parser ):
20+ def pytest_addoption (parser : pytest . Parser ):
1721 """Add custom command-line options for pytest."""
1822 parser .addoption (
1923 "--driver" ,
@@ -29,30 +33,30 @@ def pytest_addoption(parser):
2933 )
3034
3135
32- def pytest_generate_tests (metafunc ):
36+ def pytest_generate_tests (metafunc : pytest . Metafunc ):
3337 """
3438 Dynamically generate test parametrization based on CLI options.
35-
39+
3640 This allows us to parametrize fixtures based on the --driver option.
3741 """
3842 if "pgmq_all_variants" in metafunc .fixturenames :
3943 driver_from_cli = metafunc .config .getoption ("--driver" )
40-
44+
4145 # Define sync and async fixture variants
4246 sync_fixtures = [
43- ' pgmq_by_dsn' ,
44- ' pgmq_by_engine' ,
45- ' pgmq_by_session_maker' ,
46- ' pgmq_by_dsn_and_engine' ,
47- ' pgmq_by_dsn_and_session_maker' ,
47+ " pgmq_by_dsn" ,
48+ " pgmq_by_engine" ,
49+ " pgmq_by_session_maker" ,
50+ " pgmq_by_dsn_and_engine" ,
51+ " pgmq_by_dsn_and_session_maker" ,
4852 ]
49-
53+
5054 async_fixtures = [
51- ' pgmq_by_async_dsn' ,
52- ' pgmq_by_async_engine' ,
53- ' pgmq_by_async_session_maker' ,
55+ " pgmq_by_async_dsn" ,
56+ " pgmq_by_async_engine" ,
57+ " pgmq_by_async_session_maker" ,
5458 ]
55-
59+
5660 # Determine which fixtures to use
5761 if not driver_from_cli :
5862 # No driver specified, use all fixtures
@@ -63,13 +67,9 @@ def pytest_generate_tests(metafunc):
6367 else :
6468 # Sync driver specified
6569 fixture_params = sync_fixtures
66-
70+
6771 # Parametrize the test
68- metafunc .parametrize (
69- "pgmq_all_variants" ,
70- fixture_params ,
71- indirect = True
72- )
72+ metafunc .parametrize ("pgmq_all_variants" , fixture_params , indirect = True )
7373
7474
7575@pytest .fixture (scope = "module" )
@@ -93,7 +93,7 @@ def get_sa_password():
9393
9494
9595@pytest .fixture (scope = "module" )
96- def get_sa_db (request ):
96+ def get_sa_db (request : pytest . FixtureRequest ):
9797 """Get database name from CLI argument or environment variable."""
9898 db_name_from_cli = request .config .getoption ("--db-name" )
9999 if db_name_from_cli :
@@ -112,14 +112,14 @@ def get_dsn(
112112):
113113 """Get DSN for sync drivers based on CLI option."""
114114 driver_from_cli = request .config .getoption ("--driver" )
115-
115+
116116 # Use CLI driver if specified and it's a sync driver
117117 if driver_from_cli and driver_from_cli in SYNC_DRIVERS :
118118 driver = driver_from_cli
119119 else :
120120 # Default to first sync driver if no CLI option or invalid
121121 driver = SYNC_DRIVERS [0 ]
122-
122+
123123 return f"postgresql+{ driver } ://{ get_sa_user } :{ get_sa_password } @{ get_sa_host } :{ get_sa_port } /{ get_sa_db } "
124124
125125
@@ -134,14 +134,14 @@ def get_async_dsn(
134134):
135135 """Get DSN for async drivers based on CLI option."""
136136 driver_from_cli = request .config .getoption ("--driver" )
137-
137+
138138 # Use CLI driver if specified and it's an async driver
139139 if driver_from_cli and driver_from_cli in ASYNC_DRIVERS :
140140 driver = driver_from_cli
141141 else :
142142 # Default to first async driver if no CLI option or invalid
143143 driver = ASYNC_DRIVERS [0 ]
144-
144+
145145 return f"postgresql+{ driver } ://{ get_sa_user } :{ get_sa_password } @{ get_sa_host } :{ get_sa_port } /{ get_sa_db } "
146146
147147
0 commit comments