我有一个使用argparse库的Python模块。如何为代码库的该部分编写测试?
您应该重构代码并将解析移至函数:
def parse_args(args):
parser = argparse.ArgumentParser(...)
parser.add_argument...
# ...Create your parser as you like...
return parser.parse_args(args)
然后在main
函数中,您应该使用以下命令调用它:
parser = parse_args(sys.argv[1:])
(其中sys.argv
代表脚本名称的第一个元素被删除,以使其在CLI操作期间不作为附加开关发送。)
在测试中,然后可以使用要测试的参数列表调用解析器函数:
def test_parser(self):
parser = parse_args(['-l', '-m'])
self.assertTrue(parser.long)
# ...and so on.
这样,您就不必只为了测试解析器而执行应用程序的代码。
如果稍后需要在应用程序中更改和/或向解析器添加选项,请创建一个工厂方法:
def create_parser():
parser = argparse.ArgumentParser(...)
parser.add_argument...
# ...Create your parser as you like...
return parser
以后,您可以根据需要对其进行操作,然后进行如下测试:
class ParserTest(unittest.TestCase):
def setUp(self):
self.parser = create_parser()
def test_something(self):
parsed = self.parser.parse_args(['--something', 'test'])
self.assertEqual(parsed.something, 'test')
我有一个使用argparse库的Python模块。如何为代码库的这一部分编写测试?
问题内容: 我一直在为工作中的简单任务制作Python脚本,从来没有真正打扰过将它们打包供其他人使用。现在,我被分配为REST API制作Python包装器。我对如何开始一无所知,我需要帮助。 我有的: (只想尽可能地具体一点)我已经准备好virtualenv,它也位于github中,还存在用于python的.gitignore文件,以及用于与REST API交互的请求库。而已。 这是当前目录树
问题内容: 在组织python模块时,我的Mac OS X系统一团糟。我的硬盘上到处都有程序包,而没有用于组织它们的特定系统。 您如何使一切易于管理? 问题答案: 我的建议: 阅读安装Python模块。 阅读分发Python模块。 从setuptools开始使用easy_install 。阅读setuptools的文档。 始终使用virtualenv。我的site-packages目录 仅 包含
我想问一下,我如何用Python编写以下模块。 这样我就可以使用say调用它
问题内容: 我需要为AngularJS编写一个自定义模块,但是我找不到关于该主题的任何好的文档。如何为AngularJS编写一个可以与他人共享的自定义模块? 问题答案: 在这种情况下,您认为文档无法再为您提供帮助,一个很好的学习方法是查看其他已经构建的模块,看看其他人是如何做到的,他们如何设计架构以及如何将它们集成到其中。他们的应用。 在查看其他人的工作之后,您至少应该有一个起点。 例如,看看任何
生气却不可犯罪,不可含怒到日落,也不可给魔鬼留地步。从前偷窃的,不要再偷。总要劳力,亲手作正经事,就可有余,分给那缺少的人。污秽的言语,一句不可出口,只要随事说造就人的好话,叫听见的人得益处。(EPHESIANS 4:26-29) 随着对Python学习的深入,其优点日渐突出,让读者也感觉到Python的强大了。这种强大体现在“模块自信”上,因为Python不仅有很强大的自有模块(标准库),还有海