我正在尝试在 Python 2.6 上运行一个基本的单元测试,它接受带有 argparse 的参数。
我在我的环境中受到限制,无法安装任何其他库或使用任何模块进行测试,但单元测试。
但是我相信答案就在这里:
你如何为 python 模块的 argparse 部分编写测试?
但是,我无法用我的代码重构提供的主要答案。
在不重构我提供的示例代码的情况下,有人可以向我展示一下,并告诉我如何为下面的代码编写一个单元测试,它可以即时使用 -H 和 -S 吗?
提前致谢。
#!python
import argparse
import sys
try:
HOSTNAME = sys.argv[2]
SOMESTRING = sys.argv[3]
except IndexError:
print "Please Enter the Hostname and Somestring"
def argparse_msg():
return "testscript_example -H somehost -S somestring"
def check_arg(args=None):
parser = argparse.ArgumentParser(description="A Test Example", usage=argparse_msg())
parser.add_argument("-H", "--host",
help="HostName",
required=True)
parser.add_argument("-S", "--somestring",
help="HostName",
required=True)
results = parser.parse_args(args)
return (results.host, results.somestring)
def message_test():
print HOSTNAME + " " + SOMESTRING
def main():
message_test()
if __name__ == "__main__":
HOSTNAME, SOMESTRING = check_arg(sys.argv[1:])
main()