当我在 python unittest 的 setUp 中保存一个实例时,我弹出了 2 个错误:sqlite3.IntegrityError:NOT NULL约束失败: registro_c170.reg_c100_id和peewee.OperationalError:连接已打开。(这是为我的测试类中的每个 test_method 引发的。)语境:我对面向对象的编程和单元测试非常陌生。我正在使用python构建寄存器层次结构的模型。该注册簿包含有关税收和问责制的信息。模型:from peewee import *db = SqliteDatabase('pis_cofins.db')class BaseModel(Model): class Meta: database = dbclass Registro_C100(BaseModel): """ """ # Atributos x = CharField() y = CharField() @property def dados(self): # some property @dados.setter def dados(self, novos_dados): #... @property def formato_linha(self): # some methodclass Registro_C170(BaseModel): """ """ # Atributos a = CharField() b = CharField() reg_c100 = ForeignKeyField(Registro_C100, backref='registros_c170') @property def dados(self): # some property @dados.setter def dados(self, novos_dados): # ... @property def formato_linha(self): # some method老实说,我知道我唯一可以尝试的是在每个测试方法中创建每个实例,但这正是我想要避免的。我搜索了“peewee testing”和“peewee unittest”,但没有找到任何有用的东西。Peewee文档只有你展示了如何写的安装和拆卸方法: http://docs.peewee-orm.com/en/latest/peewee/database.html#testing-peewee-applications 或如何使用他们的test_utils: HTTP: //docs.peewee-orm.com/en/latest/peewee/playhouse.html#test-utils
1 回答

慕森卡
TA贡献1806条经验 获得超8个赞
好吧,这很尴尬。我意识到我正在保存一个没有值的实例ForeignKeyField
(默认为null=False
)。我需要做的就是允许该字段接受null
值(null=True
)。
添加回答
举报
0/150
提交
取消