def test_subcommand_not_found(): """Ensure an error for invalid subcommand/action""" test_config = ApplicationConfiguration( application_name="test_config1", internals=Internals(action_packages=["ansible_navigator.actions"]), post_processor=NavigatorPostProcessor(), subcommands=[ SubCommand(name="__test_action", description="test_action"), ], entries=[ Entry( name="app", short_description="test_app", value=EntryValue(current="__test_action"), ), Entry( name="mode", short_description="mode", value=EntryValue(), ), ], ) configurator = Configurator(params=[], application_configuration=test_config) configurator._post_process() error = "Unable to find an action for '__test_action', tried: 'ansible_navigator.actions'" assert error in configurator._errors
def test_import_error(): """Ensure an error for invalid action_package""" test_config = ApplicationConfiguration( application_name="test_config1", internals=Internals(action_packages=["__ansible_navigator.__actions"]), post_processor=NavigatorPostProcessor(), subcommands=[ SubCommand(name="subcommand1", description="subcommand1"), ], entries=[ Entry( name="app", short_description="test_app", value=EntryValue(current="subcommand1"), ), Entry( name="mode", short_description="mode", value=EntryValue(), ), ], ) configurator = Configurator(params=[], application_configuration=test_config) configurator._post_process() message = "Unable to load action package: '__ansible_navigator.__actions':" message += " No module named '__ansible_navigator'" assert message in (entry.message for entry in configurator._messages) error = "Unable to find an action for 'subcommand1', tried: '__ansible_navigator.__actions'" assert error in configurator._errors
def test_cmdline_source_not_set(): """Ensure a configuration without a ``subparser`` entry fails""" test_config = ApplicationConfiguration( application_name="test_config1", application_version="1.0", internals=Internals(), post_processor=NavigatorPostProcessor(), subcommands=[ SubCommand( name="subcommand1", description="subcommand1", version_added="v0.0", ), ], entries=[ SettingsEntry( name="cmdline", short_description="cmdline", value=SettingsEntryValue(), version_added="v0.0", ), ], ) configurator = Configurator(params=[], application_configuration=test_config) configurator._post_process() assert "Completed post processing for cmdline" in configurator._messages[ 0][1] assert not configurator._exit_messages
def test_cmdline_source_not_set(): """Ensure a Config without a subparse entry fails""" test_config = ApplicationConfiguration( application_name="test_config1", post_processor=NavigatorPostProcessor(), subcommands=[ SubCommand(name="subcommand1", description="subcommand1"), ], entries=[ Entry( name="cmdline", short_description="cmdline", value=EntryValue(), ), ], ) configurator = Configurator(params=[], application_configuration=test_config) configurator._post_process() assert "Completed post processing for cmdline" in configurator._messages[ 0][1] assert configurator._exit_messages == []
def test_subcommand_not_found(): """Ensure an error for invalid subcommand/action""" test_config = ApplicationConfiguration( application_name="test_config1", application_version="1.0", internals=Internals(action_packages=["ansible_navigator.actions"]), post_processor=NavigatorPostProcessor(), subcommands=[ SubCommand( name="__test_action", description="test_action", version_added="v0.0", ), ], entries=[ SettingsEntry( name="app", short_description="test_app", value=SettingsEntryValue(current="__test_action"), version_added="v0.0", ), SettingsEntry( name="mode", short_description="mode", value=SettingsEntryValue(), version_added="v0.0", ), ], ) test_config.internals.initializing = True configurator = Configurator(params=[], application_configuration=test_config) configurator._post_process() exit_msg = "Unable to find an action for '__test_action', tried: 'ansible_navigator.actions'" assert exit_msg in [ exit_msg.message for exit_msg in configurator._exit_messages ]