小编pro*_*sev的帖子

如何在sqlalchemy中模拟创建的时间?

我在Flask应用程序中使用SQLAlchemy。在测试中,我尝试为自己的条目模拟自动时间创建和更新。但是我不明白它如何用于SQLAlchemy。例如,我尝试使用freezgun模拟 datetime创建,但是失败。例如:

class Entry(db.Model):
    __tablename__ = 'entries'
    created = db.Column(db.DateTime(), default=db.func.now())
    updated = db.Column(db.DateTime(), default=db.func.now(), onupdate=db.func.now())

class ViewTestCase(AppliactionTestCase):
    def test(self):
        with freeze_time("2014-06-01 16:00:00"):
            db.session.add(Entry())
            db.session.commit()
        entry = db.session.query(Entry).first()
        self.assertEqual(entry.created, datetime(2014, 6, 1, 16, 0, 0))
Run Code Online (Sandbox Code Playgroud)

还有一个问题。如果需要刷新updated输入内容,如何强制保存输入内容而不进行更改?

python testing unit-testing sqlalchemy mocking

6
推荐指数
2
解决办法
1204
查看次数

标签 统计

mocking ×1

python ×1

sqlalchemy ×1

testing ×1

unit-testing ×1