问题标签 [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 回答
20 浏览

unit-testing - 为什么测试文件不能针对应用文件运行测试?

我正在用 Flask 练习 tdd,有趣的是我的第一个测试文件似乎无法检测到主要的 flask_app 文件:

test_basics.py:

我创建setup.py了根目录,因此将其视为项目目录:

项目结构:

我需要做什么才能使测试可以针对主要的 flask_app.py 文件运行?

python tests/test_basics.py返回:

ModuleNotFoundError: No module named 'flask_app'

0 投票
0 回答
53 浏览

flask - Flask App 无法在 Gtihub Action 上运行单元测试

1.目前,我正在构建一个烧瓶应用程序,并且我还为单元测试做了一些实现。每次需要运行单元测试时,我都必须连接到端口http://127.0.0.1:5000/。然后使用命令 $pytest 打开另一个终端以运行单元测试。由于后端服务器运行时我无法输入命令,这就是我打开另一个终端的原因。运行 uni test 后,我​​可以成功获得测试结果。但是,当我尝试在 GitHub 操作上运行单元测试时,它会在运行服务器步骤停止。如果我不运行后端服务器,我将收到错误消息

/usr/local/lib/python3.9/site-packages/urllib3/util/retry.py:574:MaxRetryError

在处理上述异常的过程中,又出现了一个异常:

2.这是我在 Github Action 上的 .yml 文件中的代码。每次我推拉代码时,它都会运行这个脚本。然后我安装所有必要的依赖项并更改目录以运行后端服务器(我必须运行服务器才能进行测试)。但是,运行服务器http://127.0.0.1:5000/后,Github Hub Action 将停止。$pytest 不会被执行。我想知道如何解决这个问题,github 操作上是否有任何命令可以打开新终端并运行代码?我真的在努力解决这个问题。

这是我的单元测试代码:

0 投票
1 回答
1838 浏览

unit-testing - WrapperTestResponse' 对象没有属性 'text'

  1. 目前我正在为我的烧瓶项目编写一个联合测试。我写了一个函数来测试登录功能。当我运行单元测试时,它显示了一些错误消息。

失败 unit_test.py::TestClass::test_login - AttributeError: 'WrapperTestResponse' 对象没有属性 'text'

2.这是我的单元测试实现代码,我可以成功获取状态码但不能获取文本。我犯了一些错误吗?

0 投票
0 回答
25 浏览

flask - 如何使用 unittest 针对异常运行断言?

我正在对令牌创建进行单元测试(想想 PyJWT),我需要测试过期令牌是否引发异常:

正确引发异常:

但测试运行器给出错误: test_invalid_logout_expired_token (test_auth.TestAuthBlueprint) ... ERROR

什么是正确的方法?

更新:

用户等级:

替换dataUser.decode_auth_token()

0 投票
1 回答
416 浏览

sqlalchemy - 如何使用反射数据库测试 SQLAlchemy

由于我的烧瓶应用程序不应该在我的数据库中写入任何内容,因此我设置了 Flask-SQLAlchemy 以反映我的数据库。这样,当我更改架构时,我不必更改模型:

这一切都很好,花花公子。但是现在,我想使用 unittest 来实现测试。但我找不到任何应该如何工作的东西?我习惯于制作一个新的 sqlite 数据库来测试,但我没有任何模型可以在那里编写。这里的标准程序是什么?你把所有东西都复制到sqlite吗?如果是这样,怎么做?

0 投票
1 回答
65 浏览

sqlalchemy - 在创建应用程序之前导入反射的 Flask-SQLAlchemy 模块

这是这个问题的延续。

由于我的烧瓶应用程序不应该在我的数据库中写入任何内容,因此我设置了 Flask-SQLAlchemy 以反映我的数据库。这样,当我更改架构时,我不必更改模型:

但是现在,如果我必须在创建应用程序之前导入模型,我会遇到错误,因为尚未设置元数据。这是一个测试时的问题,例如:

导入时会引发此KeyError: 'data'问题,因为在函数运行之前未正确设置元数据。__table__ = db.Model.metadata.tables['data']app.modelscreate_app()

0 投票
0 回答
55 浏览

flask-wtforms - Flask wtf 表单未填充使用 Flask-Testing 包在烧瓶单元测试中传递的表单数据字典

如何使用 Flask-flask_testing 和 flask_wtf 包在 post 请求中发送表单数据?

这是我的 FlaskForm 模型和测试函数:

这是我的路线的一部分:

路线的打印输出是:

为什么 BusinessTripProcessingForm 看不到离开时间和返回时间的传递值?

此测试的测试配置是:

0 投票
0 回答
24 浏览

flask - 如何覆盖 Flask 测试客户端的基本 url?

我想测试托管在不同机器上的烧瓶应用程序(例如 - 登台机器以验证是否所有 api 单元测试都通过了),我可以覆盖烧瓶测试客户端中的烧瓶基础 url 吗?

目前所有测试都在 DEV 本地机器上运行。

这里烧瓶测试客户端self.client.post('/customer' ... )使用本地机器生成最终 URL,但我想传递自定义基本 url,以便最终 url 看起来像这样http://192.168.12.8/customer

请建议一种使用自定义基本 url 运行测试的方法。

0 投票
0 回答
21 浏览

python - 单元测试气流插件

我有一个气流实例,并创建了一些烧瓶 API 作为插件。我想知道是否有任何方法可以在不依赖 Airflow 的情况下为这些 API 运行一些单元测试?

在这种情况下,您如何测试upload_file例如?非常感谢您对此的任何帮助,我是烧瓶的新手。