summaryrefslogtreecommitdiff
path: root/tests/cloud_tests/testcases/main/command_output_simple.py
blob: 857881cb4d699605340c5e9064cbde89532e908b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# This file is part of cloud-init. See LICENSE file for license information.

"""cloud-init Integration Test Verify Script."""
from tests.cloud_tests.testcases import base


class TestCommandOutputSimple(base.CloudTestCase):
    """Test functionality of simple output redirection."""

    def test_output_file(self):
        """Ensure that the output file is not empty and has all stages."""
        data = self.get_data_file('cloud-init-test-output')
        self.assertNotEqual(len(data), 0, "specified log empty")
        self.assertEqual(self.get_config_entry('final_message'),
                         data.splitlines()[-1].strip())
        # TODO: need to test that all stages redirected here

    def test_no_warnings_in_log(self):
        """Warnings should not be found in the log.

        This class redirected stderr and stdout, so it expects to find
        a warning in cloud-init.log to that effect."""
        redirect_msg = 'Stdout, stderr changing to'
        warnings = [
            l for l in self.get_data_file('cloud-init.log').splitlines()
            if 'WARN' in l]
        self.assertEqual(
            [], [w for w in warnings if redirect_msg not in w],
            msg="'WARN' found inside cloud-init.log")
        self.assertEqual(
            1, len(warnings),
            msg="Did not find %s in cloud-init.log" % redirect_msg)

# vi: ts=4 expandtab