我正在尝试设置我的客户端,以使用postgresql数据库测试烧瓶视图。 代码如下:
@pytest.fixture(scope='function')
def full_client(request):
app = create_app(test_config=True)
request.getfixturevalue('postgresql')
engine = create_engine('postgresql+psycopg2://postgres:@127.0.0.1:5433/tests')
session = sessionmaker(bind=engine)
db.app = app
db.create_all()
client = app.test_client()
return client, session()
在测试过程中,会话和客户端都可以正常工作,但不幸的是它们是独立的。数据存储在REAL数据库中,而不是“虚拟”数据库。
def test_if_returns_200(full_client):
response = full_client[0].get('http://0.0.0.0:4000/api/')
# Line below gives empty list -> But the view should have created that
print(full_client[1].query(Model).all())
# Part below adds row the database
article = Model(text='Some text')
full_client[1].add(article)
full_client[1].commit()
# Line belows shows that the Model instance is added
print(full_client[1].query(Model).all())
assert response.status_code == 200
如果视图返回200,则仅表示它已将模型数据保存到数据库中。 当我尝试手动测试时,一切都很好。
有什么建议吗?
预先感谢小伙子们和小姑娘们!