Ejemplo n.º 1
0
def _main(parallelizer):
    parser = create_sdoc_args_parser()

    if parser.is_passthrough_command:
        config = parser.get_passthrough_config()
        input_file = config.input_file
        if not os.path.isfile(input_file):
            sys.stdout.flush()
            message = "error: passthrough command's input file does not exist"
            print("{}: {}".format(message, input_file))
            sys.exit(1)

        output_file = config.output_file
        if output_file:
            output_dir = os.path.dirname(output_file)
            if not os.path.isdir(output_dir):
                print("not a directory: {}".format(output_file))
                sys.exit(1)

        passthrough_action = PassthroughAction()
        passthrough_action.passthrough(config)

    elif parser.is_export_command:
        config = parser.get_export_config(STRICTDOC_ROOT_PATH)
        parallelization_value = (
            "Disabled" if config.no_parallelization else "Enabled"
        )
        print("Parallelization: {}".format(parallelization_value), flush=True)
        export_action = ExportAction()
        export_action.export(config, parallelizer)

    else:
        raise NotImplementedError
def test_export_00_strictdoc_root_path():
    parser = cli_args_parser()
    args = parser.parse_args(["export", "docs"])

    assert len(args._get_kwargs()) == TOTAL_EXPORT_ARGS

    assert args.command == "export"
    assert args.fields == ["uid", "statement", "parent"]
    assert args.formats == ["html"]
    assert args.input_paths == ["docs"]
    assert args.no_parallelization is False
    assert args.output_dir is None

    config_parser = create_sdoc_args_parser(args)
    export_config = config_parser.get_export_config(FAKE_STRICTDOC_ROOT_PATH)
    assert export_config.strictdoc_root_path == FAKE_STRICTDOC_ROOT_PATH
def test_export_06_export_format_multiple():
    parser = cli_args_parser()

    args = parser.parse_args(
        ["export", "--experimental-enable-file-traceability", "docs"])

    assert args.command == "export"
    assert args.input_paths == ["docs"]

    assert len(args._get_kwargs()) == TOTAL_EXPORT_ARGS
    assert args.command == "export"
    assert args.experimental_enable_file_traceability is True

    config_parser = create_sdoc_args_parser(args)
    export_config = config_parser.get_export_config(FAKE_STRICTDOC_ROOT_PATH)
    assert export_config.fields == args.fields
    assert export_config.formats == args.formats
    assert export_config.input_paths == args.input_paths
    assert export_config.no_parallelization == args.no_parallelization
    assert export_config.output_dir == args.output_dir
def test_export_02_output_dir():
    parser = cli_args_parser()

    args = parser.parse_args(
        ["export", "docs", "--output-dir", "custom-output-dir"])

    assert len(args._get_kwargs()) == TOTAL_EXPORT_ARGS

    assert args.command == "export"
    assert args.input_paths == ["docs"]
    assert args.fields == ["uid", "statement", "parent"]
    assert args.formats == ["html"]
    assert args.no_parallelization is False
    assert args.output_dir == "custom-output-dir"

    config_parser = create_sdoc_args_parser(args)
    export_config = config_parser.get_export_config(FAKE_STRICTDOC_ROOT_PATH)
    assert export_config.fields == args.fields
    assert export_config.formats == args.formats
    assert export_config.input_paths == args.input_paths
    assert export_config.no_parallelization == args.no_parallelization
    assert export_config.output_dir == args.output_dir