Python 在pytest执行期间使用不同的连接字符串
我有一个配置文件,其中保存了数据库的连接字符串 config.pyPython 在pytest执行期间使用不同的连接字符串,python,sqlalchemy,pytest,Python,Sqlalchemy,Pytest,我有一个配置文件,其中保存了数据库的连接字符串 config.py POSTGRES_USER = os.getenv('POSTGRES_USER') POSTGRES_PASSWORD = os.getenv('POSTGRES_PASSWORD') POSTGRES_DB = os.getenv('POSTGRES_DB') POSTGRES_HOST = os.getenv('POSTGRES_HOST') conn_url = f"postgresql+psycopg2:/
POSTGRES_USER = os.getenv('POSTGRES_USER')
POSTGRES_PASSWORD = os.getenv('POSTGRES_PASSWORD')
POSTGRES_DB = os.getenv('POSTGRES_DB')
POSTGRES_HOST = os.getenv('POSTGRES_HOST')
conn_url = f"postgresql+psycopg2://{POSTGRES_USER}:{POSTGRES_PASSWORD}@{POSTGRES_HOST}/{POSTGRES_DB}"
engine = create_engine(conn_url, echo=False)
Session = sessionmaker(bind=engine)
Base = declarative_base()
当我需要使用会话时,我会这样做
from database.config import Session
class Something:
def __init__(self):
self.session = Session()
当我使用pytest运行测试时,测试是针对postgres数据库运行的。是否有一种方法可以在开始执行测试之前更改连接字符串,以便它使用内存中的sqlite数据库?您可以将--dburi
传递给pytest命令。有一个例子。