Esempio n. 1
0
    def test_execute_commands_and_build_email_teardown_timeout(self):
        """Test functions correctly when a teardown timeout occurs."""
        obs = _execute_commands_and_build_email(
            [['Test1', 'echo foo']],
            ['echo setting up'],
            ['echo foo'],
            ['echo tearing down && sleep 5'],
            1, 1, 0.01, 'test-cluster-tag')
        self.assertEqual(obs[0], "Test1: Pass\n\nThe maximum allowable "
        "cluster termination time of 0.01 minute(s) was exceeded.\n\n"
        "IMPORTANT: You should check that the cluster labelled with the tag "
        "'test-cluster-tag' was properly terminated. If not, you should "
        "manually terminate it.\n\n")

        self.assertEqual(len(obs[1]), 2)
        name, log_f = obs[1][0]
        self.assertEqual(name, 'complete_log.txt')
        self.assertEqual(log_f.read(),
            "Command:\n\necho setting up\n\nStdout:\n\nsetting up\n\nStderr:\n"
            "\n\nCommand:\n\necho foo\n\nStdout:\n\nfoo\n\nStderr:\n\n\n"
            "Command:\n\necho tearing down && sleep 5\n\nStdout:\n\ntearing "
            "down\n\nStderr:\n\n\n")

        name, log_f = obs[1][1]
        self.assertEqual(name, 'Test1_results.txt')
        self.assertEqual(log_f.read(),
            "Command:\n\necho foo\n\nStdout:\n\nfoo\n\nStderr:\n\n\n")
Esempio n. 2
0
    def test_execute_commands_and_build_email(self):
        """Test functions correctly using standard, valid input."""
        obs = _execute_commands_and_build_email(
            [['Test1', 'echo foo'], ['Test2', 'echo bar']],
            ['echo setting up', 'echo ...'],
            ['echo foo', 'echo bar'],
            ['echo tearing down', 'echo ...'],
            1, 1, 1, 'test-cluster-tag')
        self.assertEqual(obs[0], 'Test1: Pass\nTest2: Pass\n\n')

        self.assertEqual(len(obs[1]), 3)
        name, log_f = obs[1][0]
        self.assertEqual(name, 'complete_log.txt')
        self.assertEqual(log_f.read(),
            "Command:\n\necho setting up\n\nStdout:\n\nsetting up\n\n"
            "Stderr:\n\n\n"
            "Command:\n\necho ...\n\nStdout:\n\n...\n\nStderr:\n\n\n"
            "Command:\n\necho foo\n\nStdout:\n\nfoo\n\nStderr:\n\n\n"
            "Command:\n\necho bar\n\nStdout:\n\nbar\n\nStderr:\n\n\n"
            "Command:\n\necho tearing down\n\nStdout:\n\ntearing down\n\n"
            "Stderr:\n\n\n"
            "Command:\n\necho ...\n\nStdout:\n\n...\n\nStderr:\n\n\n")

        name, log_f = obs[1][1]
        self.assertEqual(name, 'Test1_results.txt')
        self.assertEqual(log_f.read(),
            "Command:\n\necho foo\n\nStdout:\n\nfoo\n\nStderr:\n\n\n")

        name, log_f = obs[1][2]
        self.assertEqual(name, 'Test2_results.txt')
        self.assertEqual(log_f.read(),
            "Command:\n\necho bar\n\nStdout:\n\nbar\n\nStderr:\n\n\n")
Esempio n. 3
0
    def test_execute_commands_and_build_email_failures(self):
        """Test functions correctly when a test suite fails."""
        obs = _execute_commands_and_build_email(
            [['Test1', 'foobarbaz']],
            ['echo setting up'],
            ['foobarbaz'],
            ['echo tearing down'],
            1, 1, 1, 'test-cluster-tag')
        self.assertEqual(obs[0], 'Test1: Fail\n\n')

        self.assertEqual(len(obs[1]), 2)
        name, log_f = obs[1][0]
        self.assertEqual(name, 'complete_log.txt')

        # We can't directly test the error message returned by /bin/sh because
        # this will differ between platforms (tested on Mac OS X and Ubuntu).
        # So strip out the error message, but keep everything else.
        self.assertEqual(sub('Stderr:\n\n.*\n\n', 'Stderr:\n\n\n\n',
                             log_f.read()),
            "Command:\n\necho setting up\n\nStdout:\n\nsetting up\n\n"
            "Stderr:\n\n\n"
            "Command:\n\nfoobarbaz\n\nStdout:\n\n\nStderr:\n\n\n\n"
            "Command:\n\necho tearing down\n\nStdout:\n\ntearing down\n\n"
            "Stderr:\n\n\n")

        name, log_f = obs[1][1]
        self.assertEqual(name, 'Test1_results.txt')
        self.assertEqual(sub('Stderr:\n\n.*\n\n', 'Stderr:\n\n\n\n',
                             log_f.read()),
            "Command:\n\nfoobarbaz\n\nStdout:\n\n\nStderr:\n\n\n\n")
Esempio n. 4
0
    def test_execute_commands_and_build_email_failures(self):
        """Test functions correctly when a test suite fails."""
        obs = _execute_commands_and_build_email([['Test1', 'foobarbaz']],
                                                ['echo setting up'],
                                                ['foobarbaz'],
                                                ['echo tearing down'], 1, 1, 1,
                                                'test-cluster-tag')
        self.assertEqual(obs[0], 'Test1: Fail\n\n')

        self.assertEqual(len(obs[1]), 2)
        name, log_f = obs[1][0]
        self.assertEqual(name, 'complete_log.txt')

        # We can't directly test the error message returned by /bin/sh because
        # this will differ between platforms (tested on Mac OS X and Ubuntu).
        # So strip out the error message, but keep everything else.
        self.assertEqual(
            sub('Stderr:\n\n.*\n\n', 'Stderr:\n\n\n\n', log_f.read()),
            "Command:\n\necho setting up\n\nStdout:\n\nsetting up\n\n"
            "Stderr:\n\n\n"
            "Command:\n\nfoobarbaz\n\nStdout:\n\n\nStderr:\n\n\n\n"
            "Command:\n\necho tearing down\n\nStdout:\n\ntearing down\n\n"
            "Stderr:\n\n\n")

        name, log_f = obs[1][1]
        self.assertEqual(name, 'Test1_results.txt')
        self.assertEqual(
            sub('Stderr:\n\n.*\n\n', 'Stderr:\n\n\n\n', log_f.read()),
            "Command:\n\nfoobarbaz\n\nStdout:\n\n\nStderr:\n\n\n\n")
Esempio n. 5
0
    def test_execute_commands_and_build_email_teardown_timeout(self):
        """Test functions correctly when a teardown timeout occurs."""
        obs = _execute_commands_and_build_email(
            [['Test1', 'echo foo']], ['echo setting up'], ['echo foo'],
            ['echo tearing down && sleep 5'], 1, 1, 0.01, 'test-cluster-tag')
        self.assertEqual(
            obs[0], "Test1: Pass\n\nThe maximum allowable "
            "cluster termination time of 0.01 minute(s) was exceeded.\n\n"
            "IMPORTANT: You should check that the cluster labelled with the tag "
            "'test-cluster-tag' was properly terminated. If not, you should "
            "manually terminate it.\n\n")

        self.assertEqual(len(obs[1]), 2)
        name, log_f = obs[1][0]
        self.assertEqual(name, 'complete_log.txt')
        self.assertEqual(
            log_f.read(),
            "Command:\n\necho setting up\n\nStdout:\n\nsetting up\n\nStderr:\n"
            "\n\nCommand:\n\necho foo\n\nStdout:\n\nfoo\n\nStderr:\n\n\n"
            "Command:\n\necho tearing down && sleep 5\n\nStdout:\n\ntearing "
            "down\n\nStderr:\n\n\n")

        name, log_f = obs[1][1]
        self.assertEqual(name, 'Test1_results.txt')
        self.assertEqual(
            log_f.read(),
            "Command:\n\necho foo\n\nStdout:\n\nfoo\n\nStderr:\n\n\n")
Esempio n. 6
0
    def test_execute_commands_and_build_email(self):
        """Test functions correctly using standard, valid input."""
        obs = _execute_commands_and_build_email(
            [['Test1', 'echo foo'], ['Test2', 'echo bar']],
            ['echo setting up', 'echo ...'], ['echo foo', 'echo bar'],
            ['echo tearing down', 'echo ...'], 1, 1, 1, 'test-cluster-tag')
        self.assertEqual(obs[0], 'Test1: Pass\nTest2: Pass\n\n')

        self.assertEqual(len(obs[1]), 3)
        name, log_f = obs[1][0]
        self.assertEqual(name, 'complete_log.txt')
        self.assertEqual(
            log_f.read(),
            "Command:\n\necho setting up\n\nStdout:\n\nsetting up\n\n"
            "Stderr:\n\n\n"
            "Command:\n\necho ...\n\nStdout:\n\n...\n\nStderr:\n\n\n"
            "Command:\n\necho foo\n\nStdout:\n\nfoo\n\nStderr:\n\n\n"
            "Command:\n\necho bar\n\nStdout:\n\nbar\n\nStderr:\n\n\n"
            "Command:\n\necho tearing down\n\nStdout:\n\ntearing down\n\n"
            "Stderr:\n\n\n"
            "Command:\n\necho ...\n\nStdout:\n\n...\n\nStderr:\n\n\n")

        name, log_f = obs[1][1]
        self.assertEqual(name, 'Test1_results.txt')
        self.assertEqual(
            log_f.read(),
            "Command:\n\necho foo\n\nStdout:\n\nfoo\n\nStderr:\n\n\n")

        name, log_f = obs[1][2]
        self.assertEqual(name, 'Test2_results.txt')
        self.assertEqual(
            log_f.read(),
            "Command:\n\necho bar\n\nStdout:\n\nbar\n\nStderr:\n\n\n")
Esempio n. 7
0
    def test_execute_commands_and_build_email_setup_timeout(self):
        """Test functions correctly when a setup timeout occurs."""
        obs = _execute_commands_and_build_email(
            [['Test1', 'echo foo']],
            ['echo setting up && sleep 5'],
            ['echo foo'],
            ['echo tearing down'],
            0.01, 1, 1, 'test-cluster-tag')
        self.assertEqual(obs[0], 'The maximum allowable cluster setup time of '
        '0.01 minute(s) was exceeded.\n\n')

        self.assertEqual(len(obs[1]), 1)
        name, log_f = obs[1][0]
        self.assertEqual(name, 'complete_log.txt')
        self.assertEqual(log_f.read(),
            "Command:\n\necho setting up && sleep 5\n\nStdout:\n\nsetting up\n"
            "\nStderr:\n\n\nCommand:\n\necho tearing down\n\nStdout:\n\n"
            "tearing down\n\nStderr:\n\n\n")
Esempio n. 8
0
    def test_execute_commands_and_build_email_setup_failure(self):
        """Test functions correctly when a setup command fails."""
        obs = _execute_commands_and_build_email(
            [['Test1', 'echo foo']], ['foobarbaz', 'echo setting up'],
            ['echo foo'], ['echo tearing down'], 1, 1, 1, 'test-cluster-tag')
        self.assertEqual(
            obs[0], 'There were problems in starting the remote '
            'cluster while preparing to execute the test suite(s). Please check '
            'the attached log for more details.\n\n')

        self.assertEqual(len(obs[1]), 1)
        name, log_f = obs[1][0]
        self.assertEqual(name, 'complete_log.txt')
        self.assertEqual(
            sub('Stderr:\n\n.*\n\n', 'Stderr:\n\n\n\n', log_f.read()),
            "Command:\n\nfoobarbaz\n\nStdout:\n\n\nStderr:\n\n\n\n"
            "Command:\n\necho tearing down\n\nStdout:\n\ntearing down\n\n"
            "Stderr:\n\n\n")
Esempio n. 9
0
    def test_execute_commands_and_build_email_setup_timeout(self):
        """Test functions correctly when a setup timeout occurs."""
        obs = _execute_commands_and_build_email([['Test1', 'echo foo']],
                                                ['echo setting up && sleep 5'],
                                                ['echo foo'],
                                                ['echo tearing down'], 0.01, 1,
                                                1, 'test-cluster-tag')
        self.assertEqual(
            obs[0], 'The maximum allowable cluster setup time of '
            '0.01 minute(s) was exceeded.\n\n')

        self.assertEqual(len(obs[1]), 1)
        name, log_f = obs[1][0]
        self.assertEqual(name, 'complete_log.txt')
        self.assertEqual(
            log_f.read(),
            "Command:\n\necho setting up && sleep 5\n\nStdout:\n\nsetting up\n"
            "\nStderr:\n\n\nCommand:\n\necho tearing down\n\nStdout:\n\n"
            "tearing down\n\nStderr:\n\n\n")
Esempio n. 10
0
    def test_execute_commands_and_build_email_setup_failure(self):
        """Test functions correctly when a setup command fails."""
        obs = _execute_commands_and_build_email(
            [['Test1', 'echo foo']],
            ['foobarbaz', 'echo setting up'],
            ['echo foo'],
            ['echo tearing down'],
            1, 1, 1, 'test-cluster-tag')
        self.assertEqual(obs[0], 'There were problems in starting the '
        'cluster while preparing to execute the test suite(s). Please check '
        'the attached log for more details.\n\n')

        self.assertEqual(len(obs[1]), 1)
        name, log_f = obs[1][0]
        self.assertEqual(name, 'complete_log.txt')
        self.assertEqual(sub('Stderr:\n\n.*\n\n', 'Stderr:\n\n\n\n',
                             log_f.read()),
            "Command:\n\nfoobarbaz\n\nStdout:\n\n\nStderr:\n\n\n\n"
            "Command:\n\necho tearing down\n\nStdout:\n\ntearing down\n\n"
            "Stderr:\n\n\n")
Esempio n. 11
0
    def test_execute_commands_and_build_email_teardown_failure(self):
        """Test functions correctly when a teardown command fails."""
        obs = _execute_commands_and_build_email(
            [['Test1', 'echo foo']], ['foobarbaz', 'echo setting up'],
            ['echo foo'], ['foobarbaz'], 1, 1, 1, 'test-cluster-tag')
        self.assertEqual(
            obs[0], "There were problems in starting the remote "
            "cluster while preparing to execute the test suite(s). Please check "
            "the attached log for more details.\n\nThere were problems in "
            "terminating the remote cluster. Please check the attached log for "
            "more details.\n\nIMPORTANT: You should check that the cluster "
            "labelled with the tag 'test-cluster-tag' was properly terminated. If "
            "not, you should manually terminate it.\n\n")

        self.assertEqual(len(obs[1]), 1)
        name, log_f = obs[1][0]
        self.assertEqual(name, 'complete_log.txt')
        self.assertEqual(
            sub('Stderr:\n\n.*\n\n', 'Stderr:\n\n\n\n', log_f.read()),
            "Command:\n\nfoobarbaz\n\nStdout:\n\n\nStderr:\n\n\n\n"
            "Command:\n\nfoobarbaz\n\nStdout:\n\n\nStderr:\n\n\n\n")
Esempio n. 12
0
    def test_execute_commands_and_build_email_teardown_failure(self):
        """Test functions correctly when a teardown command fails."""
        obs = _execute_commands_and_build_email(
            [['Test1', 'echo foo']],
            ['foobarbaz', 'echo setting up'],
            ['echo foo'],
            ['foobarbaz'],
            1, 1, 1, 'test-cluster-tag')
        self.assertEqual(obs[0], "There were problems in starting the "
        "cluster while preparing to execute the test suite(s). Please check "
        "the attached log for more details.\n\nThere were problems in "
        "terminating the cluster. Please check the attached log for "
        "more details.\n\nIMPORTANT: You should check that the cluster "
        "labelled with the tag 'test-cluster-tag' was properly terminated. If "
        "not, you should manually terminate it.\n\n")

        self.assertEqual(len(obs[1]), 1)
        name, log_f = obs[1][0]
        self.assertEqual(name, 'complete_log.txt')
        self.assertEqual(sub('Stderr:\n\n.*\n\n', 'Stderr:\n\n\n\n',
                             log_f.read()),
            "Command:\n\nfoobarbaz\n\nStdout:\n\n\nStderr:\n\n\n\n"
            "Command:\n\nfoobarbaz\n\nStdout:\n\n\nStderr:\n\n\n\n")
Esempio n. 13
0
    def test_execute_commands_and_build_email_test_suite_timeout(self):
        """Test functions correctly when a test suite timeout occurs."""
        # Test a timeout that occurs in the first test suite to run.
        obs = _execute_commands_and_build_email(
            [['Test1', 'echo foo && sleep 5'], ['Test2', 'echo bar']],
            ['echo setting up'],
            ['echo foo && sleep 5', 'echo bar'],
            ['echo tearing down'],
            1, 0.01, 1, 'test-cluster-tag')
        self.assertEqual(obs[0], 'Test1: Fail\n\nThe maximum allowable time '
            'of 0.01 minute(s) for all test suites to run was exceeded. The '
            'timeout occurred while running the Test1 test suite. The '
            'following test suites were not tested: Test2\n\n')

        self.assertEqual(len(obs[1]), 2)
        name, log_f = obs[1][0]
        self.assertEqual(name, 'complete_log.txt')
        self.assertEqual(log_f.read(),
            "Command:\n\necho setting up\n\nStdout:\n\nsetting up\n\n"
            "Stderr:\n\n\n"
            "Command:\n\necho foo && sleep 5\n\n"
            "Stdout:\n\nfoo\n\nStderr:\n\n\n"
            "Command:\n\necho tearing down\n\nStdout:\n\ntearing down\n\n"
            "Stderr:\n\n\n")

        name, log_f = obs[1][1]
        self.assertEqual(name, 'Test1_results.txt')
        self.assertEqual(log_f.read(),
            "Command:\n\necho foo && sleep 5\n\n"
            "Stdout:\n\nfoo\n\nStderr:\n\n\n")

        # Test a timeout that occurs in the last test suite to run.
        obs = _execute_commands_and_build_email(
            [['Test1', 'echo foo'], ['Test2', 'sleep 5 && echo bar']],
            ['echo setting up'],
            ['echo foo', 'sleep 5 && echo bar'],
            ['echo tearing down'],
            1, 0.01, 1, 'test-cluster-tag')
        self.assertEqual(obs[0], 'Test1: Pass\nTest2: Fail\n\nThe maximum '
            'allowable time of 0.01 minute(s) for all test suites to run was '
            'exceeded. The timeout occurred while running the Test2 test '
            'suite.')

        self.assertEqual(len(obs[1]), 3)
        name, log_f = obs[1][0]
        self.assertEqual(name, 'complete_log.txt')
        self.assertEqual(log_f.read(),
            "Command:\n\necho setting up\n\nStdout:\n\nsetting up\n\n"
            "Stderr:\n\n\n"
            "Command:\n\necho foo\n\nStdout:\n\nfoo\n\nStderr:\n\n\n"
            "Command:\n\nsleep 5 && echo bar\n\nStdout:\n\n\nStderr:\n\n\n"
            "Command:\n\necho tearing down\n\nStdout:\n\ntearing down\n\n"
            "Stderr:\n\n\n")

        name, log_f = obs[1][1]
        self.assertEqual(name, 'Test1_results.txt')
        self.assertEqual(log_f.read(),
            "Command:\n\necho foo\n\nStdout:\n\nfoo\n\nStderr:\n\n\n")

        name, log_f = obs[1][2]
        self.assertEqual(name, 'Test2_results.txt')
        self.assertEqual(log_f.read(),
            "Command:\n\nsleep 5 && echo bar\n\nStdout:\n\n\nStderr:\n\n\n")
Esempio n. 14
0
    def test_execute_commands_and_build_email_test_suite_timeout(self):
        """Test functions correctly when a test suite timeout occurs."""
        # Test a timeout that occurs in the first test suite to run.
        obs = _execute_commands_and_build_email(
            [['Test1', 'echo foo && sleep 5'], ['Test2', 'echo bar']],
            ['echo setting up'], ['echo foo && sleep 5', 'echo bar'],
            ['echo tearing down'], 1, 0.01, 1, 'test-cluster-tag')
        self.assertEqual(
            obs[0], 'Test1: Fail\n\nThe maximum allowable time '
            'of 0.01 minute(s) for all test suites to run was exceeded. The '
            'timeout occurred while running the Test1 test suite. The '
            'following test suites were not tested: Test2\n\n')

        self.assertEqual(len(obs[1]), 2)
        name, log_f = obs[1][0]
        self.assertEqual(name, 'complete_log.txt')
        self.assertEqual(
            log_f.read(),
            "Command:\n\necho setting up\n\nStdout:\n\nsetting up\n\n"
            "Stderr:\n\n\n"
            "Command:\n\necho foo && sleep 5\n\n"
            "Stdout:\n\nfoo\n\nStderr:\n\n\n"
            "Command:\n\necho tearing down\n\nStdout:\n\ntearing down\n\n"
            "Stderr:\n\n\n")

        name, log_f = obs[1][1]
        self.assertEqual(name, 'Test1_results.txt')
        self.assertEqual(
            log_f.read(), "Command:\n\necho foo && sleep 5\n\n"
            "Stdout:\n\nfoo\n\nStderr:\n\n\n")

        # Test a timeout that occurs in the last test suite to run.
        obs = _execute_commands_and_build_email(
            [['Test1', 'echo foo'], ['Test2', 'sleep 5 && echo bar']],
            ['echo setting up'], ['echo foo', 'sleep 5 && echo bar'],
            ['echo tearing down'], 1, 0.01, 1, 'test-cluster-tag')
        self.assertEqual(
            obs[0], 'Test1: Pass\nTest2: Fail\n\nThe maximum '
            'allowable time of 0.01 minute(s) for all test suites to run was '
            'exceeded. The timeout occurred while running the Test2 test '
            'suite.')

        self.assertEqual(len(obs[1]), 3)
        name, log_f = obs[1][0]
        self.assertEqual(name, 'complete_log.txt')
        self.assertEqual(
            log_f.read(),
            "Command:\n\necho setting up\n\nStdout:\n\nsetting up\n\n"
            "Stderr:\n\n\n"
            "Command:\n\necho foo\n\nStdout:\n\nfoo\n\nStderr:\n\n\n"
            "Command:\n\nsleep 5 && echo bar\n\nStdout:\n\n\nStderr:\n\n\n"
            "Command:\n\necho tearing down\n\nStdout:\n\ntearing down\n\n"
            "Stderr:\n\n\n")

        name, log_f = obs[1][1]
        self.assertEqual(name, 'Test1_results.txt')
        self.assertEqual(
            log_f.read(),
            "Command:\n\necho foo\n\nStdout:\n\nfoo\n\nStderr:\n\n\n")

        name, log_f = obs[1][2]
        self.assertEqual(name, 'Test2_results.txt')
        self.assertEqual(
            log_f.read(),
            "Command:\n\nsleep 5 && echo bar\n\nStdout:\n\n\nStderr:\n\n\n")