Rallydev API pyral:有没有办法在一个查询中通过格式化 ID 获取所有缺陷?

Rallydev API pyral: Is there way to get all defects by Formatted ID in one query?

我有一个具有不同 ID 的缺陷列表。我需要浏览列表并将已修复/已验证的缺陷收集到单独的列表中。

能否请您指教是否有一种方法可以在一个查询中进行(例如在查询中发送一个元组)而不是每次都发送一个新的 get 请求?

目前看起来像:

items = ("DE111", "DE123", "DE345")
defects = []
for item in items:
  criteria = 'FormattedID = "%s"' % item
  response = rally.get('Defect', fetch="Name,State", query=criteria)
  for defect in response:
    defects.append(defect)

提前致谢!

使用一点 Python 3 你可以将 'or' 以格式化 ID 为条件串在一起......如果你没有 Python 3 我敢肯定是一样的事情可以在 2 中完成。重要的部分是最终查询字符串,它是:(((FormattedID = DE111) OR (FormattedID = DE112)) OR (FormattedID = DE123))

参见 an example repl.it

from functools import reduce
items = ("DE111", "DE112")

def byFormattedId(value): 
   return "(FormattedID = \"%s\")" % value

def ors(statement, value): 
   return "(%s OR %s)" % (statement, value)


x = list(map(byFormattedId, items))
y = reduce(ors, x)