Python 替换Rally中模板故事的字符串
我可以用我的Python代码成功地获取用户故事信息;但是,我想替换详细信息和用户故事名称中的特定字符串。例如,字符串可以是$projectName,我想用用户输入的值替换它 是否有一些东西可以帮助编写代码,或者有一个工作示例?我被卡住了,因为这不一定是一个要编辑的文件,层次输出也为我创建了一个块来开发一些有用的东西 以下是我提取数据的代码:Python 替换Rally中模板故事的字符串,python,rally,Python,Rally,我可以用我的Python代码成功地获取用户故事信息;但是,我想替换详细信息和用户故事名称中的特定字符串。例如,字符串可以是$projectName,我想用用户输入的值替换它 是否有一些东西可以帮助编写代码,或者有一个工作示例?我被卡住了,因为这不一定是一个要编辑的文件,层次输出也为我创建了一个块来开发一些有用的东西 以下是我提取数据的代码: #!/usr/bin/env python import sys from pyral import Rally, rallyWorkset option
#!/usr/bin/env python
import sys
from pyral import Rally, rallyWorkset
options = [arg for arg in sys.argv[1:] if arg.startswith('--')]
args = [arg for arg in sys.argv[1:] if arg not in options]
server, username, password, apikey, workspace, project = rallyWorkset(options)
if apikey:
rally = Rally(server, apikey=apikey, workspace=workspace, project=project)
else:
rally = Rally(server, username=username, password=password, workspace=workspace, project=project)
response = rally.get ('UserStory', fetch=True, query='Name contains "$projecttest"')
for story1 in response:
print story1.details()
这是我得到的输出,当然是擦洗过的:
HierarchicalRequirement
oid : 81284473268
ref : hierarchicalrequirement/81284473268
ObjectID : 81284473268
ObjectUUID : 67c952b4-e414-4759-a8c5-d7d7543ba98d
_ref : https://rally1.rallydev.com/slm/webservice/v2.0/hierarchicalrequirement/81284473268
_CreatedAt : Dec 14, 2016
_hydrated : True
Name : Robert - test - pyRal - $projecttest
Subscription : <<SCRUBBED>>
Workspace : Workspace.ref (OID SCRUBBED)
FormattedID : US47008
AcceptedDate : None
Attachments : []
Blocked : False
BlockedReason : None
Blocker : None
Changesets : []
Children : []
CreationDate : 2016-12-14T18:21:03.663Z
DefectStatus : NONE
Defects : []
Description : <b>Description</b><div><br /><div>Some format here</div><div><br /></div><div><b>Outcome</b></div><div><b><br /></b></div><div>Some outcome here</div></div>
DirectChildrenCount : 0
Discussion : []
DisplayColor : #21a2e0
DragAndDropRank : O~zbf~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expedite : False
Feature : None
HasParent : False
InProgressDate : None
Iteration : None
LastBuild : None
LastRun : None
LastUpdateDate : 2016-12-19T22:42:48.173Z
LatestDiscussionAgeInMinutes : None
Milestones : []
Notes :
Owner : User.ref (OID SCRUBBED)
Package : None
Parent : None
PassingTestCaseCount : 0
PlanEstimate : None
PortfolioItem : None
Predecessors : []
Project : Project.ref (OID SCRUBBED)
Ready : False
Recycled : False
Release : None
ScheduleState : Ungroomed
ScheduleStatePrefix : U
Successors : []
Tags : []
TaskActualTotal : 0.0
TaskEstimateTotal : 0.0
TaskRemainingTotal : 0.0
TaskStatus : NONE
Tasks : []
TestCaseCount : 0
TestCaseStatus : NONE
TestCases : []
VersionId : 4
__collection_ref_for_RevisionHistory : SCRUBBED
_refObjectUUID : SCRUBBED
AcceptanceCriteria : None
IGNOREAcceptanceCriteria : None
IdeaURL : <pyral.entity.CustomField object at 0x7f1afb79a190>
IdeaVotes : None
JIRAPriority : None
JiraKey : None
JiraLink : None
KanbanState : None
Priority : None
ReleaseNote : None
RequestedDate : None
SNRequest : None
Submitter : None
TestRailPlanID : None
TrackingState : None
HierarchicalRequirement
oid:81284473268
参考:层次要求/81284473268
目标:81284473268
ObjectUUID:67c952b4-e414-4759-a8c5-d7d7543ba98d
_参考:https://rally1.rallydev.com/slm/webservice/v2.0/hierarchicalrequirement/81284473268
_创建日期:2016年12月14日
_水合的:真的
名称:Robert-test-pyRal-projecttest
订阅:
工作空间:Workspace.ref(OID已清除)
格式化ID:US47008
接受日期:无
附件:[]
阻止:错误
阻塞原因:无
拦截器:没有
变更集:[]
儿童:[]
创作日期:2016-12-14T18:21:03.663Z
缺陷状态:无
缺陷:[]
描述:描述
此处的某些格式
结果
此处的某些结果
DirectChildrenCount:0
讨论:[]
显示颜色:#21a2e0
DragAndDropRank:O~zbf~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
加急:错
特色:无
父母:错
InProgressDate:无
迭代:无
最新版本:无
最后一轮:无
最新更新日期:2016-12-19T22:42:48.173Z
最新讨论时间分钟:无
里程碑:[]
笔记:
所有者:User.ref(OID已清除)
套餐:无
家长:没有
PassingTestCaseCount:0
飞机估计:无
投资组合项目:无
前任:[]
项目:Project.ref(OID已清除)
就绪:错误
回收:假
发布:无
计划状态:未分配
ScheduleStatePrefix:U
继任者:[]
标签:[]
TaskActualTotal:0.0
任务估计总数:0.0
TaskRemainingTotal:0.0
任务状态:无
任务:[]
TestCaseCount:0
TestCaseStatus:无
测试用例:[]
版本ID:4
__修订历史记录的集合参考:已清除
_REOBJECTUID:已擦洗
验收标准:无
忽略接受标准:无
艾德尔:
IdeaVotes:无
JIRAPriority:无
吉拉基:没有
吉尔林克:没有
看板状态:无
优先权:无
发布说明:无
请求日期:无
请求:无
提交人:无
TestRailPlanID:无
跟踪状态:无
=====================================================
因此,对于PyRal,我必须向该代码提取的每个用户故事发送更新,仅在包含字符串的行上;但是,我必须以某种方式存储每个FormattedID:和要更新的关联Name:字段,这就是我遇到的问题,即如何实际存储该字段,以便对其进行迭代和更新。您可以使用模板字符串,该字符串完全按照您的要求执行,使用env变量(如分隔模板标记):
from string import Template
s = Template('this is $projectName')
s.substitute(projectName='THE_PROJECT')
结果:
'this is THE_PROJECT'
另一种方法是,如果将projectName
用大括号括起来,则使用格式
:
s = 'this is {projectName}'
print(s.format(projectName='THE_PROJECT'))
您可以使用模板字符串,该字符串完全按照您的要求执行,使用env变量(如)来分隔模板标记:
from string import Template
s = Template('this is $projectName')
s.substitute(projectName='THE_PROJECT')
结果:
'this is THE_PROJECT'
另一种方法是,如果将projectName
用大括号括起来,则使用格式
:
s = 'this is {projectName}'
print(s.format(projectName='THE_PROJECT'))
如果您只是想替换字符串中的
$projectName
之类的内容,这不是一项困难的任务,但您还没有向我们展示任何尝试。尝试使用正则表达式和re
模块。很抱歉,我很忙,我已经更新了我的帖子。如果您只是想在字符串中替换$projectName
之类的内容,这不是一项困难的任务,但您没有向我们展示任何尝试。尝试使用正则表达式和re
模块。很抱歉,我赶时间,我已经更新了我的帖子。谢谢!我想了想,;然而,使用PyRal,我必须单独打电话更新记录;因此,我需要存储FOrmattedID和名称,然后只编辑名称中的字符串,并将更新应用到相应的FOrmattedID(故事)。谢谢!我想了想,;然而,使用PyRal,我必须单独打电话更新记录;因此,我需要存储FOrmattedID和名称,然后只编辑名称内的字符串,并将更新应用于相应的FOrmattedID