Remove test deleting port in OVS
[integration/test.git] / csit / suites / sfc / SFC_Basic / 010__sfc_service_functions.robot
index 7f387a09f4675bc1ee7d0563fa14b40441207ac2..2f3b7e5ead239b7f27f1f672f2d529626664626a 100644 (file)
@@ -2,12 +2,14 @@
 Documentation     Test suite for SFC Service Functions, Operates functions from Restconf APIs.
 Suite Setup       Init Suite
 Suite Teardown    Delete All Sessions
+Test Setup        Remove All Elements If Exist    ${SERVICE_FUNCTIONS_URI}
 Library           SSHLibrary
 Library           Collections
 Library           OperatingSystem
 Library           RequestsLibrary
-Variables         ../../../variables/Variables.py
+Resource          ../../../variables/sfc/Variables.robot
 Resource          ../../../libraries/Utils.robot
+Resource          ../../../libraries/TemplatedRequests.robot
 
 *** Test Cases ***
 Add Service Functions
@@ -17,7 +19,7 @@ Add Service Functions
     ${jsonbody}    To Json    ${body}
     ${functions}    Get From Dictionary    ${jsonbody}    service-functions
     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FUNCTIONS_URI}
-    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
     ${result}    To JSON    ${resp.content}
     ${function}    Get From Dictionary    ${result}    service-functions
     Lists Should be Equal    ${function}    ${functions}
@@ -27,51 +29,47 @@ Delete All Service Functions
     ${body}    OperatingSystem.Get File    ${SERVICE_FUNCTIONS_FILE}
     Add Elements To URI From File    ${SERVICE_FUNCTIONS_URI}    ${SERVICE_FUNCTIONS_FILE}
     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FUNCTIONS_URI}
-    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
     Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FUNCTIONS_URI}
     Should Be Equal As Strings    ${resp.status_code}    404
 
 Get one Service Function
     [Documentation]    Get one Service Function
-    Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
     Add Elements To URI From File    ${SERVICE_FUNCTIONS_URI}    ${SERVICE_FUNCTIONS_FILE}
     ${elements}=    Create List    dpi-102-1    dpi
-    Check For Elements At URI    ${SERVICE_FUNCTIONS_URI}service-function/dpi-102-1    ${elements}
+    Check For Elements At URI    ${SERVICE_FUNCTION_URI}/dpi-102-1    ${elements}
 
 Get A Non-existing Service Function
     [Documentation]    Get A Non-existing Service Function
-    Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
     Add Elements To URI From File    ${SERVICE_FUNCTIONS_URI}    ${SERVICE_FUNCTIONS_FILE}
-    ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FUNCTIONS_URI}service-function/non-existing-sf
+    ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FUNCTION_URI}/non-existing-sf
     Should Be Equal As Strings    ${resp.status_code}    404
 
 Delete A Service Function
     [Documentation]    Delete A Service Function
-    Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
     Add Elements To URI From File    ${SERVICE_FUNCTIONS_URI}    ${SERVICE_FUNCTIONS_FILE}
-    Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}service-function/dpi-102-1
+    Remove All Elements At URI    ${SERVICE_FUNCTION_URI}/dpi-102-1
     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FUNCTIONS_URI}
-    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
     Should Not Contain    ${resp.content}    dpi-102-1
 
 Delete A Non-existing Empty Service Function
     [Documentation]    Delete A Non existing Service Function
-    Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
     Add Elements To URI From File    ${SERVICE_FUNCTIONS_URI}    ${SERVICE_FUNCTIONS_FILE}
     ${body}    OperatingSystem.Get File    ${SERVICE_FUNCTIONS_FILE}
     ${jsonbody}    To Json    ${body}
     ${functions}    Get From Dictionary    ${jsonbody}    service-functions
-    Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}service-function/non-existing-sf
+    ${resp}    RequestsLibrary.Delete Request    session    ${SERVICE_FUNCTION_URI}/non-existing-sf
+    Should Be Equal As Strings    ${resp.status_code}    404
     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FUNCTIONS_URI}
-    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
     ${result}    To JSON    ${resp.content}
     ${function}    Get From Dictionary    ${result}    service-functions
     Lists Should be Equal    ${function}    ${functions}
 
 Put one Service Function
     [Documentation]    Put one Service Function
-    Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
     Add Elements To URI From File    ${SF_DPI102100_URI}    ${SF_DPI102100_FILE}
     ${elements}=    Create List    dpi-102-100    dpi
     Check For Elements At URI    ${SF_DPI102100_URI}    ${elements}
@@ -79,54 +77,45 @@ Put one Service Function
 
 Get Service Function DPL
     [Documentation]    Get Service Function Data Plane Locator
-    Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
     Add Elements To URI From File    ${SF_DPI102100_URI}    ${SF_DPI102100_FILE}
     ${elements}=    Create List    100    10100
-    Check For Elements At URI    ${SF_DPI102100_URI}sf-data-plane-locator/dpl-100    ${elements}
+    Check For Elements At URI    ${SF_DPI102100_URI}/sf-data-plane-locator/dpl-100    ${elements}
 
 Put Service Function DPL
     [Documentation]    Put Service Function Data Plane Locator
-    Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
     Add Elements To URI From File    ${SF_DPI102100_URI}    ${SF_DPI102100_FILE}
-    Add Elements To URI From File    ${SF_DPI102100_URI}sf-data-plane-locator/dpl-101    ${SF_DPL101_FILE}
+    Add Elements To URI From File    ${SF_DPI102100_URI}/sf-data-plane-locator/dpl-101    ${SF_DPL101_FILE}
     ${elements}=    Create List    dpl-101    10101
-    Check For Elements At URI    ${SF_DPI102100_URI}sf-data-plane-locator/dpl-101    ${elements}
+    Check For Elements At URI    ${SF_DPI102100_URI}/sf-data-plane-locator/dpl-101    ${elements}
     Check For Elements At URI    ${SF_DPI102100_URI}    ${elements}
 
 Put Service Function DPL to a Non-existing Service Function
     [Documentation]    Put Service Function DPL to a Non-existing Service Function
-    Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
-    Add Elements To URI From File    ${SF_DPI102100_URI}sf-data-plane-locator/dpl-101    ${SF_DPL101_FILE}
+    [Tags]    exclude
+    Add Elements To URI From File    ${SF_DPI102100_URI}/sf-data-plane-locator/dpl-101    ${SF_DPL101_FILE}
     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FUNCTIONS_URI}
-    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
     Should Contain    ${resp.content}    dpi-102-100
     ${elements}=    Create List    dpl-101    10101
-    Check For Elements At URI    ${SF_DPI102100_URI}sf-data-plane-locator/dpl-101    ${elements}
+    Check For Elements At URI    ${SF_DPI102100_URI}/sf-data-plane-locator/dpl-101    ${elements}
     Check For Elements At URI    ${SF_DPI102100_URI}    ${elements}
 
 Delete Service Function DPL
     [Documentation]    Delete Service Function Data Plane Locator
-    Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
     Add Elements To URI From File    ${SF_DPI102100_URI}    ${SF_DPI102100_FILE}
-    Remove All Elements At URI    ${SF_DPI102100_URI}sf-data-plane-locator/dpl-100
+    Remove All Elements At URI    ${SF_DPI102100_URI}/sf-data-plane-locator/dpl-100
     ${resp}    RequestsLibrary.Get Request    session    ${SF_DPI102100_URI}
-    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
     Should Not Contain    ${resp.content}    dpl-100
 
-Clean Datastore After Tests
-    [Documentation]    Clean All Service Functions In Datastore After Tests
-    Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
-
 *** Keywords ***
 Init Suite
     [Documentation]    Initialize session and ODL version specific variables
     Create Session    session    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS}
     log    ${ODL_STREAM}
-    Run Keyword If    '${ODL_STREAM}' == 'stable-lithium'    Set Suite Variable    ${VERSION_DIR}    lithium
-    ...    ELSE    Set Suite Variable    ${VERSION_DIR}    master
-    Set Suite Variable    ${SERVICE_FUNCTIONS_URI}    /restconf/config/service-function:service-functions/
-    Set Suite Variable    ${SERVICE_FUNCTIONS_FILE}    ../../../variables/sfc/${VERSION_DIR}/service-functions.json
-    Set Suite Variable    ${SF_DPI102100_URI}    /restconf/config/service-function:service-functions/service-function/dpi-102-100/
-    Set Suite Variable    ${SF_DPI102100_FILE}    ../../../variables/sfc/${VERSION_DIR}/sf_dpi_102_100.json
-    Set Suite Variable    ${SF_DPL101_FILE}    ../../../variables/sfc/${VERSION_DIR}/sf_dpl_101.json
-
+    Set Suite Variable    ${VERSION_DIR}    master
+    Set Suite Variable    ${TEST_DIR}    ${CURDIR}/../../../variables/sfc/${VERSION_DIR}
+    Set Suite Variable    ${SERVICE_FUNCTIONS_FILE}    ${TEST_DIR}/service-functions.json
+    Set Suite Variable    ${SF_DPI102100_URI}    ${SERVICE_FUNCTION_URI}/dpi-102-100
+    Set Suite Variable    ${SF_DPI102100_FILE}    ${TEST_DIR}/sf_dpi_102_100.json
+    Set Suite Variable    ${SF_DPL101_FILE}    ${TEST_DIR}/sf_dpl_101.json