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)
我有一个具有不同 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)