1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00
community.general/tests/unit/plugins/module_utils
Alexei Znamensky f5b1b3c6f0
Command Runner (#4476)
* initial commit, passing unit tests

* passing one very silly integration test

* multiple changes:

- updated copyright year
- cmd_runner
  - added fmt_optval
  - created specific exceptions
  - fixed bug in context class where values from module params were not
    being used for resolving cmd arguments
  - changed order of class declaration for readability purpose
- tests
  - minor improvements in integration test code
  - removed some extraneous code in msimple.yml
  - minor improvements in unit tests
  - added few missing cases to unit test

* multiple changes

cmd_runner.py

- renamed InvalidParameterName to MissingArgumentFormat
  - improved exception parameters
- added repr and str to all exceptions
- added unpacking decorator for fmt functions
- CmdRunner
  - improved parameter validation
- _CmdRunnerContext
  - Context runs must now pass named arguments
  - Simplified passing of additional arguments to module.run_command()
  - Provided multiple context variables with info about the run

Integration tests

- rename msimple.py to cmd_echo.py for clarity
- added more test cases

* cmd_runner: env update can be passed to runner

* adding runner context info to output

* added comment on OrderedDict

* wrong variable

* refactored all fmt functions into static methods of a class

Imports should be simpler now, only one object fmt, with attr access to all callables

* added unit tests for CmdRunner

* fixed sanity checks

* fixed mock imports

* added more unit tests for CmdRunner

* terminology consistency

* multiple adjustments:

- remove extraneous imports
- renamed some variables
- added wrapper around arg formatters to handle individual arg ignore_none behaviour

* removed old code commented out in test

* multiple changes:

- ensure fmt functions return list of strings
- renamed fmt parameter from `option` to `args`
- renamed fmt.mapped to fmt.as_map
- simplified fmt.as_map
- added tests for fmt.as_fixed

* more improvements in formats

* fixed sanity

* args_order can be a string (to be split())

and improved integration test

* simplified integration test

* removed overkill str() on values - run_command does that for us

* as_list makes more sense than as_str in that context

* added changelog fragment

* Update plugins/module_utils/cmd_runner.py

Co-authored-by: Felix Fontein <felix@fontein.de>

* adjusted __repr__ output for the exceptions

* added superclass object to classes

* added additional comment on the testcase sample/example

* suggestion from PR

Co-authored-by: Felix Fontein <felix@fontein.de>
2022-04-25 22:12:00 +02:00
..
cloud sanity: Add future boilerplate (#573) 2020-06-24 21:50:36 +02:00
hwc sanity: Add future boilerplate (#573) 2020-06-24 21:50:36 +02:00
identity Allow keycloak modules to take token as parameter for the auth. (#2250) 2021-04-20 13:20:46 +02:00
net_tools Remove and redirect all infoblox/nios content (#3592) 2021-10-21 08:02:06 +02:00
remote_management Migrating DellEMC collections from community.general collections (#1699) 2021-02-01 18:06:58 +01:00
xenserver sanity: Add future boilerplate (#573) 2020-06-24 21:50:36 +02:00
__init__.py
conftest.py Replace ansible.module_utils._text by ansible.module_utils.common.text.converters (#2877) 2021-06-26 23:59:11 +02:00
test_cmd_runner.py Command Runner (#4476) 2022-04-25 22:12:00 +02:00
test_csv.py New Filter plugin from_csv (#2037) 2021-03-21 13:21:54 +01:00
test_database.py sanity: Add future boilerplate (#573) 2020-06-24 21:50:36 +02:00
test_known_hosts.py
test_module_helper.py mh CmdMixin - added ArgFormat.BOOLEAN_NOT and logic (#3290) 2021-08-29 13:03:15 +02:00
test_saslprep.py
test_utm_utils.py sanity: Add future boilerplate (#573) 2020-06-24 21:50:36 +02:00