问题标签 [freezegun]

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 投票
2 回答
188 浏览

python - 如何暂停pytest计时器?

我有一个参数化(py)测试,在运行逻辑之前清理数据库中的一些表:

在测试结束时,我得到:

问题是大约 2-3 分钟是表清理。

如何在清理之前暂停计时器并在清理完成后继续计时器?

就像在 Golang 的测试库中一样 - T.StopTimer() & T.StartTime()

我搜索了整个谷歌,我偶然发现的最接近的是freezegun
我试过了,但无法摆脱清理时间,也许我用错了:/
据我所知,它操纵的是 datetime 对象,而不是 pytest 的计时器(机制):(

0 投票
0 回答
21 浏览

python-3.x - 使用 python 包 FreezeGun 模拟连续时间调用,如 unittest.mock.Mock side_effect

我试图datetime.now用包模拟两个连续的调用freezegun,但无法弄清楚为每个调用设置不同的返回值的方法。

有没有办法获得与 forunittest.mock.Mock和设置类似side_effect的结果iterable

0 投票
1 回答
121 浏览

python - 如何在 freezegun 中使用忽略包?

当我将 freezegun 与 google storage api 一起使用时,出现以下错误。

google.auth.exceptions.RefreshError: ('invalid_grant: Invalid JWT: Token must be a short-lived token (60 minutes) and in a reasonable timeframe. Check your iat and exp values in the JWT claim.', {'error': 'invalid_grant', 'error_description': 'Invalid JWT: Token must be a short-lived token (60 minutes) and in a reasonable timeframe. Check your iat and exp values in the JWT claim.'})

我认为忽略包可能会解决问题。参考:https ://github.com/spulec/freezegun/pull/185

有时需要忽略特定包(即库)的 FreezeGun 行为。一次调用可以忽略它们:

我尝试在忽略列表中添加 ["google", "google.auth", "google.cloud"],但仍然遇到相同的错误。

我对如何正确使用忽略包感到困惑。例如:

无论我是否将 urllib3 添加到忽略列表,它仍然会引发SystemTimeWarning: System time is way off (before 2020-07-01). This will probably lead to SSL verification errors

0 投票
0 回答
18 浏览

pycharm - freezegun.freeze_time() 参数“as_kwarg”被 PyCharm 和 SonarQube 识别为意外参数

我不知道问题是否与 freezegun 库有关,还是与 SonarQube/PyCharm 有关。freezegun.freeze_time(用作装饰器)按预期工作。但是... SQ 和 Pycharm 都将 freeze_time 的参数之一(即as_kwarg)检测为意外参数。PyCharm 没有将其放在函数列表中(如您在随附的屏幕截图中所见) 在此处输入图像描述

0 投票
0 回答
14 浏览

python - 如何正确使用`unittest.mock`?

我有这个遗留功能,我想写一个单元测试:

如何datetime.now()使用标准库进行模拟unittest
我设法在我的测试功能上使用Freezegun装饰器来做到这一点@freeze_time("2022-01-01"),它工作得非常好,但我想知道如果没有外部包怎么能做到这一点。