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])
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())
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))
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())
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
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, ), )
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)