1313DATABASE_NAME_ENV = "DATABASE_NAME"
1414USERNAME_ENV = "USER_NAME"
1515PASSWORD_ENV = "PASSWORD"
16+ SERVICE_ID = "SERVICE_ID"
17+ SERVICE_SECRET = "SERVICE_SECRET"
1618
1719
1820def must_env (var_name : str ) -> str :
@@ -41,6 +43,16 @@ def password() -> str:
4143 return must_env (PASSWORD_ENV )
4244
4345
46+ @fixture (scope = "session" )
47+ def service_id () -> str :
48+ return must_env (SERVICE_ID )
49+
50+
51+ @fixture (scope = "session" )
52+ def service_secret () -> str :
53+ return must_env (SERVICE_SECRET )
54+
55+
4456@fixture (scope = "session" )
4557def engine (
4658 username : str , password : str , database_name : str , engine_name : str
@@ -50,12 +62,27 @@ def engine(
5062 )
5163
5264
65+ @fixture (scope = "session" )
66+ def engine_service_account (
67+ service_id : str , service_secret : str , database_name : str , engine_name : str
68+ ) -> Engine :
69+ return create_engine (
70+ f"firebolt://{ service_id } :{ service_secret } @{ database_name } /{ engine_name } "
71+ )
72+
73+
5374@fixture (scope = "session" )
5475def connection (engine : Engine ) -> Connection :
5576 with engine .connect () as c :
5677 yield c
5778
5879
80+ @fixture (scope = "session" )
81+ def connection_service_account (engine_service_account : Engine ) -> Connection :
82+ with engine_service_account .connect () as c :
83+ yield c
84+
85+
5986@fixture (scope = "session" )
6087def event_loop ():
6188 loop = asyncio .get_event_loop ()
0 commit comments