Source code for anadroid.Config

import json
import os

from anadroid.Types import TESTING_APPROACH, TESTING_FRAMEWORK, BUILD_SYSTEM, PROFILER, INSTRUMENTER, ANALYZER
from anadroid.instrument.Types import INSTRUMENTATION_TYPE
from anadroid.utils.Utils import get_general_config_dir, loge

GENERAL_CONFIG_FILE_NAME = "general_config.json"
RESOURCES_CONFIG_DIR = get_general_config_dir()
CONFIG_FILE = os.path.join(RESOURCES_CONFIG_DIR, GENERAL_CONFIG_FILE_NAME) \
    if not os.path.exists(GENERAL_CONFIG_FILE_NAME) else GENERAL_CONFIG_FILE_NAME


[docs]def get_general_config(cfg_type, cfg_file=CONFIG_FILE): with open(cfg_file, 'r') as jj: cfg = json.load(jj) if cfg_type not in cfg: loge(f"invalid config type {cfg_type}") return {} return cfg[cfg_type] #[key] if key in cfg[cfg_type] else None
[docs]def set_general_config(cfg_type, cfg_key, cfg_value, cfg_file=CONFIG_FILE): with open(cfg_file, 'r') as jj: cfg = json.load(jj) if cfg_type is not None and cfg_type not in cfg: raise Exception(f"invalid config type {cfg_type}") cfg[cfg_type][cfg_key] = cfg_value with open(cfg_file, 'w') as jlo: json.dump(cfg, jlo, indent=1)
SUPPORTED_TESTING_APPROACHES = { TESTING_APPROACH.WHITEBOX } SUPPORTED_TESTING_FRAMEWORKS = { TESTING_FRAMEWORK.MONKEY, TESTING_FRAMEWORK.RERAN, TESTING_FRAMEWORK.APP_CRAWLER, TESTING_FRAMEWORK.MONKEY_RUNNER, TESTING_FRAMEWORK.JUNIT, TESTING_FRAMEWORK.DROIDBOT, TESTING_FRAMEWORK.CUSTOM } SUPPORTED_BUILDING_SYSTEMS = { BUILD_SYSTEM.GRADLE } SUPPORTED_PROFILERS = { PROFILER.TREPN, PROFILER.MANAFA, PROFILER.GREENSCALER, PROFILER.NONE } SUPPORTED_INSTRUMENTERS = { INSTRUMENTER.JINST, INSTRUMENTER.NONE } SUPPORTED_ANALYZERS = { ANALYZER.OLD_ANADROID_ANALYZER, ANALYZER.MANAFA_ANALYZER } SUPPORTED_INSTRUMENTATION_TYPES = { INSTRUMENTATION_TYPE.TEST, INSTRUMENTATION_TYPE.ANNOTATION, INSTRUMENTATION_TYPE.METHOD } SUPPORTED_SUITES = { PROFILER.TREPN: [INSTRUMENTATION_TYPE.TEST, INSTRUMENTATION_TYPE.METHOD], PROFILER.MANAFA: [INSTRUMENTATION_TYPE.ANNOTATION], PROFILER.GREENSCALER: [INSTRUMENTATION_TYPE.ANNOTATION], PROFILER.NONE: [INSTRUMENTATION_TYPE.NONE, INSTRUMENTATION_TYPE.ANNOTATION, INSTRUMENTATION_TYPE.METHOD, INSTRUMENTATION_TYPE.TEST] }