【问题标题】:What does a "JMES path query" look like when saving a variable in Tavern?在 Tavern 中保存变量时,“JMES 路径查询”是什么样的?
【发布时间】:2019-11-22 15:33:20
【问题描述】:

在我的 Tavern 测试文件中,我保存了一个变量,如下所示:

[...]
save:
  headers:
    csrf: x-csrf-token
[...]

当我运行 pytest 时,它会记录以下警告:

tavern/util/dict_util.py:119: FutureWarning: In a future version of Tavern, selecting for values to save in nested objects will have to be done as a JMES path query - see http://jmespath.org/ for more information

JMESPath.org 没有多大帮助,Tavern's documentation 也没有多大帮助。 'x-csrf-token' 字段没有嵌套在 'headers' 中,所以我不明白这个警告。我尝试了两种不同的类似 JMES 的语法,但都给了我“找不到密钥”的错误:

save:
  csrf: headers.x-csrf-token

save:
  headers:
    csrf: headers.x-csrf-token

Tavern 到底期待什么?

【问题讨论】:

    标签: yaml jmespath tavern


    【解决方案1】:

    JMESPath 不带引号的标识符不能包含连字符。您可以改用quoted identifier。试试:

    save:
      headers:
        csrf: '"x-csrf-token"'
    

    需要单引号来告诉 YAML 双引号是字符串的一部分。 JMESPath 中的双引号允许您包含标识符中允许的字符,例如连字符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-07-26
      • 1970-01-01
      • 2021-10-31
      • 2021-12-05
      • 1970-01-01
      • 2011-01-01
      • 2015-09-30
      相关资源
      最近更新 更多