def main(): directory = os.path.dirname(__file__) if len(sys.argv) > 1: json_dir = sys.argv[1] else: json_dir = find_dir(directory, "idioms-json") if len(sys.argv) > 2: xml_dir = sys.argv[2] else: xml_dir = find_dir(directory, "idioms-xml") if not os.path.exists(json_dir): os.makedirs(json_dir) sys.setrecursionlimit(2000) for filename in sorted(os.listdir(xml_dir)): file_and_ext = filename.split(".") xml_path = os.path.join(xml_dir, filename) destination = os.path.join(json_dir, file_and_ext[0] + ".json") destination = os.path.abspath(destination) initialize_options() if file_and_ext[1] == "xml": sys.stdout.write(xml_path + "\n") json_output = elevate_file(xml_path) with io.open(destination, "w", encoding="utf-8") as f: f.write(json_output)
def setup_tests(): directory = os.path.dirname(__file__) xml_idioms_dir = find_dir(directory, "idioms-xml") json_idioms_dir = find_dir(directory, "idioms-json") print("Setting up tests from following directories...") print(xml_idioms_dir) print(json_idioms_dir) for json_filename in os.listdir(json_idioms_dir): if json_filename.endswith(".json"): path = os.path.join(json_idioms_dir, json_filename) json_file = open(path, "r") io = StringIO(json_file.read()) loaded_json = json.load(io) json_file.close() MASTER_JSON_FILES.append(loaded_json) for xml_filename in os.listdir(xml_idioms_dir): if xml_filename.endswith(".xml"): path = os.path.join(xml_idioms_dir, xml_filename) XML_FILENAMES.append(xml_filename.split(".")[0]) TESTED_XML_FILES.append(path)
def main(): directory = os.path.dirname(__file__) if len(sys.argv) > 1: json_dir = sys.argv[1] else: json_dir = find_dir(directory, "idioms-json") if len(sys.argv) > 2: xml_dir = sys.argv[2] else: xml_dir = find_dir(directory, "idioms-xml") if not os.path.exists(json_dir): os.makedirs(json_dir) for filename in os.listdir(xml_dir): file_and_ext = filename.split(".") xml_path = os.path.join(xml_dir, filename) destination = os.path.join(json_dir, file_and_ext[0] + ".json") destination = os.path.abspath(destination) initialize_options() if file_and_ext[1] == "xml": sys.stdout.write(xml_path + "\n") json_output = elevate_file(xml_path) output_file = open(destination, "w") output_file.write(json_output) output_file.close()
def setup_elevator_tests(version, missing_policy): directory = os.path.dirname(__file__) xml_idioms_dir = find_dir(directory, "idioms-xml") json_idioms_dir = find_dir( directory, "idioms-json" + "-" + version + ("-custom" if missing_policy == "use-custom-properties" else "")) setup_tests(xml_idioms_dir, json_idioms_dir, ".xml", ".json")
def setup_elevator_tests(version, missing_policy): directory = os.path.dirname(__file__) json_directory_suffix = "" if missing_policy == "use-custom-properties": json_directory_suffix = "-custom" elif missing_policy == "use-extensions": json_directory_suffix = "-extensions" elif missing_policy == "ignore": json_directory_suffix = "-ignore" xml_idioms_dir = find_dir(directory, "idioms-xml") json_idioms_dir = find_dir(directory, "idioms-json" + "-" + version + json_directory_suffix) setup_tests(xml_idioms_dir, json_idioms_dir, ".xml", ".json")
def test_elevate_with_file(): setup_options() directory = os.path.dirname(__file__) xml_idioms_dir = find_dir(directory, "idioms-xml") archive_file = os.path.join(xml_idioms_dir, "141-TLP-marking-structures.xml") json_result = elevate(archive_file) assert json_result print(json_result)
def test_elevate_with_stix_package(): setup_options() directory = os.path.dirname(__file__) xml_idioms_dir = find_dir(directory, "idioms-xml") archive_file = os.path.join(xml_idioms_dir, "141-TLP-marking-structures.xml") with io.open(archive_file, mode="r", encoding="utf-8") as f: input_stix = f.read() json_result = elevate(STIXPackage.from_xml(StringIO(input_stix))) assert json_result print(json_result)
def test_elevate_with_binary_string(): setup_options() directory = os.path.dirname(__file__) xml_idioms_dir = find_dir(directory, "idioms-xml") archive_file = os.path.join(xml_idioms_dir, "141-TLP-marking-structures.xml") with io.open(archive_file, mode="rb") as f: input_stix = f.read() json_result = elevate(input_stix) assert json_result print(json_result)
def test_elevate_with_marking_container(): setup_options() directory = os.path.dirname(__file__) xml_idioms_dir = find_dir(directory, "idioms-xml") archive_file = os.path.join(xml_idioms_dir, "141-TLP-marking-structures.xml") with io.open(archive_file, mode="r", encoding="utf-8") as f: input_stix = f.read() container = stixmarx.parse(StringIO(input_stix)) json_result = elevate(container) assert json_result print(json_result)
def test_deprecated_elevate_string(): setup_options() directory = os.path.dirname(__file__) xml_idioms_dir = find_dir(directory, "idioms-xml") archive_file = os.path.join(xml_idioms_dir, "141-TLP-marking-structures.xml") with pytest.warns(DeprecationWarning): with io.open(archive_file, mode="r", encoding="utf-8") as f: input_stix = f.read() json_result = elevate_string(input_stix) assert json_result print(json_result)
def setup_tests(): directory = os.path.dirname(__file__) xml_idioms_dir = find_dir(directory, "idioms-xml") json_idioms_dir = find_dir(directory, "idioms-json") print("Setting up tests from following directories...") print(xml_idioms_dir) print(json_idioms_dir) for json_filename in sorted(os.listdir(json_idioms_dir)): if json_filename.endswith(".json"): path = os.path.join(json_idioms_dir, json_filename) with io.open(path, "r", encoding="utf-8") as f: loaded_json = json.load(f) MASTER_JSON_FILES.append(loaded_json) for xml_filename in sorted(os.listdir(xml_idioms_dir)): if xml_filename.endswith(".xml"): path = os.path.join(xml_idioms_dir, xml_filename) XML_FILENAMES.append(xml_filename.split(".")[0]) TESTED_XML_FILES.append(path)
def setup_stepper_tests(): directory = os.path.dirname(__file__) before_idioms_dir = find_dir(directory, "idioms-json-2.0-valid") after_idioms_dir = find_dir(directory, "idioms-json-2.1-valid") setup_tests(before_idioms_dir, after_idioms_dir, ".json", ".json")
def setup_elevator_tests(version): directory = os.path.dirname(__file__) xml_idioms_dir = find_dir(directory, "idioms-xml") json_idioms_dir = find_dir(directory, "idioms-json" + "-" + version) setup_tests(xml_idioms_dir, json_idioms_dir, ".xml", ".json")