def init_database(self, redis=StrictRedis, cassandra=CassandraContext): with MockModelFactory.safari(), MockModelFactory.webkit(): cassandra.drop_keyspace(keyspace=self.KEYSPACE) self.model = MockModelFactory.create(redis=redis(), cassandra=cassandra( keyspace=self.KEYSPACE, create_keyspace=True)) MockModelFactory.add_mock_results( self.model, test_results=dict( details=dict(link='dummy-link'), run_stats=dict(tests_skipped=0), results={ 'fast': { 'encoding': { 'css-cached-bom.html': dict(expected='PASS', actual='FAIL', time=1.2), 'css-charset-default.xhtml': dict(expected='FAIL', actual='FAIL', time=1.2), 'css-charset.html': dict(expected='FAIL', actual='PASS', time=1.2), 'css-link-charset.html': dict(expected='PASS', actual='PASS', time=1.2), } } }, )) MockModelFactory.process_results(self.model)
def setup_webserver(cls, app, redis=StrictRedis, cassandra=CassandraContext): with MockModelFactory.safari(), MockModelFactory.webkit(): cassandra.drop_keyspace(keyspace=cls.KEYSPACE) model = MockModelFactory.create(redis=redis(), cassandra=cassandra(keyspace=cls.KEYSPACE, create_keyspace=True)) model.upload_context.register_upload_callback('python-tests', lambda **kwargs: dict(status='ok')) MockModelFactory.add_mock_results(model) app.register_blueprint(APIRoutes(model))
def test_callback(self, redis=StrictRedis, cassandra=CassandraContext): self.init_database(redis=redis, cassandra=cassandra) MockModelFactory.add_mock_results(self.model) configuration_to_search = Configuration(platform='iOS', version='12.0.0', is_simulator=True, style='Asan') configuration, uploads = next( iter( self.model.upload_context.find_test_results( configurations=[configuration_to_search], suite='layout-tests', recent=False).items())) self.model.upload_context.process_test_results( configuration=configuration, commits=uploads[0]['commits'], suite='layout-tests', test_results=uploads[0]['test_results'], timestamp=uploads[0]['timestamp'], ) # Using suite results as a proxy to tell if callbacks were triggered self.assertEqual( 1, len( self.model.suite_context.find_by_commit( configurations=[Configuration()], suite='layout-tests')))
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 init_database(self, redis=StrictRedis, cassandra=CassandraContext): cassandra.drop_keyspace(keyspace=self.KEYSPACE) self.model = MockModelFactory.create(redis=redis(), cassandra=cassandra( keyspace=self.KEYSPACE, create_keyspace=True)) MockModelFactory.add_mock_results(self.model) MockModelFactory.process_results(self.model)
def test_no_failures(self, redis=StrictRedis, cassandra=CassandraContext): cassandra.drop_keyspace(keyspace=self.KEYSPACE) self.model = MockModelFactory.create(redis=redis(), cassandra=cassandra(keyspace=self.KEYSPACE, create_keyspace=True)) MockModelFactory.add_mock_results(self.model) MockModelFactory.process_results(self.model) results = self.model.failure_context.failures_by_commit( configurations=[Configuration(platform='Mac', style='Release', flavor='wk1')], suite='layout-tests', recent=True, collapsed=False, unexpected=False, ) self.assertEqual(len(results), 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())
def test_result_retrieval_limit(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='Mac')], suite='layout-tests', limit=2, recent=True) self.assertEqual(sum([len(value) for value in results.values()]), 12)
def init_database(self, redis=StrictRedis, cassandra=CassandraContext, test_results=None): with MockModelFactory.safari(), MockModelFactory.webkit(): cassandra.drop_keyspace(keyspace=self.KEYSPACE) self.model = MockModelFactory.create(redis=redis(), cassandra=cassandra( keyspace=self.KEYSPACE, create_keyspace=True)) MockModelFactory.add_mock_results(self.model, test_results=test_results) MockModelFactory.process_results(self.model)
def setup_webserver(cls, app, redis=StrictRedis, cassandra=CassandraContext): cassandra.drop_keyspace(keyspace=cls.KEYSPACE) model = MockModelFactory.create(redis=redis(), cassandra=cassandra( keyspace=cls.KEYSPACE, create_keyspace=True)) app.register_blueprint(APIRoutes(model)) MockModelFactory.add_mock_results(model) MockModelFactory.process_results(model)
def test_sdk_differentiation(self, redis=StrictRedis, cassandra=CassandraContext): self.init_database(redis=redis, cassandra=cassandra) MockModelFactory.add_mock_results(self.model) configuration_to_search = Configuration(platform='iOS', version='12.0.0', is_simulator=True, style='Asan') results = self.model.upload_context.find_test_results(configurations=[configuration_to_search], suite='layout-tests', recent=False) self.assertEqual(1, len(results)) MockModelFactory.add_mock_results(self.model, configuration=Configuration( platform='iOS', version='12.0.0', sdk='16A405', is_simulator=True, architecture='x86_64', style='Asan', )) results = self.model.upload_context.find_test_results(configurations=[configuration_to_search], suite='layout-tests', recent=False) self.assertEqual(2, len(results)) results = self.model.upload_context.find_test_results(configurations=[Configuration(platform='iOS', sdk='16A405')], suite='layout-tests', recent=False) self.assertEqual(1, len(results))
def setup_webserver(cls, app, redis=StrictRedis, cassandra=CassandraContext): cassandra.drop_keyspace(keyspace=cls.KEYSPACE) model = MockModelFactory.create(redis=redis(), cassandra=cassandra(keyspace=cls.KEYSPACE, create_keyspace=True)) app.register_blueprint(APIRoutes(model)) MockModelFactory.add_mock_results(model, test_results=dict( details=dict(link='dummy-link'), run_stats=dict(tests_skipped=0), results={ 'fast': { 'encoding': { 'css-cached-bom.html': dict(expected='PASS', actual='FAIL', time=1.2), 'css-charset-default.xhtml': dict(expected='FAIL', actual='FAIL', time=1.2), 'css-charset.html': dict(expected='FAIL', actual='PASS', time=1.2), 'css-link-charset.html': dict(expected='PASS', actual='PAS', time=1.2), } } }, )) MockModelFactory.process_results(model)
def test_suite_list(self, redis=StrictRedis, cassandra=CassandraContext): self.init_database(redis=redis, cassandra=cassandra) MockModelFactory.add_mock_results(self.model) for suites in self.model.upload_context.find_suites( configurations=[Configuration()], recent=True).values(): self.assertEqual(suites, ['layout-tests']) MockModelFactory.add_mock_results(self.model, suite='api_tests') for suites in self.model.upload_context.find_suites( configurations=[Configuration()], recent=True).values(): self.assertEqual(suites, ['api_tests', 'layout-tests']) MockModelFactory.add_mock_results( self.model, configuration=Configuration(is_simulator=True), suite='webkitpy') for suites in self.model.upload_context.find_suites( configurations=[Configuration(is_simulator=True)], recent=True).values(): self.assertEqual(suites, ['api_tests', 'layout-tests', 'webkitpy']) for suites in self.model.upload_context.find_suites( configurations=[Configuration(is_simulator=False)], recent=True).values(): self.assertEqual(suites, ['api_tests', 'layout-tests'])