SQLAlchemy似乎在单元测试中提交

时间:2016-07-02 22:14:30

标签: python sqlalchemy

def fixture(self, name):
        ...
        user = User(123)
        user.first_name = 'Houman'
        db.session.add(user)
        db.session.commit()
        return news_list, user

def test_update(self):
        with app.app_context():
            news_list, user = self.fixture('/topnews_id.json')
            user.first_name = 'John'
            user2 = db.session.query(User).get(user.id)

user2显示第一个名称==' John',由于我还没有完成db.session.commit()我期待user2.first_name,所以没有任何意义是' Houman'。

我相信在尝试检索用户之前我必须清除app_context。它是否正确?怎么能实现呢?

1 个答案:

答案 0 :(得分:2)

这是预期的,因为SQLAlchemy将返回存储在内存中的任何值,SQLAlchemy是智能的,因为每次执行某事时都不会对数据库进行提交。