我有一个Flask应用程序,它在mysql数据库上执行操作。它使用sqlalchemy,并根据请求创建会话。在我的测试框架中,我设置了一个会话,然后插入适当的数据并确保之后删除。但是,在我的测试中,当我尝试确保某些内容被删除时(通过对我的Flask应用程序的DELETE请求),我的会话中的行不受外部线程的影响。我是否需要关闭并重新打开我的会话以确保正确删除,或者我能以某种方式刷新它,或者我是否以某种方式完全错误地将其丢失?
class Endpoint(flask_restful.Resource):
# in the webapp thread
def delete(self,id):
db.session.query(db.Table).filter(id=id).delete()
db.session.commit()
class Test(unittest.TestCase):
# in the testing thread
def setUp(self):
self.data = db.session.add(db.Table())
db.session.commit()
def tearDown(self):
self.data.delete()
db.session.commit()
def test_delete(self):
requests.delete(flask.url_for(Endpoint, id=self.data.id))
assert db.session.query(db.Table).filter(id = self.data.id).count() == 0