Source code for ska_ser_skallop.scripts.bdd_test_data_manager.data_manager

import argparse

from ska_ser_skallop.bdd_test_data_manager.data_manager import (
    download_test_data,
    search_for_file,
    upload_test_data,
)

parser = argparse.ArgumentParser(
    "\tA script to simplify and organize handling of data to be used by BDD and system "
    "tests.\nThe following environment variables must be set:\n\t$CAR_RAW_USERNAME\n\t"
    "$CAR_RAW_PASSWORD\n\t$CAR_RAW_REPOSITORY_URL\n"
)
subparsers = parser.add_subparsers()

# upload sub-parser
upload_parser = subparsers.add_parser(
    "upload", help="Upload the test data file to the repository"
)
upload_parser.add_argument(
    "-f",
    "--file-path",
    type=str,
    help="The absolute path of the file to be uploaded",
)
upload_parser.add_argument(
    "-a", "--artefact-directory", type=str, help="e.g. path/to/files/"
)
upload_parser.set_defaults(function=upload_test_data)

# download sub-parser
download_parser = subparsers.add_parser(
    "download", help="Download the test data file from the repository"
)
download_parser.add_argument(
    "-f",
    "--file-name",
    type=str,
    help="The name of the file on the repository",
)
download_parser.add_argument(
    "-a", "--artefact-directory", type=str, help="e.g. path/to/files/"
)
download_parser.set_defaults(function=download_test_data)

# search sub-parser
search_parser = subparsers.add_parser(
    "search", help="Display a list of test data files"
)
search_parser.add_argument(
    "-f",
    "--filter",
    type=str,
    help=(
        "The name of the file on the repository. It can also be a wildcard which will "
        "have all files listed in that directory"
    ),
)
search_parser.add_argument(
    "-a",
    "--artefact-directory",
    type=str,
    help=(
        "e.g. /path/to/files. It can also include a wildcard to list files in "
        "subdirectories e.g. /path/to/files/*"
    ),
)
search_parser.set_defaults(function=search_for_file)


[docs]def main(): args = parser.parse_args() if args.function.__name__ == "upload_test_data": args.function(args.file_path, args.artefact_directory) file_name = args.file_path.split("/")[-1] print(f"{file_name} uploaded at {args.artefact_directory}") elif args.function.__name__ == "download_test_data": download_path = args.function(args.file_name, args.artefact_directory) print(f"{args.file_name} downloaded to {download_path}") elif args.function.__name__ == "search_for_file": print(args.function(args.filter, args.artefact_directory))
if __name__ == "__main__": main()