Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在pytest执行期间使用不同的连接字符串_Python_Sqlalchemy_Pytest - Fatal编程技术网

Python 在pytest执行期间使用不同的连接字符串

Python 在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:/

我有一个配置文件,其中保存了数据库的连接字符串

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}:{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命令。有一个例子。