Path: blob/master/AndroidRunner/ExperimentFactory.py
629 views
import logging1import os.path as op2import shutil34import paths5from . import util6from .Experiment import Experiment7from .NativeExperiment import NativeExperiment8from .Progress import Progress9from .WebExperiment import WebExperiment10from tests.PluginTests import PluginTests1112logger = logging.getLogger('ExperimentFactory')131415class ExperimentFactory(object):16def __init__(self):17pass1819@staticmethod20def from_json(path, progress):21"""Returns an Experiment object from a JSON configuration"""22logger.info(path)23shutil.copy(path, op.join(paths.OUTPUT_DIR, 'config.json'))24config = util.load_json(path)25experiment_type = config['type']26if experiment_type == 'plugintest':27return PluginTests(config)28if progress is None:29progress = Progress(config_file=path, config=config, load_progress=False)30restart = False31else:32restart = True33if experiment_type == 'native':34return NativeExperiment(config, progress, restart)35elif experiment_type == 'web':36return WebExperiment(config, progress, restart)37else:38return Experiment(config, progress, restart)394041