diff options
author | Rigel Di Scala <rdiscala@redhat.com> | 2020-07-29 15:27:45 +0200 |
---|---|---|
committer | Rigel Di Scala <rdiscala@redhat.com> | 2020-08-10 23:43:53 +0200 |
commit | 579604d2c666c9fc24ec9065b18fb74a6bf4f138 (patch) | |
tree | 29cc6b13701169a3ac1452f4759799c1e84fc98f /awxkit/test/cli/test_format.py | |
parent | Merge pull request #7802 from ryanpetrello/vnnn-minus (diff) | |
download | awx-579604d2c666c9fc24ec9065b18fb74a6bf4f138.tar.xz awx-579604d2c666c9fc24ec9065b18fb74a6bf4f138.zip |
Allow YAML as a CLI import format
This changset allows the import of YAML formatted resources. The CLI
user can indicate which format to use with the `-f, --format` option.
The CLI help text has been amended to reflect the new feature.
The AWX CLI `export` subcommand offers the option of formatting the output
as YAML or JSON, so it makes sense that the `import` subcommand reflects
this.
A simple test is also provided. In order to ease the task of testing
commands that import resources by reading the stdin, the CLI has been
extended to allow specifying an alternative file descriptor for stdin,
similarly to stdout and stderr.
Diffstat (limited to '')
-rw-r--r-- | awxkit/test/cli/test_format.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/awxkit/test/cli/test_format.py b/awxkit/test/cli/test_format.py index 7166fb841c..5ab6e55d6c 100644 --- a/awxkit/test/cli/test_format.py +++ b/awxkit/test/cli/test_format.py @@ -1,10 +1,13 @@ +import io import json import yaml from awxkit.api.pages import Page from awxkit.api.pages.users import Users, User +from awxkit.cli import CLI from awxkit.cli.format import format_response +from awxkit.cli.resource import Import def test_json_empty_list(): @@ -44,3 +47,26 @@ def test_yaml_list(): page = Users.from_json(users) formatted = format_response(page, fmt='yaml') assert yaml.safe_load(formatted) == users + + +def test_yaml_import(): + class MockedV2: + def import_assets(self, data): + self._parsed_data = data + + def _dummy_authenticate(): + pass + + yaml_fd = io.StringIO( + """ + workflow_job_templates: + - name: Workflow1 + """ + ) + cli = CLI(stdin=yaml_fd) + cli.parse_args(['--conf.format', 'yaml']) + cli.v2 = MockedV2() + cli.authenticate = _dummy_authenticate + + Import().handle(cli, None) + assert cli.v2._parsed_data['workflow_job_templates'][0]['name'] |