コード例 #1
0
    def test_upload_partial(self, client, **kwargs):
        upload_dict = dict(
            suite='layout-tests',
            commits=[
                dict(repository_id='safari',
                     id='d8bce26fa65c6fc8f39c17927abb77f69fab82fc'),
                dict(repository_id='webkit', id='6')
            ],
            configuration=Configuration.Encoder().default(
                Configuration(
                    platform='iOS',
                    version='12.0.0',
                    sdk='16A404',
                    is_simulator=True,
                    architecture='x86_64',
                    style='Release',
                    flavor='wk2',
                )),
            test_results=MockModelFactory.layout_test_results(),
            timestamp=int(time.time()),
        )
        response = client.post(self.URL + '/api/upload',
                               data=str(json.dumps(upload_dict)))
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.json()['status'], 'ok')
        self.assertEqual(response.json()['processing']['python-tests'],
                         dict(status='ok'))

        response = client.get(self.URL + '/api/upload')
        self.assertEqual(response.status_code, 200)
        for key in ['suite', 'configuration', 'test_results', 'timestamp']:
            self.assertEqual(response.json()[0][key], upload_dict[key])
コード例 #2
0
    def test_result_retrieval_by_sdk(self,
                                     redis=StrictRedis,
                                     cassandra=CassandraContext):
        self.init_database(redis=redis, cassandra=cassandra)
        MockModelFactory.add_mock_results(self.model)

        self.assertEqual(
            0,
            len(
                self.model.upload_context.find_test_results(
                    configurations=[
                        Configuration(platform='iOS', sdk='15A432')
                    ],
                    suite='layout-tests',
                    recent=True)))
        results = self.model.upload_context.find_test_results(
            configurations=[Configuration(platform='iOS', sdk='15A432')],
            suite='layout-tests',
            recent=False)
        self.assertEqual(6, len(results))
        for config, values in results.items():
            self.assertEqual(config.version, 11000000)
            for value in values:
                self.assertEqual(value['sdk'], '15A432')
                self.assertEqual(value['test_results'],
                                 MockModelFactory.layout_test_results())
コード例 #3
0
    def test_upload(self, client, **kwargs):
        upload_dict = dict(
            suite='layout-tests',
            commits=[
                MockStashRepository.safari().commit_for_id('bb6bda5f'),
                MockSVNRepository.webkit().commit_for_id(236542)
            ],
            configuration=Configuration.Encoder().default(
                Configuration(
                    platform='Mac',
                    version='10.14.0',
                    sdk='18A391',
                    is_simulator=False,
                    architecture='x86_64',
                    style='Release',
                    flavor='wk2',
                )),
            test_results=MockModelFactory.layout_test_results(),
            timestamp=int(time.time()),
        )
        response = client.post(self.URL + '/api/upload',
                               data=str(
                                   json.dumps(upload_dict,
                                              cls=Commit.Encoder)))
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.json()['status'], 'ok')
        self.assertEqual(response.json()['processing']['python-tests'],
                         dict(status='ok'))

        response = client.get(self.URL + '/api/upload')
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.json()[0],
                         Commit.Encoder().default(upload_dict))
コード例 #4
0
    def test_result_retrieval_branch(self, redis=StrictRedis, cassandra=CassandraContext):
        self.init_database(redis=redis, cassandra=cassandra)
        MockModelFactory.add_mock_results(self.model)

        results = self.model.upload_context.find_test_results(configurations=[Configuration(platform='iOS', is_simulator=True)], suite='layout-tests', branch='safari-606-branch', recent=True)
        self.assertEqual(3, len(results))
        for config, values in results.items():
            self.assertEqual(config, Configuration(platform='iOS', is_simulator=True))
            self.assertEqual(2, len(values))
            for value in values:
                self.assertEqual(value['test_results'], MockModelFactory.layout_test_results())
コード例 #5
0
 def callback(commits, model=model, configuration=configuration, count=build_count):
     results = MockModelFactory.layout_test_results()
     results['details'] = {
         'buildbot-master': URLFactoryTest.BUILD_MASTER,
         'builder-name': f'{configuration.version_name}-{configuration.style}-{configuration.flavor.upper()}-Tests',
         'build-number': str(count[0]),
         'buildbot-worker': {
             'Mojave': 'bot1',
             'Catalina': 'bot2',
         }.get(configuration.version_name, None),
     }
     model.upload_context.upload_test_results(configuration, commits, suite='layout-tests', timestamp=time.time(), test_results=results)
     count[0] += 1
コード例 #6
0
    def test_image_diff_as_failure_expectations(self,
                                                redis=StrictRedis,
                                                cassandra=CassandraContext):
        test_results = MockModelFactory.layout_test_results()
        test_results['results']['fast']['encoding'][
            'css-cached-bom.html'] = dict(
                actual=Expectations.TIMEOUT,
                expected=Expectations.FAIL,
                time=1.2,
            )
        test_results['results']['fast']['encoding'][
            'css-charset-default.xhtml'] = dict(
                actual=Expectations.IMAGE,
                expected=Expectations.FAIL,
                time=1.2,
            )
        self.init_database(redis=redis,
                           cassandra=cassandra,
                           test_results=test_results)

        results = self.model.suite_context.find_by_start_time(
            configurations=[
                Configuration(platform='Mac', style='Release', flavor='wk1')
            ],
            suite='layout-tests',
            begin=1601660000,
            end=1601660000,
        )

        self.assertEqual(
            next(iter(results.values()))[0]['stats'],
            dict(
                tests_run=4,
                tests_skipped=0,
                tests_failed=2,
                tests_timedout=1,
                tests_crashed=0,
                tests_unexpected_failed=1,
                tests_unexpected_timedout=1,
                tests_unexpected_crashed=0,
            ),
        )
コード例 #7
0
    def test_upload(self, client, **kwargs):
        upload_dict = dict(
            suite='layout-tests',
            commits=[
                dict(repository_id='safari',
                     hash='d8bce26fa65c6fc8f39c17927abb77f69fab82fc'),
                dict(repository_id='webkit',
                     hash='75eaef1c9242f92a8d7694e8ccd310f69cf9683b'),
            ],
            configuration=Configuration.Encoder().default(
                Configuration(
                    platform='Mac',
                    version='10.14.0',
                    sdk='18A391',
                    is_simulator=False,
                    architecture='x86_64',
                    style='Release',
                    flavor='wk2',
                )),
            test_results=MockModelFactory.layout_test_results(),
            timestamp=int(time.time()),
        )
        response = client.post(self.URL + '/api/upload',
                               data=str(json.dumps(upload_dict)))
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.json()['status'], 'ok')
        self.assertEqual(response.json()['processing']['python-tests'],
                         dict(status='ok'))

        response = client.get(self.URL + '/api/upload')
        self.assertEqual(response.status_code, 200)

        retrieved = response.json()[0]
        retrieved['commits'] = [
            dict(repository_id=commit['repository_id'],
                 hash=commit.get('hash', commit.get('revision')))
            for commit in retrieved['commits']
        ]
        self.assertEqual(retrieved, upload_dict)