Commit Graph

322 Commits

Author SHA1 Message Date
Erik Johnson
4798187035
Improve reliability/idempotence of file.blockreplace state (2018.3 branch)
This makes the following changes:

- The `append_newline` argument to the `file.blockreplace`
  remote-execution function has been modified so that if its value is
  `None`, it only appends a newline when the content block does not end
  in one.
- A couple of fixes were made to newline handling. The existing code
  normalized the newlines in the content block, replacing them with
  os.linesep. However, when the file contains newlines that don't match
  the OS (i.e. POSIX newlines in a file on a Windows box, or Windows
  newlines on a Linux/Mac/BSD/etc. box), then we would still end up with
  mixed newlines. The line separator is now detected when we read in the
  original file, and the detected line separator is used when writing
  the content block. Additionally, the same newline mismatch was
  possible when appending/prepending the content block. This has been
  fixed by using a common function for appending, prepending, and
  replacing the content block.
- Support for the `append_newline` argument has been added to the
  `file.blockreplace` state. The default value for the state is `None`.
  A `versionchanged` has been added to the remote execution function to
  let users know that the Fluorine release will change the default value
  of that variable.
- 20 new integration tests have been written to test the
  `file.blockreplace` state.
2018-03-07 22:29:09 -06:00
Erik Johnson
1668a489c4
Update refrences to Oxygen codename to 2018.3.0 2018-02-21 21:47:41 -06:00
Erik Johnson
9d004f6512 Use mock 2.0.0 instead of unittest.mock on Python 3 (#2)
This preserves the custom mock_open we backported from unittest.mock,
but otherwise ditches unittest.mock as it does not have
MagicMock.assert_called in Python releases before 3.6.

This allows us to maintain a uniform mock version across all platforms
and Python releases.
2018-02-13 20:16:03 +01:00
Erik Johnson
293bdf2517
Merge pull request #45726 from rallytime/merge-oxygen
[oxygen] Merge forward from 2017.7 to oxygen
2018-01-28 13:05:00 -06:00
Nicole Thomas
2969d86237
Merge pull request #45735 from terminalmage/shellcase-debug-logging
Add debug logging to ShellCase functions
2018-01-28 08:27:20 -05:00
Erik Johnson
1cabf31a1f
Add debug logging to ShellCase functions
Some of these have been failing in ways which are not reproducible
locally. This adds debug logging so that we can check the
salt-runtests.log for the return data, to aid in troubleshooting.

NOTE: This also contains a fix for a bug in the CLI output handler that
I think may have a chance of fixing some of these odd failures.
2018-01-27 20:55:34 -06:00
Erik Johnson
f60183b95c
Use bytestrings for struct.pack/unpack
https://github.com/saltstack/salt/pull/45687 and
https://github.com/saltstack/salt/pull/45725 fixed problems with older
Python 2 versions interacting with the struct module, since
unicode_literals turned the format strings to unicode and older Python 2
releases can't accept a unicode format string. Since Python 2 and 3 both
support using bytestrings for the format strings, this commit makes sure
we are using bytestrings everywhere else we are using struct.pack/unpack.
2018-01-27 17:34:16 -06:00
rallytime
0ad101d560
Merge branch '2017.7' into 'oxygen'
Conflicts:
  - doc/man/salt.7
  - salt/modules/git.py
  - salt/modules/pacman.py
  - salt/states/git.py
  - tests/integration/modules/test_mac_user.py
  - tests/support/parser/__init__.py
2018-01-26 17:27:03 -05:00
Erik Johnson
d6d7da5c90
Replace all usage of six.b
It can't be trusted to produce bytes, it returns unicode when a unicode
string is passed.
2018-01-24 09:17:28 -06:00
Erik Johnson
6aa865cf54
Fix unnecessary/incorrect usage of six.binary_type 2018-01-22 11:17:06 -06:00
Nicole Thomas
12c0f99e8c
Merge pull request #45293 from terminalmage/py3-acl-auth-netapi
[PY3] Add unicode_literals to acl, auth, and netapi modules
2018-01-09 16:32:59 -05:00
Daniel Wallace
a8341fea01
clean up for windows tests for kitchen-salt 2018-01-06 17:14:46 -07:00
Daniel Wallace
e2824a7253
fix py3 tests 2018-01-05 13:36:08 -07:00
Erik Johnson
49dd5b32e9
[PY3] Add unicode_literals to acl, auth, and netapi modules 2018-01-05 10:31:11 -06:00
Erik Johnson
1dc6e79638
[PY3] Add unicode_literals to ext_pillar modules 2018-01-04 08:46:40 -06:00
Erik Johnson
002aa88a97
Replace yaml usage with a helper to ensure unicode is handled properly
Without allow_unicode=True, unicode characters are processed through the
str representer and on Python 2 are dumped as a Unicode code point (i.e.
a literal \u0414). This commit makes allow_unicode=True the default in
our salt.utils.yamlloader.safe_dump() helper. It also adds a new
salt.utils.yamlloader.dump() helper which wraps yaml.dump() and also
makes allow_unicode=True the default.

To make importing and using our custom yaml loader/dumper easier, a
convenience module called salt.utils.yaml has been added, which does a
wildcard import from both salt.utils.yamldumper and
salt.utils.yamlloader.

Refs to yaml.load/dump and yaml.safe_load/safe_dump have been updated to
salt.utils.yaml, to ensure that unicode is handled properly.
2018-01-03 14:14:21 -06:00
Erik Johnson
7b13a7df8b
Replace json module usage with a helper to ensure unicode content is handled properly
This adds wrappers for json.dump{,s} which disable `ensure_ascii` by
default.
2017-12-27 09:30:58 -06:00
rallytime
9ded5e1cbb
Merge branch '2017.7' into 'oxygen'
Conflicts:
  - salt/config/__init__.py
  - salt/grains/core.py
  - salt/modules/win_lgpo.py
  - salt/returners/mysql.py
  - salt/states/libcloud_dns.py
  - tests/integration/runners/test_runner_returns.py
  - tests/unit/grains/test_core.py
2017-12-21 15:58:08 -05:00
Daniel Wallace
d0586013eb
fix pylint 2017-12-21 10:40:54 -07:00
Daniel Wallace
59e2e56d13
chmod the xml files before trying to copy 2017-12-21 08:17:10 -07:00
Daniel Wallace
a5c1410e23
catch IOError when copying xml files back 2017-12-20 18:26:18 -07:00
Michael Calmer
744e698689
adapt tests to reflect reality
When CherryPy run with python3 it reads "bytes" from the wire.
In case of python2 BytesIO == StringIO, so nothing should change.

This change will do the same to make unit tests reflect reality.
2017-12-20 06:59:56 -05:00
Erik Johnson
7d6b679ac4
Fix fake importer for Python 3
Python 3 does not appear to pass all values to the `__import__` builtin
when they do not differ from the defaults. Therefore, the fake import
fails because of missing positional args.

This fix simply uses the defaults from Python 2 and 3's `__import__`
builtin.
2017-12-19 12:09:36 -06:00
Erik Johnson
15296e59a5
Add debug logging to SSHCase 2017-12-19 12:09:35 -06:00
Erik Johnson
8cdb9ea54f
[PY3] Add print_function import to files with unicode_literals already added
This makes the 2.x usage invalid syntax and forces the use of print as a
function. This adds the import to the files which I've updated in the
last couple of days but forgot to add it.
2017-12-15 12:14:18 -06:00
Nicole Thomas
ae8dd2e202
Merge pull request #44982 from terminalmage/docker-unicode
[PY3] Add unicode_literals to docker state/execution modules
2017-12-14 11:03:15 -05:00
Erik Johnson
5e1f75aab0
[PY3] Add unicode_literals to docker state/execution modules 2017-12-13 22:49:23 -06:00
Daniel Wallace
a7df9c3da3
fix py3 tests 2017-12-12 12:47:31 -07:00
rallytime
db5866d097
Update old utils paths to new utils paths 2017-12-11 18:43:33 -05:00
rallytime
08c71f13e4
Merge branch '2017.7' into 'oxygen'
Conflicts:
  - doc/ref/configuration/minion.rst
  - doc/topics/thorium/index.rst
  - salt/beacons/__init__.py
  - salt/client/mixins.py
  - salt/client/ssh/wrapper/state.py
  - salt/daemons/masterapi.py
  - salt/grains/extra.py
  - salt/minion.py
  - salt/modules/cron.py
  - salt/modules/file.py
  - salt/modules/mac_user.py
  - salt/modules/napalm_network.py
  - salt/modules/state.py
  - salt/modules/win_file.py
  - salt/modules/win_pkg.py
  - salt/proxy/dummy.py
  - salt/state.py
  - salt/states/file.py
  - salt/states/lxc.py
  - salt/utils/__init__.py
  - salt/utils/schedule.py
  - tests/integration/modules/test_file.py
  - tests/integration/modules/test_groupadd.py
  - tests/integration/ssh/test_state.py
  - tests/integration/states/test_file.py
  - tests/unit/daemons/test_masterapi.py
  - tests/unit/grains/test_core.py
  - tests/unit/modules/test_disk.py
  - tests/unit/modules/test_napalm_network.py
  - tests/unit/modules/test_state.py
  - tests/unit/test_minion.py
  - tests/unit/utils/test_process.py
2017-12-11 18:24:41 -05:00
Erik Johnson
272044c688
Roll back use of explicit unicode literals 2017-12-10 17:41:45 -06:00
Nicole Thomas
53eee476ac
Merge pull request #44638 from terminalmage/new-docker-hotness
Many improvements to docker network and container states
2017-12-07 15:50:55 -05:00
twangboy
f8110713f8
Use binary instead of unicode for loglevel 2017-12-06 21:31:43 -07:00
Erik Johnson
64aa4fbbec
Many improvements to docker network and container states
Much Improved Support for Docker Networking
===========================================

The `docker_network.present` state has undergone a full rewrite, which
includes the following improvements:

Full API Support for Network Management
---------------------------------------

The improvements made to input handling in the
`docker_container.running` state for 2017.7.0 have now been expanded to
docker_network.present`.  This brings with it full support for all
tunable configuration arguments.

Custom Subnets
--------------

Custom subnets can now be configured. Both IPv4 and mixed IPv4/IPv6
networks are supported.

Network Configuration in :py:func:`docker_container.running` States
-------------------------------------------------------------------

It is now possible to configure static IPv4/IPv6 addresses, as well as
links and labels.

Improved Handling of Images from Custom Registries
==================================================

Rather than attempting to parse the tag from the passed image name, Salt
will now resolve that tag down to an image ID and use that ID instead.

Due to this change, there are some backward-incompatible changes to
image management. See below for a full list of these changes.

Backward-incompatible Changes to Docker Image Management
--------------------------------------------------------

Passing image names to the following functions must now be done using separate
`repository` and `tag` arguments:

- `docker.build`
- `docker.commit`
- `docker.import`
- `docker.load`
- `docker.tag`
- `docker.sls_build`

Additionally, the `tag` argument must now be explicitly passed to the
`docker_image.present` state, unless the image is being pulled from a
docker registry.
2017-12-06 12:12:25 -06:00
Ch3LL
61ac5cf157
Add spm -y and -f arg integration tests 2017-12-04 16:06:14 -05:00
Anthony Shaw
3611e08a27
import absolute paths 2017-11-29 10:00:41 +11:00
Anthony Shaw
a029f70cff
merge inbound, resolve conflict and remove unfinished state test module 2017-11-29 08:21:53 +11:00
Anthony Shaw
7b3ea6f5b9
mute false negative on linter 2017-11-25 19:03:23 +11:00
Anthony Shaw
0a34c12147
tests for napalm grains module, still issue to resolve on is_proxy 2017-11-25 05:47:27 +11:00
Anthony Shaw
38eb0dd000
more test fixtures 2017-11-24 17:14:14 +01:00
Anthony Shaw
c7106d646c
complete tests for napalm_probes 2017-11-24 16:48:06 +01:00
Anthony Shaw
136816c109
fix missing commas in docstrings 2017-11-24 16:36:38 +01:00
Anthony Shaw
452a8965a3
complete coverage for NTP module 2017-11-24 16:34:16 +01:00
Ch3LL
69134e83ca
Change order of local kwarg in run_call method 2017-11-22 15:50:29 -05:00
Ch3LL
b3b5ecc6ff
Add pillar.items test for masterless 2017-11-22 15:40:57 -05:00
rallytime
052b13c98e
Merge branch '2017.7' into 'develop'
Conflicts:
  - salt/cli/daemons.py
  - salt/client/ssh/__init__.py
  - salt/modules/win_pkg.py
  - salt/netapi/rest_cherrypy/app.py
  - salt/proxy/fx2.py
  - salt/utils/__init__.py
  - salt/utils/jinja.py
  - salt/utils/napalm.py
  - salt/utils/path.py
  - salt/utils/verify.py
  - tests/integration/modules/test_saltutil.py
  - tests/integration/states/test_service.py
  - tests/unit/utils/test_verify.py
2017-11-22 12:36:03 -05:00
Anthony Shaw
dfdb43780d
coverage for ntp testing 2017-11-22 11:36:22 +01:00
Anthony Shaw
5ce67c8a7b
setup all tests for napalm_acl module 2017-11-22 09:01:26 +00:00
Anthony Shaw
cd8d87c61f
create a common module for napalm tests, setup napalm_bgp tests 2017-11-22 08:37:56 +00:00
twangboy
47114fdb30
Pass root_dirs to the win_verify_env function
Remove while loop that was hanging when `salt` wasn't in the path
Add salt.util.path.safe_path function to check for unsafe paths
Pass root_dir to all calls to `verify_env`
2017-11-13 13:05:23 -07:00
rallytime
4e2280157a
Merge branch '2017.7' into 'develop'
Conflicts:
  - .kitchen.yml
  - tests/unit/test_doc.py
  - tests/unit/utils/test_cloud.py
2017-11-13 12:27:59 -05:00
Ch3LL
308596ac8d
Add salt-ssh raw integration tests 2017-11-10 14:47:38 -05:00
Ch3LL
8089a885c2
add wipe function to other run_ssh method 2017-11-10 10:48:31 -05:00
Ch3LL
faef0886a7
Add state tests and state request system to salt-ssh 2017-11-10 10:48:30 -05:00
rallytime
2c052e34b3
Merge branch '2017.7' into 'develop'
Conflicts:
  - .gitignore
  - salt/modules/win_lgpo.py
  - salt/utils/__init__.py
  - tests/integration/spm/test_build.py
  - tests/unit/test_pydsl.py
2017-11-05 20:28:51 -07:00
Mike Place
1412a42f0e
Merge pull request #44070 from gtmanfred/kitchen
begin adding kitchen-salt into the test suite
2017-11-02 15:55:33 -06:00
Nicole Thomas
b2b0c770a4
Merge pull request #44279 from rallytime/merge-2017.7
[2017.7] Merge forward from 2016.11 to 2017.7
2017-10-27 12:17:18 -04:00
Erik Johnson
bd5b9dd0aa Merge pull request #44291 from Ch3LL/pillar_test
add saltutil.refresh_pillar test
2017-10-27 10:19:42 -05:00
Ch3LL
34e2955445
add saltutil.refresh_pillar test 2017-10-25 15:56:49 -04:00
rallytime
8237f45a46
Add print_function to __future__ import list 2017-10-25 14:54:03 -04:00
Ch3LL
03b5c4bc6d
add spm integration tests for remove and build 2017-10-25 12:09:51 -04:00
rallytime
1c3cb5c6a4
Merge branch '2016.11' into '2017.7'
Conflicts:
  - .gitignore
  - tests/unit/states/test_file.py
2017-10-25 10:04:08 -04:00
rallytime
8a1c575ae5
Update salt.utils.fopen calls to new salt.utils.files.fopen path 2017-10-25 09:59:04 -04:00
rallytime
28343f0120
Merge branch '2017.7' into 'develop'
Conflicts:
  - salt/modules/git.py
2017-10-25 09:54:37 -04:00
Daniel Wallace
56a3ad8f68
fix pylint comments 2017-10-24 12:18:27 -06:00
Daniel Wallace
4add666db1
add comment to Gemfile and move copyartifacts
moved copyartifacts.py to tests/support

Also added a comment to the Gemfile that this is only used to run the testsuite with kitchen-salt
2017-10-24 12:01:57 -06:00
Ch3LL
4729ccd32b
Add multiple spm integration tests 2017-10-23 17:13:32 -04:00
rallytime
2617cf851f
Merge branch '2017.7' into 'develop'
Conflicts:
  - salt/modules/aptpkg.py
  - salt/utils/win_functions.py
  - tests/unit/states/test_mount.py
2017-10-20 10:44:29 -04:00
Nicole Thomas
f0175623ed Merge branch 'develop' into ssh_known_hosts_improvements 2017-10-19 13:44:29 -04:00
Ch3LL
cd79e9444e
remove unneded kwarg 2017-10-18 17:21:52 -04:00
Ch3LL
1541376c4f
Add spm build test 2017-10-18 17:15:42 -04:00
Daniel Wallace
7410ffd92a
add first kitchen test 2017-10-17 14:59:10 -06:00
rallytime
c0f16dae74
Merge branch '2017.7' into 'develop'
Conflicts:
  - doc/topics/tutorials/index.rst
  - salt/crypt.py
  - salt/modules/cmdmod.py
  - salt/modules/grains.py
  - salt/pillar/git_pillar.py
  - salt/roster/clustershell.py
  - tests/unit/states/test_augeas.py
  - tests/unit/utils/test_utils.py
2017-10-16 15:26:19 -04:00
Erik Johnson
877abb89d0
Complete the salt.utils refactor
This moves the remaining 30 functions from salt.utils to new locations.
2017-10-15 09:43:31 -05:00
Erik Johnson
2d4d8fa9c8
Convert "Can be removed" lines into TODO lines 2017-10-13 09:29:03 -05:00
Ch3LL
d2e91c33bd
Add spm shell tests 2017-10-12 15:31:48 -04:00
Erik Johnson
8b16300495
Fix some regressions in recent legacy git_pillar deprecation
These didn't get caught in PR 42823 because of how we invoke the
git_pillar code. Firstly, the "pillar" argument needed to stay. This is
because even though we're not using it, _external_pillar_data() is still
passing it now that git_pillar is not specially invoked there.
Secondly, since the input comes in as a list, and _external_pillar_data
uses single-asterisk expansion, the repos are passed separately when
they should be passed as a single list. To fix these issues, I've done
the following:

1. Re-introduced the "pillar" argument in git_pillar's ext_pillar
   function.
2. Changed the "pillar" variable to avoid confusion with the (unused)
   "pillar" argument being passed in.
3. Instead of git_pillar accepting the repos as a list, the ext_pillar
   function now uses single-asterisk expansion to make it conform with
   how _external_pillar_data() invokes it.
2017-09-26 16:12:55 -05:00
Alexei Pope Lane
ad80801d0f Improvements to SSH known_hosts module and state. 2017-09-19 13:28:48 +10:00
rallytime
5901b10c14 Remove deprecated Legacy Git Pillar code 2017-08-23 16:49:58 -04:00
Erik Johnson
3184168365 Use explicit unicode strings + break up salt.utils
This PR is part of what will be an ongoing effort to use explicit
unicode strings in Salt. Because Python 3 does not suport Python 2's raw
unicode string syntax (i.e. `ur'\d+'`), we must use
`salt.utils.locales.sdecode()` to ensure that the raw string is unicode.
However, because of how `salt/utils/__init__.py` has evolved into the
hulking monstrosity it is today, this means importing a large module in
places where it is not needed, which could negatively impact
performance. For this reason, this PR also breaks out some of the
functions from `salt/utils/__init__.py` into new/existing modules under
`salt/utils/`. The long term goal will be that the modules within this
directory do not depend on importing `salt.utils`.

A summary of the changes in this PR is as follows:

* Moves the following functions from `salt.utils` to new locations
  (including a deprecation warning if invoked from `salt.utils`):
  `to_bytes`, `to_str`, `to_unicode`, `str_to_num`, `is_quoted`,
  `dequote`, `is_hex`, `is_bin_str`, `rand_string`,
  `contains_whitespace`, `clean_kwargs`, `invalid_kwargs`, `which`,
  `which_bin`, `path_join`, `shlex_split`, `rand_str`, `is_windows`,
  `is_proxy`, `is_linux`, `is_darwin`, `is_sunos`, `is_smartos`,
  `is_smartos_globalzone`, `is_smartos_zone`, `is_freebsd`, `is_netbsd`,
  `is_openbsd`, `is_aix`
* Moves the functions already deprecated by @rallytime to the bottom of
  `salt/utils/__init__.py` for better organization, so we can keep the
  deprecated ones separate from the ones yet to be deprecated as we
  continue to break up `salt.utils`
* Updates `salt/*.py` and all files under `salt/client/` to use explicit
  unicode string literals.
* Gets rid of implicit imports of `salt.utils` (e.g. `from salt.utils
  import foo` becomes `import salt.utils.foo as foo`).
* Renames the `test.rand_str` function to `test.random_hash` to more
  accurately reflect what it does
* Modifies `salt.utils.stringutils.random()` (née `salt.utils.rand_string()`)
  such that it returns a string matching the passed size. Previously
  this function would get `size` bytes from `os.urandom()`,
  base64-encode it, and return the result, which would in most cases not
  be equal to the passed size.
2017-08-08 13:33:43 -05:00
rallytime
ccf790a83f Update all references for moved functions to use "files" util
- fopen
- flopen
- fpopen
- safe_rm
- is_empty
- is_fcntl_available
2017-07-18 10:31:01 -06:00
rallytime
8d960d463a Merge branch '2017.7' into 'develop'
Conflicts:
  - salt/grains/core.py
2017-07-06 17:42:30 -06:00
Erik Johnson
d942752e95 Fix usage of assert_called_once in Python 3 < 3.6
This is a more complete fix which builds upon 41c65b0 and covers all
refs to assert_called_once in the suite.
2017-07-03 09:30:12 -05:00
rallytime
4a7073ac79 Add generate_random_name function to tests helpers
This function is used identically in every cloud provider test file. Let's add
it to a more central place and make it more DRY. Might be useful in other testing
places as well.
2017-06-29 15:43:03 -06:00
Dmitry Kuzmenko
e01e566779 Minor: show full dict diffs if test fails. 2017-06-27 16:22:09 +03:00
Daniel Wallace
05f2c66604 handle bytes strings in mock_open 2017-06-15 22:43:40 -06:00
Daniel Wallace
4f7c6d1161 use our own mock_open
test.support.mock.mock_open specifies a side effect so that if you constantly
read a mocked open call, it will only iterate through it once, and then after
it will appear as if the end of the file has been reached.

This is needed for salt.modules.cp.push to be tested correctly.
2017-06-15 17:50:35 -06:00
Mike Place
b12611d122 Merge pull request #41617 from cro/n_proxy_tests
Port salt-proxy tests to the testsuite changes in Nitrogen.
2017-06-15 12:07:29 -05:00
Gareth J. Greenaway
53a216378c Fixing the last text failure. 2017-06-09 09:16:09 -06:00
Gareth J. Greenaway
4d3399c6c4 Couple more typos, assert not asset. 2017-06-09 09:16:09 -06:00
Gareth J. Greenaway
14a903ef61 Fixing typo in assertSaltTrueReturn, assertSaltFalseReturn and assertSaltNoneReturn. 2017-06-09 09:16:09 -06:00
Gareth J. Greenaway
a531d01b26 Updating the assert tests for develop based on changes from 41569. 2017-06-09 09:16:09 -06:00
Erik Johnson
846200f11e Include terminate_process_list in import 2017-06-08 00:24:53 -05:00
C. R. Oldham
4540f82aaa Port salt-proxy tests to the testsuite changes in Nitrogen. 2017-06-06 13:49:16 -06:00
Daniel Wallace
f309bae8b4 Make sure runtests_engine is ASCII text
If this is has any unicode characters in it, it won't load on systems that do
not default to a unicode locale.

find . -type f | while read line; do ret=$(file $line); if [[ $ret == *UTF-8* && $line == *.py ]]; then echo $line; fi; done

The above will list all files that have unicode characters in it and won't load
with locale set to C or POSIX
2017-06-05 17:30:28 -06:00
rallytime
8dfa8d1d19 Pass the fingerprint_hash_type through for gitfs sshd tests 2017-05-11 12:29:51 -06:00
Nicole Thomas
2bf02fad81 Merge pull request #41050 from terminalmage/git_pillar-tests
Fix git_pillar integration tests on Arch
2017-05-03 16:53:31 -06:00
Erik Johnson
f77393b80d Skip git_pillar integration tests on cent6
Cent6 has too old of a version of git to handle the make_repo func that
spawns the git repos used in these tests.
2017-05-03 16:36:36 -05:00
Erik Johnson
a94d081004 Add check for git-http-backend
This allows for more graceful test failures when the libexec dir is
different from what the test class determines it should be.
2017-05-03 15:16:16 -05:00
Erik Johnson
33515f6a14 Fix git_pillar integration tests on Arch
The location of the git-http-backend is within /usr/lib instead of
/usr/libexec.

This also uncomments a line that was commented out for troubleshooting
purposes.
2017-05-03 14:49:14 -05:00
twangboy
c7d164423e Increase timeout of run_function 2017-05-02 16:01:06 -06:00
Erik Johnson
39157b40ed Fix some git_pillar integration test failures
For some reason these were not failing when I opened #40777, but now
that the PR is merged are failing for PR builds (as well as locally in
my test env). This fixes those failures.
2017-05-01 17:13:42 -05:00
Mike Place
f766c97e26 Merge pull request #40777 from terminalmage/issue39349
Add git_pillar integration tests
2017-05-01 13:51:19 -06:00
Erik Johnson
402be207b2 Skip Pygit2 tests until EPEL fixes pygit2/libgit2 version mismatch
We can revert this commit once they get the updated pygit2 pushed to
EPEL stable.
2017-04-28 13:25:02 -05:00
Pedro Algarvio
7b503e562b
Use setUpClass instead of __init__ 2017-04-28 13:33:37 +01:00
Pedro Algarvio
0ae04c01ef
Delete all attributes even strings, boolean, integers 2017-04-28 13:33:37 +01:00
Pedro Algarvio
88627d312f
Write the generated configuration into a config file 2017-04-28 13:33:36 +01:00
Pedro Algarvio
80b80e5416
Fix cherrypy memory leakage
* Clean its event/signal bus since our tests don't rely on those.
* No test class level dictionaries
2017-04-28 13:33:35 +01:00
Pedro Algarvio
41df7eca96
Use setUpClass instead of __init__ 2017-04-28 13:33:31 +01:00
Erik Johnson
9f27f362ca Add HTTP git_pillar integration tests for pygit2
Also work around ssh auth issues in Ubuntu
2017-04-27 18:20:18 -05:00
Erik Johnson
9e6361c6c8 Add GitPython HTTP git_pillar tests 2017-04-27 00:48:24 -05:00
Erik Johnson
3881b6e0f3 Prepare git_pillar test code for adding HTTP tests
This further abstracts some of the setup and teardown code so it can be
used for git-over-http tests.

It also moves the code that was originally added to the archive
state integration tests to create a local http server into
salt.support.helpers so that it can be more easily and portably used.
2017-04-24 11:00:39 -05:00
Pedro Algarvio
eb588c772a
Add missing futures import 2017-04-05 23:16:52 +01:00
Pedro Algarvio
cd1f7ba629
Let's use the system temp dir as it was to see if it fixes the test failure 2017-04-05 00:34:39 +01:00
Pedro Algarvio
c3417213d7
Make sure the socket's used are closed 2017-04-04 19:28:06 +01:00
Pedro Algarvio
61003bca0a
Take care of resource leakage on tests 2017-04-04 18:58:20 +01:00
Pedro Algarvio
42e35e13cc
Use mock to patch 2017-04-04 18:58:20 +01:00
Pedro Algarvio
008f0016e2
Make sure we close the spooled temporary file 2017-04-04 18:58:19 +01:00
Pedro Algarvio
104a2fb30c
Keep the same exception raised before the move 2017-04-04 18:04:39 +01:00
Pedro Algarvio
6a638620ba
Move base test case modules to tests.support.case 2017-04-04 18:04:39 +01:00
Pedro Algarvio
9af2ca8823
No need to load all modules docs.
This should reduce memory usage as well as speeding up the decorator
2017-04-04 18:04:38 +01:00
Pedro Algarvio
b94992f544
Some more RUNTIME_CONFIGS and RUNTIME_VARS fixes 2017-04-04 18:04:38 +01:00
Pedro Algarvio
8031ac0209
Move mixins to tests.support.mixins.
The adapted config mixin get config methods are not static methods
2017-04-04 17:29:34 +01:00
Pedro Algarvio
8056479853
This argument is not required when used as a ctx manager 2017-04-01 14:26:11 +01:00
Pedro Algarvio
174625618a
Add mixin to assert XML equality 2017-04-01 14:22:58 +01:00
Pedro Algarvio
9a11538b54
Stop using deprecated TestCase methods 2017-04-01 14:22:57 +01:00
Pedro Algarvio
9cf1b37b54
Take care of some more deprecated TestCase methods 2017-04-01 14:22:57 +01:00
Pedro Algarvio
f82fa73fd7
Pylint disable 2017-04-01 14:22:55 +01:00
Pedro Algarvio
090041d674
Allow patching sys.modules with mocked modules 2017-03-28 19:04:04 +01:00
Pedro Algarvio
7c9460b719
Reduce complexity while still allowing multiple loader modules to be mocked
This also goes in par with the effort to reduce memory usage since we no
longer have any class attributes attached to the test classes.
2017-03-28 19:02:51 +01:00
Pedro Algarvio
e7768705f9
Allow passing different loader_module_globals per loader_module 2017-03-28 19:02:51 +01:00
Pedro Algarvio
30f62f22ec
Simplify the mock mixin required work
This approach does not require the user to call `super().setUp()`
2017-03-28 19:00:51 +01:00
twangboy
72cb96a642 Fix parser for windows... again... 2017-03-23 12:24:26 -06:00
twangboy
fd4beaa856 Use Py2 check instead of Py3 check 2017-03-22 13:51:52 -06:00
twangboy
9c8ad6d365 Detect py3 before decode 2017-03-22 13:37:50 -06:00
twangboy
8eefbe8111 Decode test names in names-file 2017-03-21 17:12:18 -06:00
Pedro Algarvio
6fe53339ce
Gate class definitions 2017-03-11 19:46:23 +00:00
Pedro Algarvio
992a8c7294
Don't hardcode the webserver port number 2017-03-11 16:00:28 +00:00
Pedro Algarvio
0cb46f0eb8
Several enhancements to the mocked loader module mixin
Allows patching more than one loader module.
Allows auto-loading the minion functions which will get namespaced with
the globals used to patch the loader module(s).
2017-03-09 19:31:15 +00:00
Pedro Algarvio
dd53f055b9
Code cleanup and make sure the beacons config file is deleted after testing 2017-03-09 19:29:16 +00:00
Pedro Algarvio
a429b652dc
Proxy the .fileno() method.
This avoids tracebacks when daemonizing code which is running under the XMLRunner:
```
23:22:46 Traceback (most recent call last):
23:22:47   File "/testing/salt/utils/process.py", line 644, in _run
23:22:47     return self._original_run()
23:22:47   File "/usr/lib64/python3.4/multiprocessing/process.py", line 93, in run
23:22:47     self._target(*self._args, **self._kwargs)
23:22:47   File "/testing/salt/client/mixins.py", line 464, in _proc_function
23:22:47     salt.utils.daemonize()
23:22:47   File "/testing/salt/utils/__init__.py", line 502, in daemonize
23:22:47     os.dup2(dev_null.fileno(), sys.stdout.fileno())
23:22:47 io.UnsupportedOperation: fileno
23:22:47 Process SignalHandlingMultiprocessingProcess-2:
23:22:47 Traceback (most recent call last):
23:22:47   File "/usr/lib64/python3.4/multiprocessing/process.py", line 254, in _bootstrap
23:22:47     self.run()
23:22:47   File "/testing/salt/utils/process.py", line 644, in _run
23:22:47     return self._original_run()
23:22:47   File "/usr/lib64/python3.4/multiprocessing/process.py", line 93, in run
23:22:47     self._target(*self._args, **self._kwargs)
23:22:47   File "/testing/salt/client/mixins.py", line 464, in _proc_function
23:22:47     salt.utils.daemonize()
23:22:47   File "/testing/salt/utils/__init__.py", line 502, in daemonize
23:22:47     os.dup2(dev_null.fileno(), sys.stdout.fileno())
23:22:47 io.UnsupportedOperation: fileno
```
2017-03-09 19:29:16 +00:00
Pedro Algarvio
0a66eac8ad
Ditch initial double forward slashes 2017-03-08 18:34:35 +00:00
Pedro Algarvio
c09f5e49ff
Absolute paths 2017-03-08 18:34:34 +00:00
Pedro Algarvio
36b18864e5
Reuse the existing tests support paths module 2017-03-08 18:34:34 +00:00
Pedro Algarvio
70c0a10666
Properly handle bytes 2017-03-08 18:34:33 +00:00
Pedro Algarvio
ff3faf56fb
Catch AttributeError 2017-03-08 18:34:33 +00:00
Pedro Algarvio
df942bc082
Add a repeat decorator to retry passing tests N times until it fails 2017-03-08 18:34:33 +00:00
Pedro Algarvio
07d0a5ed20
Cleanup after ourselves 2017-03-08 18:34:32 +00:00
Pedro Algarvio
ad4430249f
Don't complain about basic python types 2017-03-08 18:34:31 +00:00
Pedro Algarvio
0604fdeb8b
Don't warn if the attributes are set to None 2017-03-07 12:23:17 +00:00
Pedro Algarvio
46ba8704cd
Default to showing CPU and MEM, and optionally zombies 2017-03-07 12:23:17 +00:00
Pedro Algarvio
06c77b00d8
Also make sure we cleanup any setUpClass left over attributes 2017-03-07 12:23:17 +00:00
Pedro Algarvio
fd7d665f67
Enable SHOW_PROC just to get some insight. This will be removed before merge. 2017-03-07 12:23:16 +00:00
Pedro Algarvio
ca6084ea64
A more brute force approach to try to reduce memory usage on test runs.
We just keep a record of all the test case class attributes prior to
running the test and then just delete it afterwards.
We also issue a warning log message to tell the users how to cleanup
such references.
2017-03-07 12:23:16 +00:00
Pedro Algarvio
7dc6b64689
No need to call .keys() when iterating a dictionary 2017-03-06 14:42:31 +00:00
Pedro Algarvio
41543bba99
Disable pylint blacklisted-external-module 2017-03-06 14:35:18 +00:00
Pedro Algarvio
ffec7dc299
Lint fixes 2017-03-06 14:35:16 +00:00
Pedro Algarvio
140b97ee8b
We need __version__ in the tests.support.mock scope 2017-03-06 14:35:12 +00:00
Pedro Algarvio
3b0b60dd9f
Error out when the path passed is not valid tests module 2017-03-03 12:41:27 +00:00
Pedro Algarvio
cb293f2f6d Merge pull request #39649 from s0undt3ch/features/py3
Moar Py3
2017-03-02 21:16:51 +00:00
Pedro Algarvio
5e3309d5f8
Let's use the skip_if_not_root decorator instead 2017-03-02 19:58:10 +00:00
Pedro Algarvio
96bcaf5365
The order is shady under Py3
/cc @cachedout @rallytime
2017-03-02 19:56:05 +00:00
Pedro Algarvio
7b4d849540
Moved some test supporting modules to tests/support
Previously they were in tests/utils which also had test case modules.
2017-03-02 19:56:05 +00:00
Pedro Algarvio
661b6416b7
Allow passing a test module path to runtests.py to run its tests
Example:

```
python tests/runtests.py -v tests/integration/states/test_alternatives.py
```
2017-03-02 19:12:43 +00:00
Pedro Algarvio
9711f65d70
Try to reduce memory consumption during full test runs 2017-03-02 18:13:54 +00:00
Pedro Algarvio
ab83cced63
Child processes termination cleanup 2017-03-01 01:33:07 +00:00
Pedro Algarvio
40a64191a1
Absolute imports and A LOT of code cleanup. 2017-03-01 01:33:07 +00:00
Pedro Algarvio
3beb3fb801
Move whatever we need from salttesting to salt.
Let's drop the salttesting dependency cycle.
2017-02-28 22:52:49 +00:00
Pedro Algarvio
08804932c3
Using pytest start_daemon 2017-02-28 22:52:48 +00:00
Pedro Algarvio
53eff91efa
Re-enable the test since we now have the flaky decorator 2017-02-28 22:52:48 +00:00
Pedro Algarvio
2a9d2beb02
The order is shady under Py3
/cc @cachedout @rallytime
2017-02-28 22:52:48 +00:00
Pedro Algarvio
1daa2e24cd
Moved some test supporting modules to tests/support
Previously they were in tests/utils which also had test case modules.
2017-02-28 22:52:48 +00:00