I'm trying to setup regression testing for an app before refactoring. The function is one long mess, starting with parsing user input and performing numerous operations before giving an output. I want to test expected values given a set of inputs (including defaults), but am not sure how to simulate a user's shell input inside a test module. Here's an example of how input is taken at the start of the file:
def function():
parser = ArgumentParser()
parser.add_argument("-a", "--term-a", type=float, default=0.5, help="a term relevant to output")
parser.add_argument("-b", "--term-b", type=float, default=0.05, help="a term relevant to output")
parser.add_argument("-c", "--term-c", type=int, default=2, help="a term relevant to output")
parser.add_argument("-f", "--file-a", type=str, required=True,
help="Input file required for output")
args = parser.parse_args()
...