Example #1
0
def main():
    parser = argparse.ArgumentParser(prog='devhelp2qch.py')
    parser.add_argument('--src', type=str,
                        help='The path to the XML input file')
    parser.add_argument('--dst', type=str,
                        help='The path to the destination XML file')
    parser.add_argument('--virtual_folder', type=str,
                        help='Virtual folder name')
    parser.add_argument('--file_list', type=str,
                        help='The path to the file list in XML file')
    args = parser.parse_args()

    src_path = args.src
    dst_path = args.dst
    v_folder = args.virtual_folder
    file_path = args.file_list

    parser = etree.XMLParser(encoding='UTF-8', recover=True)
    in_tree = etree.parse(src_path, parser)
    file_tree = etree.parse(file_path, parser)

    out_f = open(dst_path, 'wb')
    out_f.write(convert_devhelp_to_qch(in_tree.getroot(), file_tree.getroot(),
                                       v_folder))
    out_f.close()
    def test_convert_devhelp_to_qch(self):
        dir_path = os.path.dirname(__file__)
        index_fn = os.path.join(dir_path, 'devhelp_qch_data/devhelp-index.xml')
        file_list_fn = os.path.join(dir_path, 'devhelp_qch_data/file-list.xml')
        expected_path = os.path.join(dir_path, 'devhelp_qch_data/expected.xml')
        dest_path = os.path.join(dir_path, 'devhelp_qch_data/result.xml')

        parser = etree.XMLParser(encoding='UTF-8', recover=True)
        in_tree = etree.parse(index_fn, parser)
        in_root = in_tree.getroot()

        file_tree = etree.parse(file_list_fn, parser)
        files_root = file_tree.getroot()

        with open(expected_path, 'rb') as expected_f:
            expected = expected_f.read()

        result = convert_devhelp_to_qch(in_root, files_root, 'virtual_folder')

        if expected != result:
            with open(dest_path, 'wb') as result_f:
                result_f.write(result)

        self.assertEqual(expected, result)