Question about external function kwargs in requests
The document says external functions used in a request block should not take arguments.
https://tavern.readthedocs.io/en/latest/basics.html?highlight=external%20function#using-external-functions-for-other-things
Functions used in the
verify_response_withblock in the response block take the response as the first argument. Functions used anywhere else should take no arguments. This might be changed in future to be less confusing.
On the other hand, extra_kwargs in the request block works as expected and the same as in the response block.
- Version: Tavern
2.0.6
- name: send a dummy header
request:
url: http://httpbin.org/headers
method: GET
headers:
$ext:
function: utils:generate_message
extra_kwargs: # kwargs can be used!
person: Mike
from box import Box
def generate_message(person: "John"):
headers = {
"Dummy-Person-Header": person
}
return Box(headers)
(Full contents are in https://gist.github.com/Syuparn/34e26705e67a2240c1a2abfa119d8554)
Is this an expected use? Which does This might be changed in future to be less confusing. mean,
- functions in the request could not handle arguments in the older version, while in
2.0.6they can or - In
2.0.6functions can handle arguments but this is deprecated and the feature will be removed ?
This is just bad wording in the documentation, it basically just means that if your function expects extra args it won't work unless you explicitly put the arguments in extra_args or extra_kwargs. Will fix the documentation