首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Pytest flask live_server:无法冻结时间

Pytest flask live_server:无法冻结时间
EN

Stack Overflow用户
提问于 2019-03-04 08:28:45
回答 1查看 321关注 0票数 3

我正在尝试使用pytest-flask为Flask应用程序实现单元测试。我的查询的输出取决于当前时间。

为了一致的单元测试,我尝试冻结时间。我习惯了冻结tried,所以这是我尝试过的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Session for scope, otherwise server is reloaded everytime
@pytest.fixture(scope="session")
@freeze_time("2018-04-15")
def app():

    os.environ["FLASK_ENV"] = "development"

    app = create_app()

    # http://flask.pocoo.org/docs/1.0/api/#flask.Flask.test_client
    app.testing = True

    return app

@pytest.mark.usefixtures("live_server")
class TestLiveServer:

    # Freeze time to get consistent output.
    @freeze_time("2018-04-15")
    def test_export(self):

        q = "Chocapic"

        r = requests.post(
            url_for("query_direct", _external=True), json={"query": q}
        )
        print(r.text)

        export_path = os.path.join("tests", "fake_responses", q)

        with open(export_path, "w") as outfile:
            json.dump(r.json(), outfile, indent=4)

        with open(export_path, "r") as infile:
            data = json.load(infile)

        assert r.json() == data

我可以在日志中看到我的应用程序是以适当的冻结时间启动的。但是当测试运行时,我可以看到查询端点是用实际的当前时间完成的。看起来fixture live_server重置了当前时间。

你遇到过这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2020-10-07 09:09:06

根据the documentation的说法,liver_server装置在一个单独的进程中运行应用程序。也许,Freezegun不能在其他进程中发挥作用,只能在当前进程中发挥作用。

您真的需要实时服务器吗?我在没有实时服务器的情况下运行所有的测试。

也许你可以把你的测试分成两组?使用Freezegun可以在没有实时服务器的情况下获得可重现的响应,并且只使用实时服务器测试您需要实时服务器做的任何事情(Javascript?硒?)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54979277

复制
相关文章
Flask无法使用Flask-SQLALchemy扩展解决方案
前言 学习Flask的时候用到了Flask-SQLALchemy扩展,在使用过程可以正常导入Flask-SQLALchemy库,但是程序运行就出现缺少_sqlite3的错误。 运行环境 1.ubuntu 14.04 2.python 3.5 错误信息 ImportError: No module named _sqlite3 解决方案 1.ctrl+alt+t打开终端输入: ImportError: No module named _sqlite3 2.安装完毕后进入python官网下载python源文
木制robot
2018/04/13
1.1K0
bitcoin 通过脚本进行一段时间的资金冻结
上述为脚本中包含OP_CHECKLOCKTIMEVERIFY 操作码时,执行的验证过程。
路之遥
2022/08/20
3680
bitcoin 通过脚本进行一段时间的资金冻结
Flask 学习-94.Flask-SQLAlchemy 按日期时间查询
datetime 模块用个datetime.now方法可以获取当前时间 ,在当前时间的基础上可以加减几天几小时
上海-悠悠
2023/01/03
1.5K0
带你认识 flask 时间日期
使用服务器端的Python渲染日期和时间来展示到用户的浏览器并非一个好主意。考虑如下的例子, 我在2017年9月28日下午4点06分写这篇文章。我身处的时区是PDT(UTC-7),在Python解释器中运行如下:
公众号---人生代码
2019/11/24
3.3K0
进程冻结
进程冻结技术(freezing of tasks)是指在系统hibernate或者suspend的时候,将用户进程和部分内核线程置于“可控”的暂停状态。
233333
2023/03/08
1.2K0
进程冻结
python flask web开发实战 flask-moment时间日期
1、 from flask.ext.moment import Moment moment = Moment(app) 2、 templates/base.html {% block scripts %} {{ super() }} {{ moment.include_moment() }} {% endblock %} 3、 显示时间 from datetime import datetime @app.route('/') def index(): return render_
用户5760343
2019/07/08
5640
冻结计划
大多数SQL语句都有一个关联的查询计划。查询计划是在准备SQL语句时创建的。默认情况下,添加索引和重新编译类等操作会清除此查询计划。下次调用查询时,将重新准备查询并创建新的查询计划。冻结计划使可以跨编译保留(冻结)现有查询计划。查询执行使用冻结的计划,而不是执行新的优化并生成新的查询计划。
用户7741497
2022/06/08
1.9K0
Flask使用migrate迁移后,无法检测到models,无法生成表
在 Flask 项目中,使用 flask_migrate 管理数据库中,依次使用如下命令,对数据库和表进行生成和迁移:
Lokinli
2023/03/09
1K0
Flask使用migrate迁移后,无法检测到models,无法生成表
账户冻结说明
开通按量计费(后付费)资源时,会冻结您账户上的部分资金(余额小于冻结费用则无法开通);在您主动释放资源或由于您账户欠费导致资源释放后会解冻该部分资金;冻结的金额没有实际消耗,在冻结状态下无法使用,解冻后恢复使用。
☆~oo~☆
2022/09/21
1.8K0
测试之路 pytest接口自动化框架扩展-集成flask
上期扩展系列内容说到了GUI图形化界面作为数据接收的入口。在近期公司内部演示的时候,考虑到使用便捷性,决定将脚本结合flask框架,做成web端的形式。这样大家都可以正常访问。
歪小王
2022/12/12
8020
测试之路 pytest接口自动化框架扩展-集成flask
ETH被冻结_微信冻结显示什么界面
如果我们的电脑在启动挖矿软件的时候,发现界面有停顿,Miner都会冻结。有时矿工会随机冻结,直到按下任何键。
全栈程序员站长
2022/11/04
1.3K0
ETH被冻结_微信冻结显示什么界面
电脑休眠时间过长无法唤醒
电脑休眠时间过长系统将进入睡眠无法唤醒,很难唤醒。特别是:电脑放一段时间,主板接口系统程序将会自动启动:睡眠保护【睡眠期也是危险期】一般情况下唤醒方式解决:空格键,Enter 回车键,确认键,鼠标左右键,鼠标双击左右键。唤醒后直接进入系统桌面:进行手动调整。关闭睡眠模;【睡眠模式不建议大家开启,这个功能反人类,搞不好很容易造成无法唤醒。无法唤醒,对一个维修的很头晕。因为要排查主板的一些供电流,电子硬件的查询和排查。】
hide
2022/12/30
3.1K0
电脑休眠时间过长无法唤醒
Python:Flask使用jsonify格式化时间
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/144142.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/31
4520
Flask项目发布流程
本文继续对Flask官方教程进行学习,我就直接跳过Templates、Static Files、Blog Blueprint三小节了,因为基本不会在实际项目中用到这些技术,有时间多学习下前端才是。这篇文章把Make the Project Installable、Test Coverage、Deploy to Production这三小节汇总来学习。我觉得这是官方给出的一个Flask项目发布流程,如下图所示:
dongfanger
2021/12/02
9940
Flask项目发布流程
Pytest(十三)durations统计用例运行时间
写完一个项目的自动化用例之后,发现有些用例运行较慢,影响整体的用例运行速度,我们需要排除一下问题,那么应该如何去做呢
雷子
2022/04/06
1.1K0
Pytest(十三)durations统计用例运行时间
获取HTML冻结窗口元素
在写爬虫时会获取页面的元素去定位,但是有些页面元素只在鼠标悬停时才会出现,鼠标离开后就会消失,这种情况很不利于去查看想要获取的元素。
sugarbeet
2022/10/04
2.8K0
Pytest(十一) pytest ini文件
我们在执行的时候,可以不增加这些参数,addopts就是我们运行的时候所最近的命令
雷子
2022/04/06
1.5K0
Pytest(十一) pytest ini文件
Pytest(四)Pytest断言
测试的成功与否就是拿实际的结果与预期的结果进行比较,这个比的过程就是断言(assert)
雷子
2022/04/06
1.1K0
Pytest(四)Pytest断言
Pytest Pytest源码分析
这里的main函数为从_pytest/config/__init__.py定义的全局函数--main函数
授客
2021/03/04
2.1K0
Pytest(九) pytest Fixture(二)
固件的作用是为了抽离出重复的工作和方便复用,为了更精细化控制固件(比如只想对数据库访问测试脚本使用自动连接关闭的固件),pytest 使用作用域来进行指定固件的使用范围。
雷子
2022/04/06
6680
Pytest(九) pytest Fixture(二)

相似问题

Flask pytest测试路由失败

11

Flask-使用pytest登录

146

pytest-django将夹具添加到live_server夹具中

20

Flask+Pytest+SQLAlchemy:使用烧瓶-sqlalchemy运行pytest时无法创建和删除表

10

Pytest在flask wtforms上失败

111
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文