我正在编写一个基本的模拟框架,这样我就可以测试对peewee的一些调用。
我知道在peewee,你可以打where()电话
model.select().where(model.id == target_id). ...
为了检测模型中的哪些字段正在被比较,我将重写该字段的比较操作符。然后我会注射那个模型来代替偷窥模型。它将提供与peewee模型相同的接口(但只提供所需的接口),但它不会访问数据库,而是记录比较和调用;但这都取决于调用方法之前要计算的参数。
我已经使用anaconda运行了一个示例,对于Linux附带的任何python,它们似乎都按照我的意愿操作。我不确定这是否是运行时的侥幸,或者python确实在需要比较之前对它们进行评估。
因此,对于下面的内容,我可以依赖于在调用第一个model.id == target_id, ...之前运行比较的model.id == target_id, ...吗?我可以依赖于model.name == target_name在调用第二个where()之前和第一个where()之后运行它的比较吗?
mockModel.select()
         .where(model.id == target_id, model.number == target_number)
         .where(model.name == target_name)
         ...https://stackoverflow.com/questions/43743490
复制相似问题