${reference}= String.Replace_String_Using_Regexp ${SUITE_NAME}_${TEST_NAME} [ /\.-] _
${reference}= String.Convert_To_Lowercase ${reference}
${msg}= BuiltIn.Set_Variable ... click for list of related bugs or create a new one if needed (with the${newline}"${reference}"${newline}reference somewhere inside)
- ${bugs}= BuiltIn.Set_Variable "https://bugs.opendaylight.org/buglist.cgi?f1=longdesc&o1=substring&v1=${reference}&order=bug_status"
+ ${bugs}= BuiltIn.Set_Variable "https://bugs.opendaylight.org/buglist.cgi?f1=cf_external_ref&o1=substring&v1=${reference}&order=bug_status"
BuiltIn.Set Test Message ${msg}${newline}${bugs}${newline}${newline}${TEST_MESSAGE}
BuiltIn.Log ${msg}${newline}${bugs}
[Return] ${resp}
Get Log File Name
- [Arguments] ${testtool}
+ [Arguments] ${testtool} ${testcase}=${EMPTY}
[Documentation] Get the name of the suite sanitized to be usable as a part of filename.
... These names are used to constructs names of the log files produced
... by the testing tools so two suites using a tool wont overwrite the
... log files if they happen to run in one job.
${name}= BuiltIn.Evaluate """${SUITE_NAME}""".replace(" ","-").replace("/","-").replace(".","-")
- [Return] ${testtool}--${name}.log
+ ${suffix}= BuiltIn.Set_Variable_If '${testcase}' != '' --${testcase} ${EMPTY}
+ [Return] ${testtool}--${name}${suffix}.log
+
+Set_User_Configurable_Variable_Default
+ [Arguments] ${name} ${value}
+ [Documentation] Set a default value for an user configurable variable.
+ ... This keyword is needed if your default value is calculated using
+ ... a complex expression which needs BuiltIn.Evaluate or even more
+ ... complex keywords. It sets the variable ${name} to ${value} but
+ ... only if the variable ${name} was not set previously. This keyword
+ ... is intended for user configurable variables which are supposed to
+ ... be set only with pybot -v; calling this keyword on a variable
+ ... that was already set by another keyword is a bug in the suite or
+ ... resource trying to call this keyword.
+ # TODO: Figure out how to make the ${value} evaluation "lazy" (meaning
+ # evaluating it only when the user did not set anything and thus the
+ # default is needed). This might be needed to avoid potentially costly
+ # keyword invocations when they are not needed. Currently no need for
+ # this was identified, thus leaving it here as a TODO. Based on
+ # comments the best approach would be to create another keyword that
+ # expects a ScalarClosure in the place of ${value} and calls the
+ # closure to get the value but only if the value is needed).
+ ${value}= BuiltIn.Get_Variable_Value \${${name}} ${value}
+ BuiltIn.Set_Suite_Variable \${${name}} ${value}