Example #1
0
    def test_run_single_platform_failure(self):
        """Tests the main run method in a case where one test fails on one platform."""
        host = self.mock_host()

        # Fill in an initial value for TestExpectations
        expectations_path = host.port_factory.get(
        ).path_to_generic_test_expectations_file()
        host.filesystem.write_text_file(expectations_path,
                                        MARKER_COMMENT + '\n')

        # Set up fake try job results.
        updater = WPTExpectationsUpdater(host)
        updater.get_latest_try_jobs = lambda: {
            Build('MOCK Try Mac10.10', 333): TryJobStatus(
                'COMPLETED', 'FAILURE'),
            Build('MOCK Try Mac10.11', 111): TryJobStatus(
                'COMPLETED', 'SUCCESS'),
            Build('MOCK Try Trusty', 222): TryJobStatus(
                'COMPLETED', 'SUCCESS'),
            Build('MOCK Try Precise', 333): TryJobStatus(
                'COMPLETED', 'SUCCESS'),
            Build('MOCK Try Win10', 444): TryJobStatus('COMPLETED', 'SUCCESS'),
            Build('MOCK Try Win7', 555): TryJobStatus('COMPLETED', 'SUCCESS'),
        }

        # Set up failing results for one try bot. It shouldn't matter what
        # results are for the other builders since we shouldn't need to even
        # fetch results, since the try job status already tells us that all
        # of the tests passed.
        host.buildbot.set_results(
            Build('MOCK Try Mac10.10', 333),
            LayoutTestResults({
                'tests': {
                    'external': {
                        'wpt': {
                            'test': {
                                'path.html': {
                                    'expected': 'PASS',
                                    'actual': 'TIMEOUT',
                                    'is_unexpected': True,
                                }
                            }
                        }
                    }
                }
            }))
        self.assertEqual(0, updater.run(args=[]))

        # Results are only fetched for failing builds.
        self.assertEqual(host.buildbot.fetched_builds,
                         [Build('MOCK Try Mac10.10', 333)])

        self.assertEqual(
            host.filesystem.read_text_file(expectations_path),
            '# ====== New tests from wpt-importer added here ======\n'
            'crbug.com/626703 [ Mac10.10 ] external/wpt/test/path.html [ Timeout ]\n'
        )
Example #2
0
 def test_run_no_try_results(self):
     updater = WPTExpectationsUpdater(self.mock_host())
     updater.get_latest_try_jobs = lambda: []
     self.assertEqual(1, updater.run(args=[]))
     self.assertLog(['ERROR: No try job information was collected.\n'])