def setup_webserver(cls, app, redis=StrictRedis, cassandra=CassandraContext): with URLFactoryTest.mock(), MockModelFactory.safari(), MockModelFactory.webkit(): cassandra.drop_keyspace(keyspace=cls.KEYSPACE) model = MockModelFactory.create(redis=redis(), cassandra=cassandra(keyspace=cls.KEYSPACE, create_keyspace=True)) model.ci_context.add_url_factory(BuildbotURLFactory(master='build.webkit.org', redis=model.redis)) app.register_blueprint(APIRoutes(model)) with model.upload_context: # Mock results are more complicated because we want to attach results to builders for configuration in [ Configuration(platform='Mac', version_name='Catalina', version='10.15.0', sdk='19A500', is_simulator=False, architecture='x86_64', style='Release', flavor='wk1'), Configuration(platform='Mac', version_name='Catalina', version='10.15.0', sdk='19A500', is_simulator=False, architecture='x86_64', style='Release', flavor='wk2'), Configuration(platform='Mac', version_name='Mojave', version='10.14.0', sdk='18A500', is_simulator=False, architecture='x86_64', style='Release', flavor='wk1'), Configuration(platform='Mac', version_name='Mojave', version='10.14.0', sdk='18A500', is_simulator=False, architecture='x86_64', style='Release', flavor='wk2'), ]: build_count = [1] 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 MockModelFactory.iterate_all_commits(model, callback) MockModelFactory.process_results(model, configuration)
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 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 setup_webserver(cls, app, redis=StrictRedis, cassandra=CassandraContext): redis_instance = redis() safari = MockStashRepository.safari(redis_instance) webkit = MockSVNRepository.webkit(redis_instance) cassandra.drop_keyspace(keyspace=cls.KEYSPACE) cassandra_instance = cassandra(keyspace=cls.KEYSPACE, create_keyspace=True) app.register_blueprint( APIRoutes( Model(redis=redis_instance, cassandra=cassandra_instance, repositories=[safari, webkit])))
def setup_webserver(cls, app, redis=StrictRedis, cassandra=CassandraContext): with MockModelFactory.safari(), MockModelFactory.webkit(): cassandra.drop_keyspace(keyspace=cls.KEYSPACE) redis_instance = redis() model = Model( redis=redis_instance, cassandra=cassandra(keyspace=cls.KEYSPACE, create_keyspace=True), repositories=[ WebKitRepository(), StashRepository('https://bitbucket.example.com/projects/SAFARI/repos/safari'), ], ) api_routes = APIRoutes(model=model, import_name=__name__) view_routes = ViewRoutes(model=model, controller=api_routes, import_name=__name__) app.register_blueprint(api_routes) app.register_blueprint(view_routes)
def setup_webserver(cls, app, redis=StrictRedis, cassandra=CassandraContext): with MockModelFactory.safari(), MockModelFactory.webkit(): redis_instance = redis() safari = StashRepository( 'https://bitbucket.example.com/projects/SAFARI/repos/safari') webkit = WebKitRepository() cassandra.drop_keyspace(keyspace=cls.KEYSPACE) cassandra_instance = cassandra(keyspace=cls.KEYSPACE, create_keyspace=True) app.register_blueprint( APIRoutes( Model(redis=redis_instance, cassandra=cassandra_instance, repositories=[safari, webkit])))
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)
import hashlib import json from example.environment import Environment, ModelFromEnvironment from flask import abort, Flask, request from resultsdbpy.controller.api_routes import APIRoutes from resultsdbpy.view.view_routes import ViewRoutes environment = Environment() print(f'Environment for web-app:\n{environment}') model = ModelFromEnvironment(environment) app = Flask(__name__) api_routes = APIRoutes(model=model, import_name=__name__) view_routes = ViewRoutes( title='Example Results Database', model=model, controller=api_routes, import_name=__name__, ) @app.route('/__health', methods=('GET', )) def health(): if not model.healthy(writable=True): abort(503, description='Health check failed, invalid database connections') return 'ok'