diff options
Diffstat (limited to 'tests/unittests/test_cli.py')
-rw-r--r-- | tests/unittests/test_cli.py | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/tests/unittests/test_cli.py b/tests/unittests/test_cli.py index 7780f164..24498802 100644 --- a/tests/unittests/test_cli.py +++ b/tests/unittests/test_cli.py @@ -46,7 +46,7 @@ class TestCLI(test_helpers.FilesystemMockingTestCase): self._call_main() error = self.stderr.getvalue() expected_subcommands = ['analyze', 'init', 'modules', 'single', - 'dhclient-hook', 'features'] + 'dhclient-hook', 'features', 'devel'] for subcommand in expected_subcommands: self.assertIn(subcommand, error) @@ -79,6 +79,25 @@ class TestCLI(test_helpers.FilesystemMockingTestCase): for subcommand in expected_subcommands: self.assertIn(subcommand, error) + def test_devel_subcommand_parser(self): + """The subcommand cloud-init devel calls the correct subparser.""" + self._call_main(['cloud-init', 'devel']) + # These subcommands only valid for cloud-init schema script + expected_subcommands = ['schema'] + error = self.stderr.getvalue() + for subcommand in expected_subcommands: + self.assertIn(subcommand, error) + + @mock.patch('cloudinit.config.schema.handle_schema_args') + def test_wb_devel_schema_subcommand_parser(self, m_schema): + """The subcommand cloud-init schema calls the correct subparser.""" + exit_code = self._call_main(['cloud-init', 'devel', 'schema']) + self.assertEqual(1, exit_code) + # Known whitebox output from schema subcommand + self.assertEqual( + 'Expected either --config-file argument or --doc\n', + self.stderr.getvalue()) + @mock.patch('cloudinit.cmd.main.main_single') def test_single_subcommand(self, m_main_single): """The subcommand 'single' calls main_single with valid args.""" |