Получение ошибок при создании нового дефекта в Rally с использованием python - PullRequest
0 голосов
/ 02 января 2019

Ниже приведен мой код для добавления нового дефекта в ралли с использованием Python:

import sys import time from pyral import Rally, rallyWorkset
server = "rally1.rallydev.com" 
user = "*****" 
password = "****" 
apikey = "****" 
workspace = "****" 
project = "****"
rally = Rally(server, user=user, password=password,apikey=apikey, workspace=workspace, project=project)

project_req = rally.get('Project', fetch=True, query='Name = "%s"' % (project))
project = project_req.next()

priority = "3.Normal" 
severity = "Major Problem" 
name = "prabhakar.sharma@***.com"
#defectID = 'INC0547865'
description = "A Test Rally User Story created using python API now, start working on it as fast as you all could !!" 
user = rally.getUserInfo(username=name).pop(0)
#rally.setProject(proj) 
print("%s %s "% (project.oid , user.ref)) 
defect_data = { "Project" : project.ref,
                "SubmittedBy" : user.ref,
                "Name" : name,
                "Severity" : severity, 
                "Priority" : priority,
               "State" : "Open", 
                "ScheduleState" : "Defined",
                "Owner": user.ref,
                "Description" : description 
                }


defect = rally.create('Defect', defect_data) print("Defect created, ObjectID: %s  FormattedID: %s" % (defect.oid, defect.FormattedID))

Traceback:

Traceback (последний вызов был последним): файл "pythonrally.py", строка 186, в Дефект = rally.create ('Дефект', дефект_данных) Файл "C: \ Users \ PRABHAKAR.SHARMA \ AppData \ Local \ Programs \ Python \ Python37 \ pyral \ restapi.py", линия 1024, на месте поднять RallyRESTAPIError (проблема) pyral.restapi.RallyRESTAPIError: 422 Ошибка проверки: Defect.PRJ # не должен быть нулевым

Ответы [ 2 ]

0 голосов
/ 07 января 2019

Итак, я изменил строку ниже:

defect = rally.create('Defect', defect_data) print("Defect created, ObjectID: %s  FormattedID: %s" % (defect.oid, defect.FormattedID))

на

defect = rally.create('UserStory', defect_data) print("Defect created, ObjectID: %s  FormattedID: %s" % (defect.oid, defect.FormattedID))

и, следуя сообщениям об ошибках, я получил его на работу.Кроме того, я удалил несколько полей из «дефекта-данных» следующим образом:

defect_data = { "Project" : project.ref,
                #"SubmittedBy" : user.ref,
                "Name" : name,
                #"Severity" : severity, 
                "Priority" : priority,
                #"State" : "Open", 
                "ScheduleState" : "Defined",
                "Owner": user.ref,
                "Description" : description 
                }

Итоговый код:

project_req = rally.get('Project', fetch=True, query='Name = "%s"' % (project))
project = project_req.next()
priority = "Normal"
severity = "Major Problem"
name = "prabhakar.sharma@dish.com"
#when = "2018.12.26 - 2019.01.01"
#defectNum = 'INC0547865'
description = "Just one more test Rally User Story created using python API now, start working on it as fast as you all could !!"
user = rally.getUserInfo(username=user).pop(0)
#rally.setProject(proj)
print("%s %s "% (project.ref , user.ref))
defect_data = { "Project" : project.ref,
                #"SubmittedBy" : user.ref,
                "Name" : name,
                #"Severity" : severity, 
                "Priority" : priority,
                #"State" : "Open", 
                "ScheduleState" : "Defined",
                "Owner": user.ref,
                "Description" : description 
                }
try:
    print("am here %s "% defect_data)
    defect = rally.create('UserStory', defect_data)
except Exception as e:
    sys.stderr.write('ERROR: %s \n' % Exception)
    print(e)
    sys.exit(1)

Надеюсь, это поможет кому-то столкнуться с любой проблемой, подобной этой !!Ура

0 голосов
/ 05 января 2019

Изменения:

  1. Необходимо использовать «username = name» (где «name» - идентификатор входа в систему) вместо «username = user».
  2. Поле «Когда» не является частью дефекта (закомментировано ниже).
  3. Поле "PRJ #" не является частью дефекта (закомментировано ниже).
  4. Ссылка на проект должна быть указана как "proj.ref" вместо "project.ref".

    $ diff code.orig code.new
    10c10
    < user = rally.getUserInfo(username=user).pop(0)
    ---
    > user = rally.getUserInfo(username=name).pop(0)
    12,14c12,14
    < defect_data = { "When" : when,
    <                 "PRJ#" : project.oid,
    <                 "Project" : project.ref,
    ---
    > defect_data = { #"When" : when,
    >                 #"PRJ#" : proj.oid,
    >                 "Project" : proj.ref,
    

Вышеуказанные изменения работали для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...