mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-10-24 04:54:00 -07:00
uri: Add form-urlencoded support to body_format (#37188)
* uri: Add form-urlencoded support to body_format This PR adds form-urlencoded support so the user does not need to take care of correctly encode input and have the same convenience as using JSON. This fixes #37182 * Various fixes * Undo documentation improvements No longer my problem * Fix the remaining review comments
This commit is contained in:
parent
0f16b26080
commit
0fba72ce3c
2 changed files with 141 additions and 34 deletions
|
|
@ -334,6 +334,62 @@
|
|||
register: result
|
||||
failed_when: result.json.headers['Content-Type'] != 'text/json'
|
||||
|
||||
- name: Validate body_format form-urlencoded using dicts works
|
||||
uri:
|
||||
url: https://{{ httpbin_host }}/post
|
||||
method: POST
|
||||
body:
|
||||
user: foo
|
||||
password: bar!#@ |&82$M
|
||||
submit: Sign in
|
||||
body_format: form-urlencoded
|
||||
return_content: yes
|
||||
register: result
|
||||
|
||||
- name: Assert form-urlencoded dict input
|
||||
assert:
|
||||
that:
|
||||
- result is successful
|
||||
- result.json.headers['Content-Type'] == 'application/x-www-form-urlencoded'
|
||||
- result.json.form.password == 'bar!#@ |&82$M'
|
||||
|
||||
- name: Validate body_format form-urlencoded using lists works
|
||||
uri:
|
||||
url: https://{{ httpbin_host }}/post
|
||||
method: POST
|
||||
body:
|
||||
- [ user, foo ]
|
||||
- [ password, bar!#@ |&82$M ]
|
||||
- [ submit, Sign in ]
|
||||
body_format: form-urlencoded
|
||||
return_content: yes
|
||||
register: result
|
||||
|
||||
- name: Assert form-urlencoded list input
|
||||
assert:
|
||||
that:
|
||||
- result is successful
|
||||
- result.json.headers['Content-Type'] == 'application/x-www-form-urlencoded'
|
||||
- result.json.form.password == 'bar!#@ |&82$M'
|
||||
|
||||
- name: Validate body_format form-urlencoded of invalid input fails
|
||||
uri:
|
||||
url: https://{{ httpbin_host }}/post
|
||||
method: POST
|
||||
body:
|
||||
- foo
|
||||
- bar: baz
|
||||
body_format: form-urlencoded
|
||||
return_content: yes
|
||||
register: result
|
||||
ignore_errors: yes
|
||||
|
||||
- name: Assert invalid input fails
|
||||
assert:
|
||||
that:
|
||||
- result is failure
|
||||
- "'failed to parse body as form_urlencoded: too many values to unpack' in result.msg"
|
||||
|
||||
- name: Test client cert auth, no certs
|
||||
uri:
|
||||
url: "https://ansible.http.tests/ssl_client_verify"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue