gpt4 book ai didi

python-3.x - 如何为测试目的对 sqlite 数据库进行猴子补丁?

转载 作者:行者123 更新时间:2023-12-04 16:46:24 26 4
gpt4 key购买 nike

在 ORM.py 文件中:

from peewee import *
db = SqliteDatabase('database.db')

class Device(Model):
uid = CharField(unique=True, max_length=17)

class Meta:
database = db

现在在 test.py 中,我想对原始数据库进行猴子补丁 database.dbtest.db
from _pytest.monkeypatch import MonkeyPatch

@pytest.fixture(scope="session")
def monkeysession(request):
mp = MonkeyPatch()
yield mp
mp.undo()


@pytest.fixture(scope='session', autouse=True)
def create_db(monkeysession, request):
monkeysession.setattr(ORM, 'db', SqliteDatabase('test.db'))

但是我的错误(peewee.OperationalError: table "device"already exists)表明猴子补丁失败了

最佳答案

您可能想查看 Using 2.x 中的助手 http://docs.peewee-orm.com/en/latest/peewee/api.html#Using

bind()在 3.0a 中(尚未记录,抱歉)。

还有test_utils 2.x 和 3.0a 中的扩展:http://docs.peewee-orm.com/en/latest/peewee/playhouse.html#test_database

关于python-3.x - 如何为测试目的对 sqlite 数据库进行猴子补丁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46908274/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com