在我的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”字段未嵌套在“标题”中,因此我不理解警告。我尝试了两种不同的类似于JMES的语法,但都给了我“无法找到关键字”错误:
save:
csrf: headers.x-csrf-token
save:
headers:
csrf: headers.x-csrf-token
Tavern在这里到底期望什么?
答案 0 :(得分:0)
JMESPath无引号的标识符不能包含连字符。您可以改用quoted identifier。试试:
save:
headers:
csrf: '"x-csrf-token"'
需要单引号告诉YAML,双引号是字符串的一部分。 JMESPath中的双引号允许您包含标识符中可能允许使用的字符,例如连字符。