> Suppose I had a function like the following: ############# def y_n(prompt="Answer yes or no"): while True: answer = raw_input(prompt) if answer in ['y', 'Y', 'yes']: print "You said yes!" break elif answer in ['n', 'N', 'no']: print "You said no!" break else: print "%s is an invalid answer."%answer ################ > How could I go about to write an automated test for it?
Create a data file with all of the inputs you need and use input redirection to run it. Assuming its called y_n.py: $ python y_n.py <y_n.in > y_n.out This is the easiest way of testing interactive programs. This has limitations for unit testing if you have more than one function per module however, in that case you need to write a driver module that imports yours and takes as a first input the function you want to test... In Python the driver can sit inside the if __name__ == __main__ stanza Alan G _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor