From 88a2b3d47b15d2e7dbedb4e87cc9a3350c8bb832 Mon Sep 17 00:00:00 2001 From: Felix Moessbauer Date: Sun, 11 Dec 2022 08:30:34 +0100 Subject: [PATCH] add test for resolve-env option in dump plugin This patch adds a test for the --resolve-env option in the dump plugin. Both cases resolve and non-resolve are tested, each for yaml and json output format. Signed-off-by: Felix Moessbauer Signed-off-by: Jan Kiszka --- tests/test_commands.py | 14 +++++++++++++- tests/test_repo_includes/test.yml | 3 +++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/tests/test_commands.py b/tests/test_commands.py index 354526e..6f600b9 100644 --- a/tests/test_commands.py +++ b/tests/test_commands.py @@ -77,21 +77,33 @@ def test_dump(changedir, tmpdir, capsys): os.chdir(tdir) formats = ['json', 'yaml'] - resolve = ['', '--resolve-refs'] + resolve = ['', '--resolve-refs', '--resolve-env'] # test cross-product of these options (formats x resolve) for f, r in ((f, r) for f in formats for r in resolve): outfile = 'test_flat.%s' % f + if r == '--resolve-env': + os.environ['TESTVAR_FOO'] = 'KAS' + kas.kas(('dump --format %s %s test.yml' % (f, r)).split()) + + if r == '--resolve-env': + del os.environ['TESTVAR_FOO'] + with open(outfile, 'w') as f: f.write(capsys.readouterr().out) with open(outfile, 'r') as cf: flatconf = json.load(cf) if f == 'json' else yaml.safe_load(cf) refspec = flatconf['repos']['kas3']['refspec'] + envvar = flatconf['env']['TESTVAR_FOO'] if r == '--resolve-refs': assert refspec != 'master' else: assert refspec == 'master' + if r == '--resolve-env': + assert envvar == 'KAS' + else: + assert envvar == 'BAR' assert 'includes' not in flatconf['header'] # check if kas can read the generated file diff --git a/tests/test_repo_includes/test.yml b/tests/test_repo_includes/test.yml index 7f9200c..73b1c4a 100644 --- a/tests/test_repo_includes/test.yml +++ b/tests/test_repo_includes/test.yml @@ -4,6 +4,9 @@ header: - repo: subrepo file: test.yml +env: + TESTVAR_FOO: "BAR" + repos: this: