def diff_json(): description = textwrap.dedent("""Calculate differences between two rule sets (sources) and write to file""") parser = argparse.ArgumentParser(description=description) parser.add_argument('--old_policies_path', required=True) parser.add_argument('--old_prefix_path', required=True) parser.add_argument('--old_apps_dir', required=True) parser.add_argument('--new_policies_path', required=True) parser.add_argument('--new_prefix_path', required=True) parser.add_argument('--new_apps_dir', required=True) parser.add_argument('--output_path', required=True) args = parser.parse_args(sys.argv[1:]) diff_path_pickle = args.output_path + '.pickle' diff_path_json = args.output_path + '.json' # all_apps_old = scripts.run(args.old_policies_path, args.old_prefix_path, args.old_apps_dir) # all_apps_new = scripts.run(args.new_policies_path, args.new_prefix_path, args.new_apps_dir) process.close_and_join_process_pool() policy_diff = diff_json_module.make_diff(args.old_apps_dir, args.new_apps_dir) policy_diff_jsonable = massage_to_jsonable(policy_diff) with open(diff_path_pickle, "wb") as f: pickle.dump(policy_diff, f) with open(diff_path_json, "wb") as f: json.dump(policy_diff_jsonable, f, indent=4) diff_json_module.close_and_join_diff_pool()
def test_diff2(): test_dir = os.path.join(data_dir, 'diff_test2') old_policy_dir = os.path.join(test_dir, 'old_policy') old_globals_path = os.path.join(old_policy_dir, 'old_prefix.json') old_rules_path = os.path.join(old_policy_dir, 'old_rules.json') old_apps_dir = os.path.join(old_policy_dir, 'apps') ensure_dir(old_apps_dir) new_policy_dir = os.path.join(test_dir, 'new_policy') new_globals_path = os.path.join(new_policy_dir, 'new_prefix.json') new_rules_path = os.path.join(new_policy_dir, 'new_rules.json') new_apps_dir = os.path.join(new_policy_dir, 'apps') ensure_dir(new_apps_dir) diff_path_pickle = os.path.join(test_dir, 'diff/diff2.pickle') diff_path_json = os.path.join(test_dir, 'diff/diff2.json') all_apps_old = scripts.run(old_rules_path, old_globals_path, old_apps_dir) all_apps_new = scripts.run(new_rules_path, new_globals_path, new_apps_dir) policy_diff = diff.make_diff(old_apps_dir, new_apps_dir) with open(diff_path_pickle, 'wb') as f: pickle.dump(policy_diff, f) policy_jsonable = massage_to_jsonable(policy_diff) with open(diff_path_json, 'wb') as f: json.dump(policy_jsonable, f, indent=4) eq_(gen_diff_diff2_expect, policy_diff)