class ReportsProcessorTests(unittest.TestCase):
    def setUp(self):
        self.reports_processor = ReportsProcessor(Mock(), Mock())
        total_time = Mock()
        total_time.get_millis.return_value = 42
        self.reports_processor.process_reports([], total_time)

    def test_should_raise_exception_when_not_all_tests_pass(self):
        self.reports_processor.tests_failed = 1

        self.assertRaises(BuildFailedException, self.reports_processor.write_report_and_ensure_all_tests_passed)

    def test_should_not_raise_exception_when_all_tests_pass(self):
        self.reports_processor.tests_failed = 0

        self.reports_processor.write_report_and_ensure_all_tests_passed()

    @patch("pybuilder.plugins.python.test_plugin_helper.render_report", return_value='rendered-report')
    def test_should_write_report(self, render_report):
        self.reports_processor.write_report_and_ensure_all_tests_passed()

        self.reports_processor.project.write_report.assert_called_with("integrationtest.json", 'rendered-report')

    def test_should_parse_reports(self):
        reports = [
            {'test': 'name1', 'test_file':
                'file1', 'success': False, 'time': 1},
            {'test': 'name2', 'test_file':
                'file2', 'success': False, 'time': 2},
            {'test': 'name3', 'test_file':
                'file3', 'success': True, 'time': 3},
            {'test': 'name4', 'test_file': 'file4', 'success': True, 'time': 4}
        ]
        self.reports_processor.process_reports(reports, Mock())

        self.assertEqual(self.reports_processor.tests_failed, 2)
        self.assertEqual(self.reports_processor.tests_executed, 4)

    def test_should_create_test_report_with_attributes(self):
        mock_time = Mock()
        mock_time.get_millis.return_value = 42

        self.reports_processor.process_reports([], mock_time)
        self.reports_processor.tests_failed = 4
        self.reports_processor.tests_executed = 42
        self.reports_processor.reports = ['a', 'b', 'c']

        self.assertEqual(self.reports_processor.test_report,
                         {
                             'num_of_tests': 42,
                             'success': False,
                             'tests': ['a', 'b', 'c'],
                             'tests_failed': 4,
                             'time': 42
                         }
                         )
def run_acceptance_tests(project, logger):
    if not project.get_property("acceptancetest_parallel"):
        reports, total_time = run_acceptance_tests_sequentially(
            project, logger)
    else:
        reports, total_time = run_acceptance_tests_in_parallel(
            project, logger)

    reports_processor = ReportsProcessor(project, logger)
    reports_processor.process_reports(reports, total_time)
    reports_processor.write_report_and_ensure_all_tests_passed()
def run_integration_tests(project, logger):
    if not project.get_property("integrationtest_parallel"):
        reports, total_time = run_integration_tests_sequentially(
            project, logger)
    else:
        reports, total_time = run_integration_tests_in_parallel(
            project, logger)

    reports_processor = ReportsProcessor(project, logger)
    reports_processor.process_reports(reports, total_time)
    reports_processor.report_to_ci_server(project)
    reports_processor.write_report_and_ensure_all_tests_passed()
def run_integration_tests(project, logger, reactor):
    if project.get_property("integrationtest_parallel"):
        logger.warn("Parallel integration test execution is temporarily disabled")

    # if not project.get_property("integrationtest_parallel"):
    reports, total_time = run_integration_tests_sequentially(project, logger, reactor)
    # else:
    #    reports, total_time = run_integration_tests_in_parallel(project, logger)

    reports_processor = ReportsProcessor(project, logger)
    reports_processor.process_reports(reports, total_time)
    reports_processor.report_to_ci_server(project)
    reports_processor.write_report_and_ensure_all_tests_passed()
def run_integration_tests(project, logger):
    if not project.get_property("integrationtest_parallel"):
        reports, total_time = run_integration_tests_sequentially(
            project, logger)
    else:
        reports, total_time = run_integration_tests_in_parallel(
            project, logger)

    reports_processor = ReportsProcessor(project, logger)
    reports_processor.process_reports(reports, total_time)
    reports_processor.report_to_ci_server(project)
    reports_processor.write_report_and_ensure_all_tests_passed()
Esempio n. 6
0
 def setUp(self):
     self.reports_processor = ReportsProcessor(mock(), mock())
     self.reports_processor.process_reports([], mock())
Esempio n. 7
0
class ReportsProcessorTests(unittest.TestCase):

    def setUp(self):
        self.reports_processor = ReportsProcessor(mock(), mock())
        self.reports_processor.process_reports([], mock())

    def tearDown(self):
        unstub()

    def test_should_raise_exception_when_not_all_tests_pass(self):

        self.reports_processor.tests_failed = 1

        self.assertRaises(
            BuildFailedException, self.reports_processor.write_report_and_ensure_all_tests_passed)

    def test_should_not_raise_exception_when_all_tests_pass(self):
        self.reports_processor.tests_failed = 0

        self.reports_processor.write_report_and_ensure_all_tests_passed()

    def test_should_write_report(self):
        when(pybuilder.plugins.python.test_plugin_helper).render_report(
            any()).thenReturn('rendered-report')

        self.reports_processor.write_report_and_ensure_all_tests_passed()

        verify(self.reports_processor.project).write_report(
            "integrationtest.json", 'rendered-report')

    def test_should_parse_reports(self):
        reports = [
            {'test': 'name1', 'test_file':
                'file1', 'success': False, 'time': 1},
            {'test': 'name2', 'test_file':
                'file2', 'success': False, 'time': 2},
            {'test': 'name3', 'test_file':
                'file3', 'success': True, 'time': 3},
            {'test': 'name4', 'test_file': 'file4', 'success': True, 'time': 4}
        ]
        self.reports_processor.process_reports(reports, mock())

        self.assertEqual(self.reports_processor.tests_failed, 2)
        self.assertEqual(self.reports_processor.tests_executed, 4)

    def test_should_create_test_report_with_attributes(self):
        mock_time = mock()
        when(mock_time).get_millis().thenReturn(42)

        self.reports_processor.process_reports([], mock_time)
        self.reports_processor.tests_failed = 4
        self.reports_processor.tests_executed = 42
        self.reports_processor.reports = ['a', 'b', 'c']

        self.assertEqual(self.reports_processor.test_report,
                         {
                             'num_of_tests': 42,
                             'success': False,
                             'tests': ['a', 'b', 'c'],
                             'tests_failed': 4,
                             'time': 42
                         }
                         )
Esempio n. 8
0
 def setUp(self):
     self.reports_processor = ReportsProcessor(Mock(), Mock())
     total_time = Mock()
     total_time.get_millis.return_value = 42
     self.reports_processor.process_reports([], total_time)
Esempio n. 9
0
class ReportsProcessorTests(unittest.TestCase):
    def setUp(self):
        self.reports_processor = ReportsProcessor(Mock(), Mock())
        total_time = Mock()
        total_time.get_millis.return_value = 42
        self.reports_processor.process_reports([], total_time)

    def test_should_raise_exception_when_not_all_tests_pass(self):
        self.reports_processor.tests_failed = 1

        self.assertRaises(
            BuildFailedException,
            self.reports_processor.write_report_and_ensure_all_tests_passed)

    def test_should_not_raise_exception_when_all_tests_pass(self):
        self.reports_processor.tests_failed = 0

        self.reports_processor.write_report_and_ensure_all_tests_passed()

    @patch("pybuilder.plugins.python.test_plugin_helper.render_report",
           return_value='rendered-report')
    def test_should_write_report(self, render_report):
        self.reports_processor.write_report_and_ensure_all_tests_passed()

        self.reports_processor.project.write_report.assert_called_with(
            "integrationtest.json", 'rendered-report')

    def test_should_parse_reports(self):
        reports = [{
            'test': 'name1',
            'test_file': 'file1',
            'success': False,
            'time': 1
        }, {
            'test': 'name2',
            'test_file': 'file2',
            'success': False,
            'time': 2
        }, {
            'test': 'name3',
            'test_file': 'file3',
            'success': True,
            'time': 3
        }, {
            'test': 'name4',
            'test_file': 'file4',
            'success': True,
            'time': 4
        }]
        self.reports_processor.process_reports(reports, Mock())

        self.assertEqual(self.reports_processor.tests_failed, 2)
        self.assertEqual(self.reports_processor.tests_executed, 4)

    def test_should_create_test_report_with_attributes(self):
        mock_time = Mock()
        mock_time.get_millis.return_value = 42

        self.reports_processor.process_reports([], mock_time)
        self.reports_processor.tests_failed = 4
        self.reports_processor.tests_executed = 42
        self.reports_processor.reports = ['a', 'b', 'c']

        self.assertEqual(
            self.reports_processor.test_report, {
                'num_of_tests': 42,
                'success': False,
                'tests': ['a', 'b', 'c'],
                'tests_failed': 4,
                'time': 42
            })
 def setUp(self):
     self.reports_processor = ReportsProcessor(Mock(), Mock())
     total_time = Mock()
     total_time.get_millis.return_value = 42
     self.reports_processor.process_reports([], total_time)