Commit Graph

268 Commits

Author SHA1 Message Date
Ryan Schneider
8f8cc74b34 Some minor cleanup of unit and integration tests. 2012-12-18 17:39:16 -08:00
Pedro Algarvio
c0455f8fa9 Support creating state files at runtime.
We now support runtime created files that can be used like `salt://my-temp-file.txt`.
Just make sure you write them to `os.path.join(integration.TMP_STATE_TREE, 'my-temp-file.txt')`.
2012-12-12 18:38:39 +00:00
Pedro Algarvio
952779aa26 More code reuse in SaltReturnAssertsMixIn.
The methods `assertSaltTrueReturn`, `assertSaltFalseReturn` and `assertSaltNoneReturn` now reuse the code from `__getWithinSaltReturn` making `__assertReturn` obsolete and for that removed.
2012-12-12 17:11:44 +00:00
Pedro Algarvio
b9e72e7c3c Abstract SaltReturnAssertsMixIn to allow more tests using it.
* Created a method which gets a deep keyed value in a salt state return. For example, allow getting, `ret['changes']['new']`.
* Created a method which tries to make sure the correct type of the passed keys for the above added method.
* Also added were the methods, `assertInSaltReturn`, `assertNotInSaltReturn`, `assertInSaltReturnRegexpMatches`, which simplified the existing `assertInSaltComment`, `assertNotInSaltComment`, `assertSaltCommentRegexpMatches`, `assertSaltStateChangesEqual` and `assertSaltStateChangesNotEqual`, also allowing to do similar tests in every key(deep or not) of a salt state return dictionary.
2012-12-12 13:38:03 +00:00
Pedro Algarvio
7c6feb8c18 Fix a bug! It's basestring not string. 2012-12-12 00:33:54 +00:00
Pedro Algarvio
0baa63c19f Remove deprecated tests functions.
Removed `ModuleCase.assert_success()` and `ModuleCase.state_result()` which are now better tested using `SaltReturnAssertsMixIn`
2012-12-07 17:09:11 +00:00
Pedro Algarvio
fc3b272809 Migrated test.integration.states.pip to use SaltReturnAssertsMixIn.
* Added `assertSaltCommentRegexpMatches()` to `SaltReturnAssertsMixIn` to add the ability to match salt comments using regular expressions.
2012-12-07 16:59:24 +00:00
Pedro Algarvio
4b1747468b Adapted tests.integration.states.ssh to use SaltReturnAssertsMixIn.
* Two new methods were added to `SaltReturnAssertsMixIn`, `SaltReturnAssertsMixIn.assertSaltStateChangesEqual()` and `SaltReturnAssertsMixIn.assertSaltStateChangesNotEqual()`, in order to be able to test salt state returns. These methods, besides asserting that the state was correctly applied using `SaltReturnAssertsMixIn.assertSaltTrueReturn()`, are also able to test for what's in the `changes` key of salt's return, it can even "go inside" the `changes` dictionary, just have a look at what was done in `tests.integration.states.ssh`.
2012-12-07 12:46:02 +00:00
Pedro Algarvio
2d15b79114 Fix sync minions Process target. Correct sync'ed output. 2012-12-04 17:36:45 +00:00
Pedro Algarvio
65094c744a Stop using py27_subprocess under python 2.6 2012-12-04 16:29:53 +00:00
Pedro Algarvio
42799e0953 Fix '--clean/--no-clean' logic needed to sync minions. 2012-12-04 13:36:33 +00:00
Pedro Algarvio
f66c7741ff Allow more time for minions to sync. 2012-12-04 13:02:56 +00:00
Pedro Algarvio
a004639b99 Reuse getting a local client code with SaltClientTestCaseMixIn. 2012-12-04 11:51:37 +00:00
Pedro Algarvio
08aaecee12 Merge branch 'develop' of github.com:saltstack/salt into hotfix/gdb-resources 2012-12-04 00:55:50 +00:00
Pedro Algarvio
b0f594f452 run_script timeout's are not supported under windows. 2012-12-03 23:58:08 +00:00
Pedro Algarvio
3b0388c8f4 Merge branch 'develop' of github.com:saltstack/salt into hotfix/gdb-resources 2012-12-03 23:42:23 +00:00
Pedro Algarvio
b866ca3af0 Just detach from parent group. 2012-12-03 23:41:45 +00:00
Pedro Algarvio
5d274e8b7d Let's keep using multiprocessing. 2012-12-03 23:35:32 +00:00
Pedro Algarvio
7b10a7cd64 Merge branch 'develop' of github.com:saltstack/salt into hotfix/gdb-resources 2012-12-03 23:31:29 +00:00
Pedro Algarvio
a9669acf3a Kill tests run_script shell and it's children. 2012-12-03 23:30:21 +00:00
Pedro Algarvio
c89a6788f4 Is this what's needed under python 2.6 for tests to complete? 2012-12-03 21:07:51 +00:00
Pedro Algarvio
c4e485a8bf Allow setting a max time for a test run_script to execute and return. 2012-12-01 22:58:19 +00:00
Pedro Algarvio
c9cb4c220c Only sync minions modules if they're not already up to date. 2012-12-01 18:12:59 +00:00
Pedro Algarvio
d4005bee3d We now warn the users about misusing mode in file.recurse. Fixes #2726.
* Extended `SaltReturnAssertsMixIn` by adding `assertNotInSaltComment`.
* Fixed minor `tab` instead of spaces in `salt.states.file` code.
2012-11-28 17:57:44 +00:00
Pedro Algarvio
c782eae106 Extended SaltReturnAssertsMixIn and included a test case which triggers #2726.
* Extended `SaltReturnAssertsMixIn`, `assertInSaltComment`, which allows to see if a string is in a salt's returned comment.
2012-11-28 17:35:25 +00:00
Pedro Algarvio
bd552ef4a8 Migrate some of the Vagrant branch improved minions wait and sync code. 2012-11-26 05:44:18 +00:00
Pedro Algarvio
74aeeab5e5 Add some color when a test minion connects(trigger a Travis build). 2012-11-26 04:32:25 +00:00
Pedro Algarvio
fd283e9689 Improved SaltReturnAssertsMixIn.
* Added `assertReturnSaltType` which is dictionary for non errors.
* Added `assertReturnNonEmptySaltType` which does the above and makes sure it's not empty.
* Fix `tests.integration.states.user.UserTest` which was using wrongly using `assertSaltTrueReturn` on 'user.info' calls.
2012-11-25 22:29:08 +00:00
Pedro Algarvio
ee8a4faccc Make sure that parts are also dictionaries. 2012-11-25 20:11:24 +00:00
Pedro Algarvio
a6fd9bb60f Add tests.saltunittest.RedirectStdStreams.
* The `RedirectStdStreams` tests helper will allow to temporarily catch `stdout` and `stderr` output. Right now it's only used to **mute** the `tests.integration.runners.jobs.ManageTest.test_active()` output.
2012-11-23 12:19:09 +00:00
Pedro Algarvio
cf03063bec Improve SaltReturnAssertsMixIn and move tests.integration.states.cmd to use it.
* Implement `SaltReturnAssertsMixIn.assertSaltNoneReturn` used in `tests.integration.states.cmd`.
* Migrate `tests.integration.states.cmd` to use `SaltReturnAssertsMixIn`.
2012-11-21 12:43:53 +00:00
Pedro Algarvio
1f03ba59f1 Extend tests.integration.SaltReturnAssertsMixIn.
* Do proper type checking for salt calls, ie, a dict should be returned, if not, it's a failure, usually errors come as lists, show that to the user.
* Iterate through the salt call parts to make sure result is true, and if not, fail showing the part comment.
2012-11-21 12:16:17 +00:00
Pedro Algarvio
04146f39f9 Tests wait timer is now colored(option to disable colors is also available), improves readability. 2012-11-21 10:01:45 +00:00
Pedro Algarvio
eda67f0110 Show salt comment on assertTrue(ret['result']) failed calls.
* Created a mix which tests for the required assertion(True/False) and in case of a failure, shows salt comment kwarg in the raised assertion error so we know what was the original(salt's) failure.
2012-11-20 16:09:57 +00:00
Pedro Algarvio
09eb92ad8a Only import what's needed, cleans up code. 2012-11-19 01:21:06 +00:00
Pedro Algarvio
6a6f256472 Make it, actually work, on python 2.6 2012-11-19 01:13:29 +00:00
Pedro Algarvio
c6dcdbe6dc Hardcore approach to travis-ci failures under python 2.6.
* We basically copied subprocess from python 2.7 and import that one instead of the python 2.6 subprocess to run the tests. Since we import it under a different name, there should be no issues with the remaining of salt's source importing the regular subprocess module.
2012-11-18 23:49:37 +00:00
Pedro Algarvio
f67d24cf30 Minor cosmetic change. 2012-11-17 17:43:23 +00:00
Pedro Algarvio
5bf4549777 Use actual time, to reduce time.sleep() inaccuracy. 2012-11-17 17:37:53 +00:00
Pedro Algarvio
d3e0d64068 Show a nice clock counter while we wait for the sync job to finish. 2012-11-09 15:25:16 +00:00
Pedro Algarvio
cae00911a5 One more try to properly handle the process termination. 2012-11-07 14:10:02 +00:00
Pedro Algarvio
b4f2ad2884 Never fail on process.terminate() since the process is supposed to have ended. 2012-11-07 13:58:44 +00:00
Pedro Algarvio
8e9fd09eeb Try to cleanup after ourselves.
* Only instantiate a `LocalClient` on a test if one is required.
* Try to precipitate garbage collection on our minions connect and sync multi-processes.
2012-11-07 13:40:39 +00:00
Pedro Algarvio
c5c637154a Try to get some system information out of Travis-CI. 2012-11-06 18:11:26 +00:00
Pedro Algarvio
af7ebf12f8 Try not to fail on travis-ci under python 2.6
* Raised max open files by 1024 since running in a vagrant machine 2048 was not enough, though, I think travis-ci defaults to a higher value.
* Wait a bit longer on the events testing.
* Separated the initial minions connected and minions synced into two different events and functions. Also corrected the `if` expected value when a timeout occurs.
2012-11-06 16:02:36 +00:00
Pedro Algarvio
739eeac30d Create an "alias" for temfile.gettempdir() to reduce calls to it. 2012-11-06 12:14:02 +00:00
Pedro Algarvio
75644992e2 Don't hard-code temporary paths on tests. Refs #2462. 2012-11-06 11:20:06 +00:00
Jeff Schroeder
2bc78460db Automated cleanup converting str.split('\n') --> str.splitlines()
Performed with this command from the top-level source tree:
	find -name '*.py' -type f | xargs sed -r -i "s/\.split\('\\\n'\)/.splitlines()/g"
2012-11-03 21:25:11 -07:00
Daniel Miller
1957700161 Add "file.patch" state function 2012-10-18 12:23:47 -04:00
Daniel Miller
3a68a85a9b Add "file.patch" module function 2012-10-18 12:20:39 -04:00
Pedro Algarvio
ac1fe9810a Point hosts.file and aliases.file to the new tests temporary dir. 2012-10-05 07:10:53 +01:00
Pedro Algarvio
85c6664538 Fix running tests using python setup.py tests. I was deleting it too soon and not re-creating it. Increase tests verbosity on travis-ci. 2012-10-05 02:45:35 +01:00
Pedro Algarvio
b6cb78364f Switch integration tmp to the system's temporary directory.
While running the tests within a VirtualBox(vagrant) machine, if the salt source is mounted using shared folders, any tests involving hard links WILL fail. Any tests involving symlinks, can be made to work by setting some properties on the VirtualBox shared folder. By moving the tests `tmp` directory to `tempfile.gettempdir()` we avoid this false test case errors.
2012-10-05 00:52:00 +01:00
Pedro Algarvio
4c456864db Improve our tests runner.
* Show an error when the user tries to use `--xml` and `xmlrunner` is not installed.
* Add support to generate HTML reports of the tests coverage.
2012-10-02 13:04:22 +01:00
Pedro Algarvio
ce0c8832a8 Minor PEP-8 changes. 2012-09-07 22:14:38 +01:00
Pedro Algarvio
71327e4ff7 Also allow skipping the tests on the syndic. Refs #1935. 2012-09-07 20:24:35 +01:00
Pedro Algarvio
5b4d462413 Also skip a run_function test-case in case the minion does not reply. Refs #1935. 2012-09-07 20:03:44 +01:00
Pedro Algarvio
6e9b2810ee Reduce requirements to generate keys.
The generation of keys does not involve all the checks required to accept/deny/list keys. This code change allows:
 * regular users to generate keys
 * `/etc/salt` and `/var/log/salt` not to exist or not to be readable by the current user

It also does not check for a running master. We have now lowered the requirements to run this script just for generating keys.
2012-09-05 22:31:12 +01:00
Pedro Algarvio
accb15d6ee Add tests for saltstack/salt#1900
* Test both master and minion events firing
 * Allow targeting the minions in `tests.integration.ModuleCase.run_function()`
 * The above item allows to also test events firing using `tcp` as `ipc_mode` which is being used by the tests `sub_minion`
2012-09-01 07:29:06 +01:00
Pedro Algarvio
71c842a896 Allow skipping random failing tests saltstack/salt#1935 2012-09-01 05:20:53 +01:00
Pedro Algarvio
e32faa4a28 Fix salt-call bug with default outputter.
* `salt-call` default outputter returned from `salt.output.get_printout()` was `None` and `None` isn't callable neither outputs anything useful. In this case, the fault Outputter  should be used.
* `get_printout()` also tested for `txt_out` which now is, in the cleaned up parsers, `text_out`. Fixed.
2012-08-13 07:10:42 +01:00
Pedro Algarvio
2faada54d3 Fix the too many open file descriptor issues on 2.6 while running tests. 2012-08-08 09:04:52 +01:00
Pedro Algarvio
2bf0187ae5 Don't close stderr if it's not being used. 2012-08-08 08:18:45 +01:00
Pedro Algarvio
bbfa0b939b One more try travis. 2012-08-08 01:35:36 +01:00
Pedro Algarvio
12007c23a3 Let's see if travis stops failing on 2.6 with "filedescriptor out of range in select()" 2012-08-08 01:21:16 +01:00
Pedro Algarvio
ac1ee79fa6 Cleanup the salt-run(salt.cli.SaltRun) binary parser.
Reused the timeout mix-in. All cli tools parsers also reuse the config mixin.
This commit finishes cleaning up the cli tool parsers.
2012-08-04 23:25:37 +01:00
Pedro Algarvio
060f33a15a Cleanup the salt-key(salt.cli.SaltKey) binary parser.
Reused the output options and logging setup mix-ins.

Fixed a bug introduced in previous commit on `salt.utils.parsers.SaltCPOptionParser._mixin_after_parsed()`, function does not accept any arguments.
2012-08-04 22:55:15 +01:00
Pedro Algarvio
f5aad4f8e2 Cleanup the salt-cp(salt.cli.SaltCP) binary parser.
For this, the timeout mix-in and both the target and output parser group mix-ins were re-used. Way less code and logic to keep track of.
Added a simple test for this binary too.
2012-08-04 22:28:51 +01:00
Pedro Algarvio
b582e40ff1 Cleanup the salt(salt.cli.SaltCMD) binary parser.
* Created 2 mix-ins as option groups, the output options and the target options. This will allow adding some explanatory text besides separating these options from the parser's main options.
* All options on the parser, including the grouped options are now merged to the loaded configuration which will latter get passed on.
* Also created the timeout mix-in which will be used in other binaries.
2012-08-04 22:08:06 +01:00
Pedro Algarvio
d776705e49 Parsers(master, minion, syndic) cleanup code.
Moved the minion, master and syndic parsers to use mixins to clean up, reuse, and automate some of the required procedures.
2012-08-04 19:58:32 +01:00
Roman Imankulov
bc1650a085 Add "mockbin" directory and a fake "su" wrapper for tests
While performing integration tests, the "mockbin" directory is
inserted in the beginning of the $PATH environment variable.

This effectively means that every file placed in this directory will be
executed instead of real one from the system, which opens up the
opportunity to write more complex integration tests.

At the time the only wrapper for "su" command (used in "cmdmod") is
placed there.
2012-07-26 22:14:00 +06:00
Roman Imankulov
bb0ed1a3a7 Tests cleanup
Defined "integration.run_tests()" function which can be used to execute
a particular integration test case. Existing bolerplate code in modules
and states tests is replaced with following lines:

    if __name__ == '__main__':
        from integration import run_tests
        run_tests(TestCaseName)

Typical usecase could look like this:

    python integration/modules/pip.py --no-clean -vv
2012-07-20 12:25:08 +06:00
Roman Imankulov
4cac03c42d Add options --clean and --no-clean in runtest.py
--no-clean option speeds up repeating test execution by skipping the cleanup
process before and after testing.

Typical use case command could look like

./runtests.py -vv --no-clean --name integration.modules.ssh
2012-07-20 12:16:14 +06:00
Intchanter
f663dd2c46 Merge branch 'develop' of https://github.com/saltstack/salt into develop
Conflicts:
	salt/states/network.py
	setup.py
	tests/integration/__init__.py
2012-07-08 22:50:12 -06:00
Thomas S Hatch
e446a306c7 Add sock_dir verification to tests 2012-07-07 22:11:36 -06:00
Thomas S Hatch
7f034cf6ba See if pushing the timeout to insane levels makes travis stop failing 2012-07-05 20:17:04 -06:00
Intchanter
3c05a3ee78 Merge branch 'develop' of https://github.com/saltstack/salt into develop
Conflicts:
	tests/integration/modules/grains.py
	tests/integration/states/host.py
	tests/unit/utils/find_test.py
2012-07-04 18:29:13 -06:00
Thomas S Hatch
ede600a734 Merge pull request #1532 from akoumjian/develop
Fix for minion KeyError 1523
2012-06-30 14:27:40 -07:00
Alec Koumjian
40781ea0ae Fix for minion KeyError 1523 2012-06-30 14:25:14 -07:00
Dan Colish
c5cdb366dc Fix test.integration.states.host. Make master_config and minion_config a property to keep semantics consistent 2012-06-30 13:54:23 -07:00
Intchanter
a1433ef5ec PEP8 fixes for tests 2012-06-30 14:10:34 -06:00
Dan Colish
edfb3d2560 Merge branch 'develop' of git://github.com/saltstack/salt into develop
Conflicts:
	tests/unit/utils/find_test.py
2012-06-30 12:46:04 -07:00
Dan Colish
78d16a28f0 Move tmp hosts file management to test case which requires it. Fix
test.unit.utils.find_test on OSX
2012-06-30 12:20:53 -07:00
Thomas S Hatch
65d8cb4e59 Merge pull request #1521 from dcolish/develop
Fix host file setup and fix tests.integration.states.host
2012-06-30 12:00:05 -07:00
Dan Colish
f79b6e5ea0 Fix host file setup and fix tests.integration.states.host 2012-06-30 11:47:48 -07:00
Baiju Muthukadan
f9e9e32eaf The pwd & grp modules are only available for unix 2012-06-23 11:47:53 +02:00
Thomas S Hatch
f3c7b5be5f Fix path loading for shell tests 2012-06-05 17:04:28 -06:00
Thomas S Hatch
400a429502 Add user to integration verify_env 2012-06-02 23:17:52 -06:00
L.C. Rees
cdb5e89631 - exploit how 'iterkeys' is default iterator for dict
- use values()

- pep8
2012-06-01 13:06:43 -06:00
Baiju Muthukadan
91ce3a7ec9 cleanup temp directories created by tests 2012-05-31 16:13:03 +05:30
Baiju Muthukadan
24bb4ea4e0 Fix PEP8 warnings for test cases 2012-05-29 22:10:20 +05:30
Thomas S Hatch
aed4f593e0 Add runner test interface 2012-05-27 21:00:10 -06:00
Thomas S Hatch
5c09aa3778 Fix docstrings in shellCase 2012-05-23 08:14:16 -06:00
Thomas S Hatch
c9cddd2245 Add second minion to tests 2012-05-23 08:04:38 -06:00
Thomas S Hatch
26bcb2a4cf Add state_result method to ModuleCase
This makes getting the result field out of the return from run_state
easier
2012-05-14 23:43:16 -06:00
Thomas S Hatch
2ae38748d4 add check when cleaning integration temp files 2012-05-12 22:36:46 -06:00
Thomas S Hatch
97966f521a Add state functions to integration tests 2012-05-12 22:27:30 -06:00
Thomas S Hatch
7f574abba1 Add run_state function to ModuleCase 2012-05-12 20:40:28 -06:00
Jeff Schroeder
81fbdc1249 Properly use os.path.join in some integration tests 2012-05-09 21:36:20 -07:00
Thomas S Hatch
242d554441 Add initial tests for the salt-run command 2012-04-21 18:04:50 -06:00
Thomas S Hatch
5d75091788 Add run_salt and run_run to ShellCase 2012-04-21 17:52:29 -06:00
Thomas S Hatch
e301fee420 Add shell tests and shellCase to test structure 2012-04-21 17:27:59 -06:00
Thomas S Hatch
788eeaa313 Initial addition of CLITest interface 2012-04-21 16:58:03 -06:00
Thomas S Hatch
24a9d3cea1 Add backend for initial ext_pillar tests 2012-04-08 21:31:08 -06:00
Thomas S Hatch
4fe889434f Add cleaning to the integration module 2012-04-03 23:14:26 -06:00
Thomas S Hatch
2d81528eaa Add file_roots config to tests 2012-03-29 16:51:56 -06:00
Thomas S Hatch
6dadf88000 Add pillar data to tests 2012-03-29 16:19:19 -06:00
Thomas S Hatch
d1dee6d4e3 remove old master process fix 2012-03-29 15:41:32 -06:00
Thomas S Hatch
d643db9154 remove misconfigured file_roots lines 2012-03-29 09:37:11 -06:00
Thomas S Hatch
53befac5e8 Add a syndic, syndic master and finish synndic tests 2012-03-29 01:03:37 -06:00
Thomas S Hatch
9d0f49e2bf Add a SyndicCase for testing syndic functions 2012-03-28 22:25:59 -06:00
Thomas S Hatch
f06ea9335d Update tests to run an extra master and a syndic 2012-03-28 22:14:31 -06:00
Thomas S Hatch
7d005f9b50 clean up files before running tests 2012-03-28 00:10:13 -06:00
Thomas S Hatch
8714418920 Wrap chack in try/except block 2012-03-26 15:02:48 -06:00
Dan Colish
6f5b6a63f7 Fix integration tests on osx 2012-03-08 23:47:34 -08:00
Dan Colish
56a835a5c6 Move utility functions into utils 2012-03-08 20:26:11 -08:00
Eivind Uggedal
35ea9ed02d Kill all child processes of the test master daemon after each test run. 2012-02-20 13:22:02 +01:00
Eivind Uggedal
ab7ace6aa5 Split out integration tests from pure unit tests.
Integration tests requiring a salt master and daemon were seperated
from pure unit tests. For now both are run with runtest.py. In
the future it could take arguments for which type of tests to run.
2012-02-20 13:18:13 +01:00