Exemplo n.º 1
0
def main():
    enable_parallelization = "--no-parallelization" not in sys.argv
    parallelizer = Parallelizer.create(enable_parallelization)

    parser = cli_args_parser()
    args = parser.parse_args()

    if args.command == "passthrough":
        input_file = args.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 = args.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(input_file, output_file)

    elif args.command == "export":
        parallelization_value = ("Enabled"
                                 if enable_parallelization else "Disabled")
        print("Parallelization: {}".format(parallelization_value), flush=True)
        export_controller = ExportAction(STRICTDOC_ROOT_PATH, parallelizer)
        export_controller.export(args.input_paths, args.output_dir,
                                 args.formats, args.fields)

    else:
        raise NotImplementedError
Exemplo n.º 2
0
def test_passthrough_01_minimal():
    parser = cli_args_parser()

    args = parser.parse_args(['passthrough', 'input.sdoc'])

    assert args._get_kwargs() == [('command', 'passthrough'),
                                  ('input_file', 'input.sdoc'),
                                  ('output_file', None)]
Exemplo n.º 3
0
def test_passthrough_01_minimal():
    parser = cli_args_parser()

    args = parser.parse_args(["passthrough", "input.sdoc"])

    assert args._get_kwargs() == [
        ("command", "passthrough"),
        ("input_file", "input.sdoc"),
        ("output_file", None),
    ]
Exemplo n.º 4
0
def test_export_01_minimal():
    parser = cli_args_parser()

    args = parser.parse_args(['export', 'docs'])

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

    assert args._get_kwargs() == [('command', 'export'), ('formats', ['html']),
                                  ('input_paths', ['docs']),
                                  ('no_parallelization', False),
                                  ('output_dir', None)]
Exemplo n.º 5
0
def test_export_04_export_format_rst():
    parser = cli_args_parser()

    args = parser.parse_args(["export", "--formats=rst", "docs"])

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

    assert args.command == "export"
    assert args.fields == ["uid", "statement", "parent"]
    assert args.formats == ["rst"]
    assert args.input_paths == ["docs"]
    assert args.no_parallelization is False
    assert args.output_dir is None
Exemplo n.º 6
0
def test_export_03_parallelization():
    parser = cli_args_parser()

    args = parser.parse_args(["export", "docs", "--no-parallelization"])

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

    assert args.command == "export"
    assert args.fields == ["uid", "statement", "parent"]
    assert args.formats == ["html"]
    assert args.input_paths == ["docs"]
    assert args.no_parallelization is True
    assert args.output_dir is None
Exemplo n.º 7
0
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()) == 6

    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"
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