为了账号安全,请及时绑定邮箱和手机立即绑定

在 python unittest 中,保存 Peewee 对象的实例会引发

在 python unittest 中,保存 Peewee 对象的实例会引发

明月笑刀无情 2021-05-30 06:30:14
当我在 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)。



查看完整回答
反对 回复 2021-06-01
  • 1 回答
  • 0 关注
  • 182 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号