Commit graph

38 commits

Author SHA1 Message Date
Jordan Borean
019452dda7
uri - fix traceback on multipart-form int value () 2021-04-16 11:09:31 -04:00
Florian Heiderich
8d6136eab9
uri - add ca_path parameter ()
* add changelog fragment for  (ca_path for uri)
* add integration tests for ca_path in the uri module
* return path of ca cert instead of its content
* connect to port 444 on self_signed_host
  and use quay.io/ansible/http-test-container:1.3.0
* state that the certificate in ca_path is used for validation
2021-02-05 09:40:52 -05:00
Jordan Borean
aee7a3ed68
Fix FreeBSD HTTP Kerberos setup () 2020-11-12 13:40:59 +10:00
Jordan Borean
caba47dd3f
Add support for GSSAPI/Kerberos to urls.py ()
* Add support for GSSAPI/Kerberos to urls.py

* Test out changes with the latest test container

* Get remote hosts working

* Fix up httptester_krb5_password reader

* Fix tests for opensuse and macOS

* Hopefully last lot of testing changes

* Dont do CBT on macOS

* Fixes from review
2020-10-13 14:16:07 +10:00
Jordan Borean
09c2475368
Update the tests to work with new httptester container () 2020-10-01 06:38:44 +10:00
Jack
80f09efd03
do not return the body even if it failed ()
* do not return the body even if it failed

* add some tests for this and rebase

* import test task

* ignore_errors when fails

Co-authored-by: Jack Zhang <jack.zhang@aspiraconnect.com>
2020-06-01 09:55:38 -04:00
Matt Martz
e0f25a2b1f
Strip no log values from module response keys. Fixes () 2020-05-21 16:17:57 -04:00
Matt Martz
b748edea45
Add multipart/form-data functionality ()
* Add multipart/form-data functionality

* Fix some linting issues

* Fix error message

* Allow filename to be provided with content

* Add integration test

* Update examples

* General improvements to multipart handling

* Use prepare_multipart for galaxy collection publish

* Properly account for py2 vs py3, ensuring no max header length

* Address test assumptions

* Add unit tests

* Add changelog

* Ensure to use CRLF instead of NL

* Ignore line-endings in fixture

* Consolidate code, add comment

* Bump fallaxy container version

* ci_complete
2020-05-20 15:44:01 -05:00
Matt Martz
8bd4e2a144 cert validation fixes - Attempt 2 ()
* Attempt 2 of cert validation fixes

* Remove unused code

* Cleanup the tmp cert using atexit

* Fix linting issues

* Only add SSLValidationHandler when not HAS_SSLCONTEXT

* Catch value errors on non PEM certs

* Only catch NotImplementedError to avoid masking issues

* set self._context even with PyOpenSSLContext for conformity

* Fix error building

* normalize how we interact with the context we create

* Remove unused code

* Address test for py3.7 message difference

* open_url should pass the ca_path through

* Account for new error in url lookup test

* Guard some code behind whether or not we are validating certs

* Make _make_context public

* Move atexit.register up to where the tmp file is created
2019-05-31 16:35:25 -04:00
Sam Doran
8f4f3750fe
Ensure uri module always returns status even on failure ()
- Also return url and update docs for other values to indicate they are only returned on success.
- Add integration tests
- Use info variable for common return values
- Use -1 as default status rather than None. This is lines up with with existing code in urls.py
- Add unit tests to ensure status and url are returned on failure
2019-05-23 10:17:17 -04:00
Martin Krizek
c6b40f4d40
register: fail when invalid var name is specified () 2019-05-17 11:02:03 +02:00
Martin Krizek
bafa291af9 uri: do not write the file after failure ()
* uri: do not write the file after failure

Fixes 

* Add changelog
2019-03-22 09:32:43 -05:00
Matt Clay
17ed39a009
Fix uri integration test uninstall of urllib3. () 2019-03-14 21:52:03 -07:00
Matt Clay
34b928d283 Remove conflicting urllib3 from pip in uri test.
The uri test will fail on centos6 if run after a test that installs urllib3 via pip unless it is uninstalled.
2019-03-14 18:00:13 -07:00
Dag Wieers
4e6c113bf0 uri/win_uri: Make method a free text field ()
* uri/win_uri: Make method a free text field

Since various interfaces introduce their own HTTP method (e.g. like
PROPFIND, LIST or TRACE) it's better to leave this up to the user.

* Fix HTTP method check in module_utils urls

* Add integration test for method UNKNOWN

* Clarify the change as requested during review
2019-02-28 15:55:18 -05:00
Pilou
7a3582d651 uri: check unexpected failure doesn't occur when file cannot be saved ()
* uri: fix TypeError when file can't be saved

Fix the following exception (and others):

    Traceback (most recent call last):
      File "/home/lilou/debug_dir/__main__.py", line 604, in <module>
        main()
      File "/home/lilou/debug_dir/__main__.py", line 554, in main
        write_file(module, url, dest, content, resp)
      File "/home/lilou/debug_dir/__main__.py", line 320, in write_file
        module.fail_json(msg="Destination dir '%s' not writable" % os.path.dirname(dest), **resp)
    TypeError: fail_json() got multiple values for keyword argument 'msg'

I would rather remove **resp from returned values but this module is
flagged as stableinterface.

* Static imports are more straight forward and preferred unless dynamic inclusion is required.
2019-02-04 10:29:05 -05:00
Matt Clay
d2a7cc0b9f Fix integration tests to support remote hosts. 2019-01-24 19:57:04 -08:00
Matt Clay
d048785640 Update requirements for urllib3 for python 2.6. 2018-10-16 14:08:46 -07:00
Matt Martz
961484e00d
Add src parameter for uri module that can be used in place of body. Supports binary files ()
* First pass at a src parameter that can be used in place of body. Supports binary files

* Add test for uri src body

* Bump version_added to 2.6

* Close the open file handle

* Add uri action plugin that handles src/remote_src

* Document remote_src

* Remove duplicate info about remote_src

* Bump version_added to 2.7
2018-05-31 11:43:00 -05:00
Dag Wieers
0fba72ce3c uri: Add form-urlencoded support to body_format ()
* 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 

* Various fixes

* Undo documentation improvements

No longer my problem

* Fix the remaining review comments
2018-05-17 13:18:18 -04:00
Matt Clay
b92ef8e54a
Use HTTPS instead of HTTP for httpbin tests. ()
The httpbin.org site is now redirecting HTTP to HTTPS.
2018-05-01 16:28:42 -07:00
Matt Martz
450cfa8776
Handle duplicate headers in the uri module ()
* Handle duplicate headers, and make it easier for users to use cookies, by providing a pre-built string

* Ensure proper cookie ordering, make key plural

* Add note about cookie sort order

* Add tests for duplicate headers and cookies_string

* Extend tests, normalize headers between py2 and py3

* Add some notes in test code

* Don't use AttributeError, use six.PY3. Use better names.
2018-04-10 09:26:51 -05:00
Dag Wieers
9bb1ee30bf Required changes to support redirects on HTTP 307/308 ()
* Required changes to support redirects on HTTP 307/308

This ensures HTTP 307 and 308 will redirect the request to the new
location without modification.

* Fix the unused newheaders reference

* Be more compliant

* Add integration tests for follow_redirects=all

* Improve other tests for new behaviour

* Make follow_redirects values more strict
2018-04-06 13:17:14 -05:00
Dag Wieers
800dad5bdf uri: Add redirect tests for none, safe, urllib2 and all ()
This is required if we want to ensure that  doesn't cause any
important behavioral changes.

This PR changes the uri module to support follow_redirects=urllib2

It also adds a better error message when the connection closes before
any data was returned.
2018-03-29 14:54:42 -04:00
Matt Clay
1fd9a616a4 Fix uri test on Python 2.6. 2018-03-19 23:11:38 -07:00
Matt Martz
b762eb2d92
Fix some TODOs to use generic_urlparse which allows proper netrc selection. Fixes () 2018-01-03 09:52:56 -06:00
Matt Martz
4fe08441be Deprecate tests used as filters ()
* Warn on tests used as filters

* Update docs, add aliases for tests that fit more gramatically with test syntax

* Fix rst formatting

* Add successful filter, alias of success

* Remove renamed_deprecation, it was overkill

* Make directory alias for is_dir

* Update tests to use proper jinja test syntax

* Update additional documentation, living outside of YAML files, to reflect proper jinja test syntax

* Add conversion script, porting guide updates, and changelog updates

* Update newly added uses of tests as filters

* No underscore variable

* Convert recent tests as filter changes to win_stat

* Fix some changes related to rebasing a few integration tests

* Make tests_as_filters_warning explicitly accept the name of the test, instead of inferring the name

* Add test for tests_as_filters_warning

* Update tests as filters in newly added/modified tests

* Address recent changes to several integration tests

* Address recent changes in cs_vpc
2017-11-27 17:58:08 -05:00
Matt Clay
a7d5492ea3 Fix github_issue test and enable in CI. 2017-09-01 14:13:34 -07:00
Matt Martz
621e27b5dd Urls client cert auth ()
* Build HTTPSClientAuthHandler more similarly to how HTTPSHandler works

* Add docs for new client cert authentication

* Support older versions of python

* Simplify logic

* Initial support for client certs in urls.py

* Add an extra test

* Add a get_url test for client cert auth

* Add additional test for client cert auth, with validation and ssl mismatch

* Skip assert when http tester not available

* Update version_added for new options
2017-04-07 09:54:37 -07:00
Matt Martz
13ac993d25 Fallback to old ssl_wrap_socket 2017-04-07 09:19:26 -07:00
Matt Martz
b4b76bab14 Update install deps for SNI tests 2017-04-07 09:19:26 -07:00
Matt Clay
93d9b04f1d Fix uri options test to work again. 2017-03-17 22:28:54 -07:00
Matt Martz
6e8e90ceb4 Warn when using the deprecated HEADER_ arguments ()
* Make sure the uri module warns about using the deprecated HEADER_ arguments, so that we can actually deprecate in a future version

* Use module.deprecate

* No need to de-dupe ourselves, looks like it is done somewhere I didn't initially see
2017-03-01 11:35:48 -05:00
Ansible Test Runner
ff1a732ffd Increase timeout for http server in uri test. 2017-01-24 14:20:19 -08:00
Matt Martz
d25a70846f Only add Content-Type if not specified in headers. Fixes ()
* Only add Content-Type if not specified in headers. Fixes 

* Update documentation to indicate body_format will not override Content-Type if specified in headers
2017-01-13 13:19:38 -05:00
bart2
cdb35f4ce2 Fixes - Digest authentication not working in uri module () 2016-12-21 18:11:42 -08:00
Toshio Kuratomi
c6b42028c4 Fixes for uri under python3 and local (non-httptester) testing 2016-12-13 15:46:07 -08:00
Matt Clay
75e4645ee7 Migrate Linux CI roles to test targets. () 2016-10-13 09:09:25 -07:00