def test_fixed_file_is_valid(): """Tests a fixed file is valid comparing the total width with expected """ myParser = MyParser(config.SPEC_FILE) myParser.generate_fixed_file() total_offset = sum([int(off) for off in myParser.specs["Offsets"]]) assert os.path.exists(config.OUTPUT_PATH+config.FIXED_FILENAME) if os.path.exists(config.OUTPUT_PATH+config.FIXED_FILENAME): with open(config.OUTPUT_PATH+config.FIXED_FILENAME, mode="r",encoding=myParser.specs["FixedWidthEncoding"]) as inp: for line in inp: assert len(line.replace(config.BREAKLINE, ""))==total_offset
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)
def test_fixed_file_exists(): """Tests a fixed file was generated """ myParser = MyParser(config.SPEC_FILE) filename = myParser.generate_fixed_file() assert os.path.exists(filename)