예제 #1
0
def test_delimited_file_is_valid():
    """Tests a delimited file is valid comparing number of columns in every line with expeced
    """
    myParser = MyParser(config.SPEC_FILE)
    myParser.generate_delimited_file(source_filename=config.OUTPUT_PATH+config.FIXED_FILENAME)
    total_columns = len(myParser.specs["ColumnNames"])
    assert os.path.exists(config.OUTPUT_PATH+config.DELIMITED_FILENAME)

    if os.path.exists(config.OUTPUT_PATH+config.DELIMITED_FILENAME):
        with open(config.OUTPUT_PATH+config.DELIMITED_FILENAME, mode="r",encoding=myParser.specs["FixedWidthEncoding"]) as inp:
            delimited_reader = csv.reader(inp, delimiter=config.DEFAULT_DELIMITER, skipinitialspace=True)
            for line in delimited_reader:
                assert len(line)==total_columns

# TODO: Test encodings
예제 #2
0
logger = logging.getLogger(__name__)

if __name__ == '__main__':
    # Get the desired option from user using an argument parser from command line
    # only spcs is required, delimiter and numlines ca be defined with default
    arg_parser = argparse.ArgumentParser()

    # enforce the user to use a specs file
    arg_parser.add_argument("-s", "--spec", required=True, help="Specs")

    # since delimiter is not in specs, let the user to pass it as an argument
    arg_parser.add_argument("-d", "--delimiter", required=False, help="Delimiter")

    # since delimiter is not in specs, let the user to pass it as an argument
    arg_parser.add_argument("-n", "--numlines", required=False, help="Number of lines in file")

    args = vars(arg_parser.parse_args())

    spec_filename = args["spec"]
    delimiter = args["delimiter"]
    
    if args["numlines"]:
        numlines = args["numlines"]
    
    if os.path.exists(spec_filename):
        myParser = MyParser(spec_filename)
        fixed_filename = myParser.generate_fixed_file()
        delimited_filename = myParser.generate_delimited_file(fixed_filename)
    else:
        logger.info("No valid specs file found (%s). Nothing to do! :(",spec_filename)
예제 #3
0
def test_delimited_file_exists():
    """Tests a delimited file was generated
    """
    myParser = MyParser(config.SPEC_FILE)
    myParser.generate_delimited_file(source_filename=config.OUTPUT_PATH+config.FIXED_FILENAME)
    assert os.path.exists(config.OUTPUT_PATH+config.DELIMITED_FILENAME)