def test_query(monkeypatch, query_test): config.fmt = 'json' config.debug = False config.debug_url = "https://activedata.allizom.org/tools/query.html#query_id={}" monkeypatch.setattr(query, 'query_activedata', RunQuery(query_test)) module = 'adr.queries.{}'.format(query_test['query']) if module in sys.modules: reload(sys.modules[module]) def print_diff(): buf = IO() yaml.dump(result, buf) print("Yaml formatted result for copy/paste:") print(buf.getvalue()) buf = IO() yaml.dump(query_test['expected'], buf) print("\nYaml formatted expected:") print(buf.getvalue()) if "--debug" in query_test["args"]: config.debug = True formatted_query = format_query(query_test['query']) result = json.loads(formatted_query[0]) debug_url = formatted_query[1] print_diff() assert result == query_test["expected"] assert debug_url == config.debug_url.format( query_test["expected"]["meta"]["saved_as"]) elif "--table" in query_test["args"]: config.fmt = "table" formatted_query = format_query(query_test['query']) result = formatted_query[0] debug_url = formatted_query[1] expected = query_test["expected"]["data"] print("Table formatted result:") print(result) print("Table formatted expected:") print(expected) assert result == expected assert debug_url is None else: formatted_query = format_query(query_test['query']) result = json.loads(formatted_query[0]) debug_url = formatted_query[1] print_diff() assert result == query_test["expected"] assert debug_url is None
def _help(items, request_list, config, parser, request_type): if len(items) == 0: parser.print_help() else: for request in items: if request not in request_list: log.error("{} '{}' not found!".format(request_type, request)) continue if request_type == "recipe": print('Usage for adr ' + request + ':') run_recipe(request, ['--help'], config) else: print('Usage for adr query ' + request + ':') format_query(request, config, ['--help']) return
def query_handler(args, remainder, config): """Runs, formats and prints queries. All functionality remains same as adr.query:cli. :param Namespace args: Namespace object produced by main(). :param list remainder: List of unknown arguments. :param Configuration config: config object """ queries = [os.path.splitext(item)[0] for item in os.listdir( QUERY_DIR) if item.endswith('.query')] _set_logging_verbosity(config.verbose) if args.list: _list(queries) else: _check_tasks_exist(args.task) for query in args.task: if query not in queries: log.error("query '{}' not found!".format(query)) continue data, url = format_query(query, config) print(data) if url: time.sleep(2) webbrowser.open(url, new=2)
def query_handler(args, remainder): """Runs, formats and prints queries. All functionality remains same as adr.query:cli. :param Namespace args: Namespace object produced by main(). :param list remainder: List of unknown arguments. """ queries = [ os.path.splitext(item)[0] for item in os.listdir(QUERY_DIR) if item.endswith('.query') ] _set_logging_verbosity(args.verbose) if args.list: _list(queries) else: _check_tasks_exist(args.task) for query in args.task: if query not in queries: log.error("query '{}' not found!".format(query)) continue print(format_query(query, args, fmt=args.fmt))
def format_request(request, config, remainder, request_type): if request_type == "query": data, url = format_query(request, config, remainder) else: data = run_recipe(request, remainder, config) url = None if config.output_file: print(data, file=open(config.output_file, 'w')) return data, url
def test_query(monkeypatch, query_test, config): monkeypatch.setattr(query, 'query_activedata', RunQuery(query_test)) module = 'adr.queries.{}'.format(query_test['query']) if module in sys.modules: reload(sys.modules[module]) def print_diff(): buf = IO() yaml.dump(result, buf) print("Yaml formatted result for copy/paste:") print(buf.getvalue()) buf = IO() yaml.dump(query_test['expected'], buf) print("\nYaml formatted expected:") print(buf.getvalue()) if query_test['debug']: config.debug = True formatted_query = format_query(query_test['query'], config) result = json.loads(formatted_query[0]) debug_url = formatted_query[1] print_diff() assert result == query_test["expected"] assert debug_url == config.build_debug_url( query_test["expected"]["meta"]["saved_as"]) else: config.debug = False formatted_query = format_query(query_test['query'], config) result = json.loads(formatted_query[0]) debug_url = formatted_query[1] print_diff() assert result == query_test["expected"] assert debug_url is None
def handle_query(remainder): if config.query not in sources.queries: logger.error(f"query '{config.query}' not found!") return data, url = format_query(config.query, remainder) if config.output_file: print(data, file=open(config.output_file, "w")) if url: time.sleep(2) webbrowser.open(url, new=2) return data
def handle_query(remainder): if config.query not in get_queries(): log.error("query '{}' not found!".format(config.query)) return data, url = format_query(config.query, remainder) if config.output_file: print(data, file=open(config.output_file, 'w')) if url: time.sleep(2) webbrowser.open(url, new=2) return data
def test_query(monkeypatch, query_test, set_config): set_config( **{ 'query': query_test['query'], 'fmt': 'json', 'debug': False, 'debug_url': "https://activedata.allizom.org/tools/query.html#query_id={}", }) monkeypatch.setattr(query, 'query_activedata', RunQuery(query_test)) def print_diff(): buf = IO() yaml.dump(result, buf) print("Yaml formatted result for copy/paste:") print(buf.getvalue()) buf = IO() yaml.dump(query_test['expected'], buf) print("\nYaml formatted expected:") print(buf.getvalue()) if "--debug" in query_test["args"]: set_config(debug=True) monkeypatch.setattr(query, 'query_activedata', RunQuery(query_test)) formatted_query = format_query(query_test['query']) result = json.loads(formatted_query[0]) debug_url = formatted_query[1] print_diff() assert result == query_test["expected"] assert debug_url == config.debug_url.format( query_test["expected"]["meta"]["saved_as"]) elif "--table" in query_test["args"]: set_config(fmt='table') monkeypatch.setattr(query, 'query_activedata', RunQuery(query_test)) formatted_query = format_query(query_test['query']) result = formatted_query[0] debug_url = formatted_query[1] expected = query_test["expected"]["data"] print("Table formatted result:") print(result) print("Table formatted expected:") print(expected) assert result == expected assert debug_url is None else: formatted_query = format_query(query_test['query']) result = json.loads(formatted_query[0]) debug_url = formatted_query[1] print_diff() assert result == query_test["expected"] assert debug_url is None