@@ -93,6 +93,20 @@ def mssql_docker_ip(mssql_docker_services: DockerServiceRegistry) -> str:
9393 return mssql_docker_services .docker_ip
9494
9595
96+ @pytest .fixture (scope = "session" )
97+ def mssql_connection_string (
98+ mssql_docker_ip : str , mssql_port : int , mssql_database : str , mssql_user : str , mssql_password : str
99+ ) -> str :
100+ return f"encrypt=no; TrustServerCertificate=yes; driver={{ODBC Driver 18 for SQL Server}}; server={ mssql_docker_ip } ,{ mssql_port } ; database={ mssql_database } ; UID={ mssql_user } ; PWD={ mssql_password } "
101+
102+
103+ @pytest .fixture (scope = "session" )
104+ def mssql2022_connection_string (
105+ mssql_docker_ip : str , mssql2022_port : int , mssql_database : str , mssql_user : str , mssql_password : str
106+ ) -> str :
107+ return f"encrypt=no; TrustServerCertificate=yes; driver={{ODBC Driver 18 for SQL Server}}; server={ mssql_docker_ip } ,{ mssql2022_port } ; database={ mssql_database } ; UID={ mssql_user } ; PWD={ mssql_password } "
108+
109+
96110@pytest .fixture (autouse = False , scope = "session" )
97111async def mssql2022_service (
98112 mssql_docker_services : DockerServiceRegistry ,
@@ -102,19 +116,19 @@ async def mssql2022_service(
102116 mssql_database : str ,
103117 mssql_user : str ,
104118 mssql_password : str ,
119+ mssql2022_connection_string : str ,
105120) -> AsyncGenerator [None , None ]:
106121 os .environ ["MSSQL_PASSWORD" ] = mssql_password
107122 os .environ ["MSSQL_USER" ] = mssql_user
108123 os .environ ["MSSQL_DATABASE" ] = mssql_database
109124 os .environ ["MSSQL2022_PORT" ] = str (mssql2022_port )
110- connstring = f"encrypt=no; TrustServerCertificate=yes; driver={{ODBC Driver 18 for SQL Server}}; server={ mssql_docker_ip } ,{ mssql2022_port } ; database={ mssql_database } ; UID={ mssql_user } ; PWD={ mssql_password } "
111125 await mssql_docker_services .start (
112126 "mssql2022" ,
113127 docker_compose_files = mssql_docker_compose_files ,
114128 timeout = 120 ,
115129 pause = 1 ,
116130 check = mssql_responsive ,
117- connstring = connstring ,
131+ connstring = mssql2022_connection_string ,
118132 )
119133 yield
120134
@@ -129,8 +143,8 @@ async def mssql_service(
129143 mssql_database : str ,
130144 mssql_user : str ,
131145 mssql_password : str ,
146+ mssql_connection_string : str ,
132147) -> AsyncGenerator [None , None ]:
133- connstring = f"encrypt=no; TrustServerCertificate=yes; driver={{ODBC Driver 18 for SQL Server}}; server={ mssql_docker_ip } ,{ mssql_port } ; database={ mssql_database } ; UID={ mssql_user } ; PWD={ mssql_password } "
134148 os .environ ["MSSQL_PASSWORD" ] = mssql_password
135149 os .environ ["MSSQL_USER" ] = mssql_user
136150 os .environ ["MSSQL_DATABASE" ] = mssql_database
@@ -141,6 +155,28 @@ async def mssql_service(
141155 timeout = 120 ,
142156 pause = 1 ,
143157 check = mssql_responsive ,
144- connstring = connstring ,
158+ connstring = mssql_connection_string ,
145159 )
146160 yield
161+
162+
163+ @pytest .fixture (autouse = False , scope = "session" )
164+ async def mssql_startup_connection (
165+ mssql_service : DockerServiceRegistry , mssql_connection_string : str
166+ ) -> AsyncGenerator [aioodbc .Connection , None ]:
167+ async with await aioodbc .connect (
168+ dsn = mssql_connection_string ,
169+ timeout = 2 ,
170+ ) as db_connection :
171+ yield db_connection
172+
173+
174+ @pytest .fixture (autouse = False , scope = "session" )
175+ async def mssql2022_startup_connection (
176+ mssql2022_service : DockerServiceRegistry , mssql2022_connection_string : str
177+ ) -> AsyncGenerator [aioodbc .Connection , None ]:
178+ async with await aioodbc .connect (
179+ dsn = mssql2022_connection_string ,
180+ timeout = 2 ,
181+ ) as db_connection :
182+ yield db_connection
0 commit comments