Beispiel #1
0
    def test_conditional_subcommands_from_entry_point_sys_argv(self):
        """Subcommands from entry-point are properly parsed from sys.argv."""
        stdout = io.StringIO()
        self.patchStdoutAndStderr(stdout=stdout)

        expected_errors = [
            "usage: cloud-init analyze",
            "usage: cloud-init clean",
            "usage: cloud-init collect-logs",
            "usage: cloud-init devel",
            "usage: cloud-init status",
            "usage: cloud-init schema",
        ]
        conditional_subcommands = [
            "analyze",
            "clean",
            "collect-logs",
            "devel",
            "status",
            "schema",
        ]
        # The cloud-init entrypoint calls main without passing sys_argv
        for subcommand in conditional_subcommands:
            with mock.patch("sys.argv", ["cloud-init", subcommand, "-h"]):
                try:
                    cli.main()
                except SystemExit as e:
                    self.assertEqual(0, e.code)  # exit 2 on proper -h usage
        for error_message in expected_errors:
            self.assertIn(error_message, stdout.getvalue())
Beispiel #2
0
 def test_conditional_subcommands_from_entry_point_sys_argv(
         self, subcommand, capsys, mock_get_user_data_file, tmpdir):
     """Subcommands from entry-point are properly parsed from sys.argv."""
     expected_error = f"usage: cloud-init {subcommand}"
     # The cloud-init entrypoint calls main without passing sys_argv
     with mock.patch("sys.argv", ["cloud-init", subcommand, "-h"]):
         try:
             cli.main()
         except SystemExit as e:
             assert 0 == e.code  # exit 2 on proper -h usage
     out, _err = capsys.readouterr()
     assert expected_error in out
 def _call_main(self, sysv_args=None):
     if not sysv_args:
         sysv_args = ['cloud-init']
     try:
         return cli.main(sysv_args=sysv_args)
     except SystemExit as e:
         return e.code
Beispiel #4
0
 def _call_main(self, sysv_args=None):
     if not sysv_args:
         sysv_args = ['cloud-init']
     try:
         return cli.main(sysv_args=sysv_args)
     except SystemExit as e:
         return e.code
Beispiel #5
0
    def test_conditional_subcommands_from_entry_point_sys_argv(self):
        """Subcommands from entry-point are properly parsed from sys.argv."""
        stdout = six.StringIO()
        self.patchStdoutAndStderr(stdout=stdout)

        expected_errors = [
            'usage: cloud-init analyze', 'usage: cloud-init collect-logs',
            'usage: cloud-init devel'
        ]
        conditional_subcommands = ['analyze', 'collect-logs', 'devel']
        # The cloud-init entrypoint calls main without passing sys_argv
        for subcommand in conditional_subcommands:
            with mock.patch('sys.argv', ['cloud-init', subcommand, '-h']):
                try:
                    cli.main()
                except SystemExit as e:
                    self.assertEqual(0, e.code)  # exit 2 on proper -h usage
        for error_message in expected_errors:
            self.assertIn(error_message, stdout.getvalue())