"""Test introspect""" import pytest @pytest.mark.parametrize( "name", [ "", "invalid", "commands", "configs", "repo", "switches", ], ) def test_introspect_category(runner, yadm_cmd, paths, name, supported_commands, supported_configs, supported_switches): """Validate introspection category""" if name: run = runner(command=yadm_cmd("introspect", name)) else: run = runner(command=yadm_cmd("introspect")) assert run.success assert run.err == "" expected = [] if name == "commands": expected = supported_commands elif name == "configs": expected = supported_configs elif name == "switches": expected = supported_switches # assert values if name in ("", "invalid"): assert run.out == "" if name == "repo": assert run.out.rstrip() == paths.repo # make sure every expected value is present for value in expected: assert value in run.out # make sure nothing extra is present if expected: assert len(run.out.split()) == len(expected)