问题标签 [flask-testing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
213 浏览

python - 烧瓶测试 - assertRedirects 不显示重定向

我正在为我的 python3 烧瓶项目编写一个单元测试模块。其中一项测试旨在检查在将用户凭据传递给登录表单后,用户是否成功重定向到主页。该应用程序本身可以通过 Web 浏览器正常工作。
我有以下片段:
routes.py

测试.py

运行测试片段时,我不断收到断言错误:
self.assertTrue(response.status_code in valid_status_codes, message or not_redirect) AssertionError: False is not true : HTTP Status 301, 302, 303, 305, 307 expected but got 200

This表示服务器返回的代码是 200,而我希望收到 302,这表示重定向。
我尝试检查服务器行为,这是我手动登录时控制台的结果:
在此处输入图像描述

我的问题是:我如何才能检查重定向是否正在发生?

0 投票
1 回答
140 浏览

python - 如何将 QuerySelectField 表单数据发送到单元测试中的 Flask 视图?

我正在尝试在我正在处理的烧瓶应用程序中测试编辑和添加视图。该网站的一个版本已部署并且视图工作正常,但我正在进行的测试似乎没有正确传递 QuerySelectField 数据。此外,在测试中,我检查表单数据是否有效并且它确实有效,所以它应该通过。

下面是测试:

下面是测试的终端输出。最后两次失败与我发布的问题相同,因此我将它们排除在外。

字典打印输出来自我注入的一些打印语句,以帮助我理解问题。第一个字典是当没有表单提交到 add_post 视图时,第二个字典来自测试,它显示已填写的类别字段,最后一个来自显示未填充类别的 add_post 视图。

下面是 add_post 视图:

这是包含 PostForm 的 forms.py 文件

下面是配置文件

在我看来,wtforms 在测试环境中没有发送 QuerySelectView 但我不知道为什么。任何帮助表示赞赏。

编辑:在我最初的问题中,我没有明确表示这只是具有 QuerySelectField 的表单的问题。没有 QuerySelectField 的表单正在工作并通过所有测试。

0 投票
1 回答
645 浏览

python - Flask 中的自动化测试

我在 python 3 中为烧瓶进行自动化测试时遇到问题。我尝试过 unittest、pytests、nosetests,但我仍然不知道如何为烧瓶应用程序形成自动化测试。

以下是我使用 unittest 和 pytest
unittest 编写的代码:

在这段代码中,我遇到错误,flaskapp 没有任何 test_client() 函数。
pytest:

在这个错误中,收到“'function'没有任何属性get”,如果完成:def test1(client)它会给出一个错误,即flaskapp没有任何属性init_db。

0 投票
0 回答
740 浏览

postgresql - 如何在烧瓶测试中创建测试 Postgres 数据库

我正在使用烧瓶测试对 Postgres 应用程序进行一些单元测试。根据doc,我有以下代码。

当然我得到了这个错误

sqlalchemy.exc.OperationalError:(psycopg2.OperationalError)致命:数据库“test_db”不存在

我确实有一个数据库postgresql://demo:demo@postgres:5432/demo,它是我的生产数据库。

我怎样才能test_db在这个BaseTest类中创建?我正在使用 Python 3.6 和最新的烧瓶和烧瓶-sqlalchemy。非常感谢。

0 投票
2 回答
667 浏览

python - 尝试使用 LiveServerTestCase 测试 Flask 应用程序时出现“无法腌制本地对象 'LiveServerTestCase'”错误

一旦尝试使用来自 flask_testing 的 LiveServerTestCase 在我的 Flask 应用程序上运行单元测试,我就会收到标题中提到的错误。

这是我的测试文件:

这是我使用nose2运行测试时遇到的错误:

我真的在网上找不到任何关于这个问题的有用信息,

0 投票
1 回答
172 浏览

python - 如何为我的单元测试模拟烧瓶装饰器@login_required?

我正在开发一个需要编写一些单元测试的应用程序。我想问如何在我的单元测试中模拟一个装饰器'@login_required'?这是一个在 app.py 中具有 @login_required 函数的函数

这是我在 test_app.py 中的单元测试用例

因为我无法通过测试,即。status_code = 200,因为它预期为 404。我已经尝试了互联网上可用的所有内容,但它并没有解决我的问题。因此,我想尝试嘲笑装饰者。我该怎么做?请帮助我,因为我长期以来一直陷入这个问题。

0 投票
1 回答
80 浏览

mocking - 从 MySQLdb python 库模拟 callproc 方法时是否可以模拟某些 MySQL 过程存在

我有以下需要测试烧瓶路线的单元测试。

一切正常(模拟数据库引擎、raw_connection 和游标),但我有一个问题,即 get_project_members 不存在。我需要模拟哪个部分flask-sqlalchemyMySQLdb库以伪造某些过程实际存在,因为我使用它flask-testing来创建例如某些表`ExampleTable. .create(db.session.bind),我不知道如何创建存储过程或如何使用mock来模拟该过程。

异常日志:

0 投票
1 回答
312 浏览

python - 在 setUpClass 中获取 Flask-Testing 服务器 URL

我正在使用 Selenium 使用Flask-Testing 的 LiveServer为我的 Flask Web 应用程序编写 unittest 。

运行测试时,我希望为所有测试使用一个浏览器,而不是为每个测试打开一个新的浏览器实例,因此我使用的是unittest 的 setUpClass

运行测试时,我得到以下信息:

如何设置浏览器setUpClass

0 投票
0 回答
77 浏览

flask - 为什么消除弃用警告不起作用?

我正在尝试消除 Flask-SQLAlchemy 的弃用警告,如果与修改跟踪一起使用会增加开销:

config.py 文件:

测试文件:

我还是很有名的FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future. Set it to True or False to suppress this warning.

我怎样才能正确地使其静音?

0 投票
1 回答
39 浏览

python - 烧瓶测试数据库未在提交时保存

我有以下烧瓶工厂目录设置:

create_app方法定义在server/app/__init__.py

模型 ( server/app/models/sku.py) 和蓝图 ( server/app/views/sku_bp.py) 由下式给出:

分别。

我正在尝试server/tests/test_sku_view.py按如下方式计算单元测试:

server/tests/io/test.sku.csv文件如下所示:

server/app/config/test_config.py文件如下所示:

我在server/目录中使用python3.7 tests/test_sku_view.py. 但是,当我打印skus查询数据库的列表时,没有返回任何内容,即skus = []。请问我哪里错了?我知道sku正在正确生成,但它似乎没有在提交时保存在数据库中......