Coverage for /usr/lib/python3.10/site-packages/hyd/backend/db.py: 100%

13 statements  

« prev     ^ index     » next       coverage.py v7.0.3, created at 2023-02-06 00:31 +0000

1import sqlalchemy 

2import sqlalchemy.orm 

3from fastapi import Request 

4from sqlalchemy.orm import declarative_base, sessionmaker 

5 

6from hyd.backend.exc import HydError 

7from hyd.backend.util.const import MARIADB_ADDRESS, MARIADB_PASSWORD 

8 

9EXTEND_EXISTING = True 

10 

11URL_MARIADB = ( 

12 f"mariadb+mariadbconnector://hyd_user:{MARIADB_PASSWORD}@{MARIADB_ADDRESS}:3306/hyd_db" 

13) 

14 

15 

16engine: sqlalchemy.engine.base.Engine = sqlalchemy.create_engine( 

17 URL_MARIADB, 

18 # echo=True prints all SQL statements being executed to the console as they happen 

19 # echo=True, 

20 # use sqlalchemy.future.Engine for full 2.0 compatibility 

21 future=True, 

22) 

23 

24DeclarativeMeta: type = declarative_base() 

25 

26# for typing see https://github.com/sqlalchemy/sqlalchemy/issues/7656 

27SessionMaker = sessionmaker( 

28 bind=engine, 

29 autocommit=False, 

30 autoflush=False, 

31) 

32 

33# Dependency 

34def get_db(request: Request): 

35 return request.state.db