【问题标题】:How to use Ignore packages in freezegun?如何在 freezegun 中使用忽略包?
【发布时间】:2021-10-31 12:26:47
【问题描述】:

当我将 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.'})

我认为ignore packages 可以解决问题。参考:https://github.com/spulec/freezegun/pull/185

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

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

from google.cloud import storage
import freezegun

ig_ms = ["google", "google.oauth2", "urllib3", "google.cloud"]
freezegun.configure(extend_ignore_list=ig_ms)


with freezegun.freeze_time("2017-05-21", ignore=ig_ms):
    client = storage.Client()

    print(list(client.list_buckets()))

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

import urllib3
import freezegun

with freezegun.freeze_time("2017-05-21", ignore=['urllib3']):
    http = urllib3.PoolManager()
    resp = http.request("GET", "https://httpbin.org/robots.txt")
    print(resp.status)

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

【问题讨论】:

    标签: python testing freezegun


    【解决方案1】:

    Invalid_grant 错误有两个常见原因。

    1. 您服务器的时钟与 NTP 不同步。 (解决方法:检查服务器时间是否有误修复。)

    2. 已超出刷新令牌限制。 (解决方案:您无能为力,他们不能使用更多的刷新令牌)应用程序可以请求多个刷新令牌。例如,这在用户想要在多台机器上安装应用程序的情况下很有用。在这种情况下,需要两个刷新令牌,每个安装一个。当刷新令牌的数量超过限制时,旧令牌将失效。如果应用程序尝试使用无效的刷新令牌,则会返回一个 invalid_grant 错误响应。每对唯一的 OAuth 2.0 客户端的限制为 25 个刷新令牌(请注意,此限制可能会发生变化)。如果应用程序继续为同一客户/帐户对请求刷新令牌,一旦第 26 个令牌发出,之前发出的第 1 个刷新令牌将失效。第 27 个请求的刷新令牌将使之前发布的第 2 个令牌失效,依此类推。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-13
      • 2018-01-24
      • 2014-11-12
      • 2022-11-28
      • 1970-01-01
      • 2021-08-18
      • 2014-06-14
      • 1970-01-01
      相关资源
      最近更新 更多