Enter to raw_input automatically

前端 未结 4 1801
傲寒
傲寒 2020-12-17 23:42

Just as an example, it might seem illogical. I have a get_name function as below, and wanted to write a automated script to call this function and enter to the raw_inp

4条回答
  •  猫巷女王i
    2020-12-18 00:03

    You can also substitute stdin with StringIO (aka memory file) instead of real file. This way the entered text will be in your testing code instead of separate text file.

    based on Anand S Kumar's (+1):

    def run():
        import sys
        import StringIO
        f1 = sys.stdin
        f = StringIO.StringIO('entered text') # <-- HERE
        sys.stdin = f
        get_name()
        f.close()
        sys.stdin = f1
    

    Also, for more sophisticated testing of interactive commandline functions/tools you may want to check the pyexpect package.

提交回复
热议问题