diff --git a/tests/fixtures.py b/tests/fixtures.py index ec01959f2..8cd8c71e4 100644 --- a/tests/fixtures.py +++ b/tests/fixtures.py @@ -144,6 +144,17 @@ def plan_summary(module_path, basedir, tf_var_files=None, extra_files=None, return PlanSummary(values, dict(counts), outputs) +def filter_plan_values(values, ignored_attributes): + """Remove ignored attributes from plan values.""" + if not ignored_attributes: + return values + for addr, resource_values in values.items(): + if isinstance(resource_values, dict): + for attr in ignored_attributes: + resource_values.pop(attr, None) + return values + + @pytest.fixture(name='plan_summary') def plan_summary_fixture(request): """Return a function to generate a PlanSummary. diff --git a/tools/plan_summary.py b/tools/plan_summary.py index 33a2d1a7b..471a93ad9 100755 --- a/tools/plan_summary.py +++ b/tools/plan_summary.py @@ -39,6 +39,10 @@ except ImportError: sys.path.append(str(BASEDIR / 'tests')) import fixtures +FILTERED_ATTRIBUTES = [ + 'source_md5hash', +] + @click.command() @click.option('--example', default=False, is_flag=True) @@ -62,7 +66,8 @@ def main(example, module, tfvars, extra_files, extra_dirs): summary = fixtures.plan_summary(module, Path(), tfvars, extra_files=extra_files, extra_dirs=extra_dirs) - print(yaml.dump({'values': summary.values})) + values = fixtures.filter_plan_values(summary.values, FILTERED_ATTRIBUTES) + print(yaml.dump({'values': values})) print(yaml.dump({'counts': summary.counts})) outputs = { k: v.get('value', '__missing__') for k, v in summary.outputs.items() diff --git a/tools/tftest_plan_summary.py b/tools/tftest_plan_summary.py index 65c6bea5a..85f0d8414 100755 --- a/tools/tftest_plan_summary.py +++ b/tools/tftest_plan_summary.py @@ -27,6 +27,10 @@ except ImportError: sys.path.append(str(BASEDIR / 'tests')) import fixtures +FILTERED_ATTRIBUTES = [ + 'source_md5hash', +] + @click.command() @click.argument('test_file', type=click.Path(), nargs=1) @@ -52,7 +56,8 @@ def main(test_file, test_name): extra_files=extra_files, extra_dirs=extra_dirs) - print(yaml.dump({'values': summary.values})) + values = fixtures.filter_plan_values(summary.values, FILTERED_ATTRIBUTES) + print(yaml.dump({'values': values})) print(yaml.dump({'counts': summary.counts})) outputs = { k: v.get('value', '__missing__') for k, v in summary.outputs.items()