草庐IT

argparse_test

全部标签

python - 使 Python 的 argparse 执行默认操作

我正在使用argparse的操作将各种数据添加到类中。如果命令行中未提供该arg,我想对默认值使用该操作。这可能吗?谢谢! 最佳答案 argparse在应用default时不使用action。它只使用setattr。如果默认为字符串,它可能会使用type。但是您可以直接调用action。这里我使用了从文档中借用的自定义操作类。在第一个parse_args中没有任何反应。然后我创建一个新的namespace,并调用默认的操作。然后我将该namespace传递给parse_args。要理解这一点,您需要将其导入交互式shell,并检查命

python - 请解释 argparse 模块代码片段背后的推理

我正在查看内置argparse._AppendAction的源代码,它实现了"append"Action,并对wayitisimplemented感到困惑:def__call__(self,parser,namespace,values,option_string=None):items=_copy.copy(_ensure_value(namespace,self.dest,[]))items.append(values)setattr(namespace,self.dest,items)分解:_ensure_value类似于属性的dict.setdefault。也就是说,如果nam

python - 禁用 argparse 和 optparse 的唯一前缀匹配

当我使用Python的argparse或optparse命令行参数解析器时,参数的任何唯一前缀都被认为是有效的,例如$./buildall.py--helpusage:buildall.py[-h][-f]Buildallrepositoriesoptionalarguments:-h,--helpshowthishelpmessageandexit-f,--forceBuilddirtyrepositories与--help、--hel、--he一起用于帮助选项以及--forc和--fo用于强制选项。可以以某种方式关闭此行为吗?我想收到不完整参数的错误消息。

帮助字符串中出现 '%' 的 Python argparse 错误

我有一个包含“%”的默认值,我也将其插入到我的参数的帮助文档中。例如:default="5%foo"animrender_group.add_argument("--foo",default=default,help="Fooamount.Default:%s"%default,)args=parser.parse_args()parse_args()上的Argparse错误[snip]args=parser.parse_args()[snip]"../python2.5/site-packages/argparse.py",line622,in_expand_helpreturnse

python - 单元 : stop after first failing test?

我在我的测试框架中使用了以下代码:testModules=["test_foo","test_bar"]suite=unittest.TestLoader().loadTestsFromNames(testModules)runner=unittest.TextTestRunner(sys.stdout,verbosity=2)results=runner.run(suite)returnresults.wasSuccessful()有没有办法让报告(runner.run?)在第一次失败后中止以防止过于冗长? 最佳答案 问题提出九年

python - 使用 argparse 输出调用函数

目前我的代码看起来像这样。它允许我解析我的程序脚本获取的多个参数。有没有更接近“最佳实践”的不同方式?我还没有看到实际使用argparse输出的代码,只看到如何设置它。defuseArguments():x=0whilex 最佳答案 您可以提供自定义action对于一个论点,我引用:passinganobjectthatimplementstheActionAPI.Theeasiestwaytodothisistoextendargparse.Action,supplyinganappropriate__call__method.T

python - Argparse - 没有参数的自定义操作?

classStartAction(argparse.Action):def__call__(self,parser,namespace,values,option_string=None):print"Hello"start.add_argument('-s','--start',action=StartAction)我知道通常将操作设置为“store_true”之类的东西会阻止参数的要求,但是有没有一种方法可以使用自定义操作并且仍然不需要传递参数?所以我想要的是:pythonexample.py-sHello 最佳答案 尝试将na

python - Django LiveServer测试用例 : User created in in setUpClass method not available in test_method?

我正在使用Django1.4的LiveServerTestCase进行Selenium测试,但在使用setUpClass类方法时遇到了问题。据我了解,MembershipTests.setUpClass在单元测试运行之前运行一次。我已经将代码添加到MembershipTests.setUpClass中的数据库,但是当我运行MembershipTests.test_signup测试时,没有用户被添加到测试中数据库。我做错了什么?我希望我在setUpClass中创建的用户在所有单元测试中都可用。如果我将用户创建代码放入MembershipTests.setUp并运行MembershipTe

python - __test__ = False 魔法属性如何用于测试发现

所以我正在尝试实现类似于单元测试框架执行以下操作的方式:classBaseTest(T.TestCase):#Disablesthistestfrombeingrun__test__=Falsedeftest_foo(self):pass#Howeverthistestispickedupbecauseitdoesn'tdirectlyhave__test__setclassInheritingTest(BaseTest):pass我觉得很奇怪:#>>InheritingTest.__test__#False这会向我表明它没有使用metaclass在构造类型时将__test__设置为T

python - 位置参数之前的 argparse 可选参数

我想知道是否可以让一个位置参数跟在一个带有可选参数的参数后面。理想情况下,输入命令行的最后一个参数将始终应用于“testname”。importargparseparser=argparse.ArgumentParser(description='TAF')parser.add_argument('-r','--release',nargs='?',dest='release',default='trunk')parser.add_argument('testname',nargs='+')args=parser.parse_args()我希望这两个调用都将smoketest应用于te