python
  • rest
  • rally
  • pyral
  • 2015-02-17 84 views 0 likes 
    0

    我有一個使用不同ID的缺陷列表。我需要通過列表並收集固定/已驗證的缺陷以分開列表。Rallydev API pyral:有沒有辦法在一個查詢中通過格式化ID獲取所有缺陷?

    請問如果有一種方法可以在一個查詢中(例如,在查詢中發送一個元組)而不是每次發送一個新的獲取請求?

    目前,它看起來像:

    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) 
    

    預先感謝您!

    回答

    1

    使用一個小小的Python 3,你可以在格式化的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) 
    
    +0

    不幸的是,它不爲我工作。每次嘗試使用OR語句提交查詢後,都會收到錯誤。 – user2738882 2015-02-18 07:44:52

    +0

    對不起,我錯過了格式化ID標準值的報價。我更新了這篇文章,並通過Rally WSAPI文檔對其進行了測試。 – 2015-02-18 13:22:30

    +0

    這裏是我結束了(它工作)的網址 - http://goo.gl/Q2XXGi – 2015-02-18 13:29:02

    相關問題