← Back to team overview

cloud-init-dev team mailing list archive

Re: [Merge] ~wesley-wiedenmeier/cloud-init:error-output into cloud-init:master

 


Diff comments:

> diff --git a/tests/unittests/test_util.py b/tests/unittests/test_util.py
> index fc6b9d4..f8d416c 100644
> --- a/tests/unittests/test_util.py
> +++ b/tests/unittests/test_util.py
> @@ -604,11 +604,70 @@ class TestSubp(helpers.TestCase):
>                           util.target_path("/target/", "///my/path/"))
>  
>  
> +<<<<<<< tests/unittests/test_util.py

Probably need to do a rebase/conflict fix.

>  class TestEncode(helpers.TestCase):
>      """Test the encoding functions"""
>      def test_decode_binary_plain_text_with_hex(self):
>          blob = 'BOOTABLE_FLAG=\x80init=/bin/systemd'
>          text = util.decode_binary(blob)
>          self.assertEqual(text, blob)
> +=======
> +class TestProcessExecutionError(helpers.TestCase):
> +
> +    template = ('{description}\n'
> +                'Command: {cmd}\n'
> +                'Exit code: {exit_code}\n'
> +                'Reason: {reason}\n'
> +                'Stdout: {stdout}\n'
> +                'Stderr: {stderr}')
> +    empty_attr = '-'
> +    empty_description = 'Unexpected error while running command.'
> +
> +    def test_pexec_error_type(self):
> +        self.assertIsInstance(util.ProcessExecutionError(), IOError)
> +
> +    def test_pexec_error_empty_msgs(self):
> +        error = util.ProcessExecutionError()
> +        self.assertTrue(all(attr == self.empty_attr for attr in
> +                            (error.stderr, error.stdout, error.reason)))
> +        self.assertEqual(error.description, self.empty_description)
> +        self.assertEqual(error.message, self.template.format(
> +            description=self.empty_description, exit_code=self.empty_attr,
> +            reason=self.empty_attr, stdout=self.empty_attr,
> +            stderr=self.empty_attr, cmd=self.empty_attr))
> +
> +    def test_pexec_error_single_line_msgs(self):
> +        stdout_msg = 'out out'
> +        stderr_msg = 'error error'
> +        cmd = 'test command'
> +        exit_code = 3
> +        error = util.ProcessExecutionError(
> +            stdout=stdout_msg, stderr=stderr_msg, exit_code=3, cmd=cmd)
> +        self.assertEqual(error.message, self.template.format(
> +            description=self.empty_description, stdout=stdout_msg,
> +            stderr=stderr_msg, exit_code=str(exit_code),
> +            reason=self.empty_attr, cmd=cmd))
> +
> +    def test_pexec_error_multi_line_msgs(self):
> +        stdout_msg = 'multi\nline\noutput message'
> +        stderr_msg = 'multi\nline\nerror message\n\n\n'
> +        error = util.ProcessExecutionError(
> +            stdout=stdout_msg, stderr=stderr_msg)
> +        self.assertEqual(
> +            error.message,
> +            '\n'.join((
> +                '{description}',
> +                'Command: {empty_attr}',
> +                'Exit code: {empty_attr}',
> +                'Reason: {empty_attr}',
> +                'Stdout: multi',
> +                '        line',
> +                '        output message',
> +                'Stderr: multi',
> +                '        line',
> +                '        error message',
> +            )).format(description=self.empty_description,
> +                      empty_attr=self.empty_attr))
> +>>>>>>> tests/unittests/test_util.py
>  
>  # vi: ts=4 expandtab


-- 
https://code.launchpad.net/~wesley-wiedenmeier/cloud-init/+git/cloud-init/+merge/306731
Your team cloud init development team is requested to review the proposed merge of ~wesley-wiedenmeier/cloud-init:error-output into cloud-init:master.


References