Commit graph

54 commits

Author SHA1 Message Date
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
Matt Clay
4816bb4f43
More boilerplate fixes. ()
* Fix boilerplate in hacking dir.
* Fix boilerplate in docs dir.
* Fix boilerplate in integration tests.
* Fix boilerplate in examples.
2020-06-22 19:05:30 -07: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
Yanis Guenane
4fd2dce7f3
Testing: Add support for AIX platform () 2020-01-29 15:56:51 -08: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
906427caba
Add shippable/posix/group4/ for CI. () 2019-03-15 07:25:37 -07: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
6a0452559b Handle non-target file deps for integration tests.
Some integration test targets have dependencies on files outside
the `test/integration/targets/` directory tree. Changes to these
dependencies can result in unexpected test failures since they do
not trigger integration tests which depend on them.
2019-01-14 23:58:10 -08:00
Matt Clay
d048785640 Update requirements for urllib3 for python 2.6. 2018-10-16 14:08:46 -07:00
Matt Clay
4e489d1be8
Update Shippable integration test groups. ()
* Update Shippable integration test groups.
* Update integration test group aliases.
* Rebalance AWS and Azure tests with extra group.
* Rebalance Windows tests with another group.
2018-07-23 20:46:22 -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
5c124876fa Fix uri test on Python 2.6. 2018-05-16 14:59:24 -07:00
Matt Clay
c1f9efabf4
Overhaul httptester support in ansible-test. ()
- Works with the --remote option.
- Can be disabled with the --disable-httptester option.
- Change image with the --httptester option.
- Only load and run httptester for targets that require it.
2018-05-09 09:24:40 -07: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 Clay
7ea68a23c1 Disable failing tests. 2018-04-27 16:12:21 -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
Jordan Borean
a0178b79f1
win_uri: fixes ()
* win_uri: moved away from Invoke-WebRequest and fixed multiple issues

* fixes from review
2018-02-07 20:58:47 +11:00
Matt Clay
8ea0bfe9a3
Miscellaneous test fixes. ()
* Add missing pylint test for invalid path.
* Fix syntax in integration test.
* Use Write-Output in win_script test script.
* Fix pylint in explain mode.
2018-01-24 10:22:04 -08: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 Clay
c59e32469f Add Fedora Python 3 Docker images and fix tests. ()
* Add new Fedora docker images with Python 3.
* Use consistent env var for lookup test.
* Fix testing of virtualenv with Python 3.
* Fix docker_secret tests on Fedora 26.
* Add Python 3 support to Fedora postgresql test.
* Add Python 3 support to Fedora mysql tests.
* Fix uri test server for Python 3 on Fedora.
* Fix iso_extract test for Python 3 on Fedora.
* Add Python 3 support for Fedora to openssl tests.
* Fix dnf group test for Python 3 on Fedora.
* Use force with user deletion in become test.
2017-08-04 21:12:35 -07:00
Dag Wieers
0aba04fdad win_uri: Add integration tests, new functionality... ()
This is a cleanup of the win_uri module to make it feature-complete.

This PR includes:
- Added check-mode support
- Add as many options from the uri module as possible
  - Added creates
  - Added follow_redirects
  - Added maximum_redirection
  - Added password
  - Added removes
  - Added return_content
  - Added status_code
  - Added timeout
  - Added user
  - Added validate_certs
- Fixed list-handling for comma-separated strings
- Added basic integration tests (should come from uri module)
2017-06-19 17:30:08 +01:00
Dag Wieers
4efec414e7 test/: PEP8 compliancy ()
* test/: PEP8 compliancy

- Make PEP8 compliant

* Python3 chokes on casting int to bytes ()

But if we tell the formatter that the var is a number, it works
2017-05-30 18:05:19 +01: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
ac61f09203 Extra deps needed for building cryptography 2017-04-07 09:19:26 -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 Clay
9213d0c5b0 Fix and enable more tests for osx and freebsd. ()
* Fix `iterators` test for osx.
* Enable `git` test for osx.
* Enable `get_url` test for osx and freebsd.
* Remove unused SNI_URI from uri test.
* Use ansible hosted SNI host oustside docker.
* Enable `uri` test for osx and freebsd.
* Enable `gathering_facts` test for osx.
* Skip single task on osx until test is fixed.
2017-01-19 17:10:33 -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
Matt Clay
39f6368015 Update aliases file for uri integration test. 2016-12-14 20:36:50 -08:00