Increase http session timeout for shard stability
[integration/test.git] / csit / libraries / Utils.robot
index f107f9a3116f77d6d14e1499b4d1e8dbb5ec1585..a0fae572d4591acb1ecc3e89a2cf2a0c6a7baea3 100644 (file)
@@ -7,6 +7,7 @@ Library           DateTime
 Library           Process
 Library           Collections
 Library           RequestsLibrary
+Library           OperatingSystem
 Library           ${CURDIR}/UtilLibrary.py
 Resource          ${CURDIR}/SSHKeywords.robot
 Resource          ${CURDIR}/TemplatedRequests.robot
@@ -42,7 +43,7 @@ Stop Mininet
     Close Connection
 
 Report_Failure_Due_To_Bug
-    [Arguments]    ${number}
+    [Arguments]    ${number}    ${include_bug_in_tags}=True
     [Documentation]    Report that a test failed due to a known Bugzilla bug whose
     ...    number is provided as an argument.
     ...    Not FAILED (incl. SKIPPED) test are not reported.
@@ -52,10 +53,12 @@ Report_Failure_Due_To_Bug
     ...    into the Robot log file.
     ${test_skipped}=    BuiltIn.Evaluate    len(re.findall('SKIPPED', """${TEST_MESSAGE}""")) > 0    modules=re
     BuiltIn.Return From Keyword If    ('${TEST_STATUS}' != 'FAIL') or ${test_skipped}
+    ${bug_url}=    BuiltIn.Set_Variable    https://bugs.opendaylight.org/show_bug.cgi?id=${number}
+    ${msg}=    BuiltIn.Set_Variable    This test fails due to ${bug_url}
     ${newline}=    BuiltIn.Evaluate    chr(10)
-    ${msg}=    BuiltIn.Set_Variable    This test fails due to https://bugs.opendaylight.org/show_bug.cgi?id=${number}
     BuiltIn.Set Test Message    ${msg}${newline}${newline}${TEST_MESSAGE}
     BuiltIn.Log    ${msg}
+    BuiltIn.Run_Keyword_If    "${include_bug_in_tags}"=="True"    Set Tags    ${bug_url}
 
 Report_Failure_And_Point_To_Linked_Bugs
     [Documentation]    Report that a test failed and point to linked Bugzilla bug(s).
@@ -330,6 +333,12 @@ Add Elements To URI And Verify
     ${resp}    RequestsLibrary.Get Request    ${session}    ${dest_uri}
     Should Not Be Equal    ${resp.status_code}    404
 
+Add Elements To URI From File And Check Validation Error
+    [Arguments]    ${dest_uri}    ${data_file}    ${headers}=${headers}    ${session}=session
+    ${body}    OperatingSystem.Get File    ${data_file}
+    ${resp}    RequestsLibrary.Put Request    ${session}    ${dest_uri}    data=${body}    headers=${headers}
+    Should Contain    ${DATA_VALIDATION_ERROR}    ${resp.status_code}
+
 Post Elements To URI From File
     [Arguments]    ${dest_uri}    ${data_file}    ${headers}=${headers}    ${session}=session
     ${body}    OperatingSystem.Get File    ${data_file}
@@ -477,3 +486,16 @@ Install Package On Ubuntu System
     Flexible Mininet Login    user=${user}    password=${password}
     Write    sudo apt-get install -y ${package_name}
     Read Until    ${prompt}
+
+Json Parse From String
+    [Arguments]    ${plain_string_with_json}
+    [Documentation]    Parse given plain string into json (dictionary)
+    ${json_data}    Evaluate    json.loads('''${plain_string_with_json}''')    json
+    [Return]    ${json_data}
+
+Json Parse From File
+    [Arguments]    ${json_file}
+    [Documentation]    Parse given file content into json (dictionary)
+    ${json_plain_string}    Get file    ${json_file}
+    ${json_data}    Json Parse From String    ${json_plain_string}
+    [Return]    ${json_data}