我有几节课吉拉.py,提供2个样品
class JiraCommand:
name = "<default>"
aliases = []
summary = "<--- no summary --->"
usage = ""
mandatory = ""
commands = None
def __init__(self, commands):
self.commands = commands
def dispatch(self, logger, jira_env, args):
"""Return the exit code of the whole process"""
if len(args) > 0 and args[0] in ("--help", "-h"):
logger.info("")
alias_text = ''
first_alias = True
for a in self.aliases:
if first_alias:
if len(self.aliases) == 1:
alias_text = " (alias: " + a
else:
alias_text = " (aliases: " + a
first_alias = False
else:
alias_text += ", " + a
if not first_alias:
alias_text += ")"
logger.info("%s: %s%s" % (self.name, self.summary, alias_text))
if self.usage == "":
opts = ""
else:
opts = " [options]"
logger.info("")
logger.info("Usage: %s %s %s%s" % \
(sys.argv[0], self.name, self.mandatory, opts))
logger.info(self.usage)
return 0
results = self.run(logger, jira_env, args)
if results:
return self.render(logger, jira_env, args, results)
else:
return 1
def run(self, logger, jira_env, args):
"""Return a non-zero object for success"""
return 0
def render(self, logger, jira_env, args, results):
"""Return 0 for success"""
return 0
在同一个文件中还有第二个类”吉拉.py““
^{pr2}$现在,JiraCat使用JiraCommand作为参数
如何使用JiraCat获取实时结果
以下是我尝试的:
>>> from jira import JiraCommand
>>> dir(JiraCommand)
['__doc__', '__init__', '__module__', 'aliases', 'commands', 'dispatch', 'mandatory', 'name', 'render', 'run', 'summary', 'usage']
>>> jcmd = JiraCommand("http://jira.server.com:8080")
>>> from jira import JiraCat
>>> dir(JiraCat)
['__doc__', '__init__', '__module__', 'aliases', 'commands', 'dispatch', 'mandatory', 'name', 'render', 'run', 'summary', 'usage']
>>> jc = JiraCat(jcmd)
>>> print jc
<jira.JiraCat instance at 0x2356d88>
>>> jc.run("-s", "cat", "QA-65")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "jira.py", line 163, in run
logger.error(self.usage)
AttributeError: 'str' object has no attribute 'error'
唐卡利斯托说得对。在
JiraCat的run方法接受三个参数(logger、jira_env、args);第一个参数应该是logger对象,但传递的是字符串(“-s”)。在
因此,报告字符串的错误(logger=“-s”)没有“error”属性,仅此而已。在
你对命令行的评论(子流程.Popen(['python','jira','-s','jira.server.com:8080';,'catall','JIRA-65']))与使用相同参数调用run()方法不同。看看底部吉拉.py看看它能做什么系统argv... 在
编辑(1): 在阅读了代码之后,下面的python应该复制您的命令行调用。它有点复杂,并且忽略了吉拉.py我不能在这里测试。在
相关问题 更多 >
编程相关推荐