"""Test introspect""" import pytest @pytest.mark.parametrize( 'name', [ '', 'invalid', 'commands', 'configs', 'repo', 'switches', ]) def test_introspect_category( runner, yadm_y, paths, name, supported_commands, supported_configs, supported_switches): """Validate introspection category""" if name: run = runner(command=yadm_y('introspect', name)) else: run = runner(command=yadm_y('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)