Refactor policy/drools-applications csit tests 69/121169/1
authorRam Krishna Verma <ram_krishna.verma@bell.ca>
Fri, 7 May 2021 21:38:27 +0000 (17:38 -0400)
committerRam Krishna Verma <ram_krishna.verma@bell.ca>
Mon, 10 May 2021 19:33:24 +0000 (19:33 +0000)
* Removed the deprecated methods.
* Removed duplicated code.
* Created method hierarchy to improve the readability.
* Fixed the assertions on 1 test.

Issue-ID: POLICY-3257
Change-Id: Icd79ff9665570bb8deab2ad76735f0c5f000db6a
Signed-off-by: Ram Krishna Verma <ram_krishna.verma@bell.ca>
(cherry picked from commit e5c469a5edae03ebddcfdf7af04d2f949c7352bc)

csit/tests/drools-applications-test.robot

index e8b41b3..18a38be 100644 (file)
@@ -9,36 +9,18 @@ Library     json
 *** Test Cases ***
 Alive
     [Documentation]    Runs Policy PDP Alive Check
-    ${auth}=    Create List    demo@people.osaaf.org    demo123456!
-    Log    Creating session https://${DROOLS_IP}:9696
-    ${session}=    Create Session      policy  https://${DROOLS_IP}:9696   auth=${auth}
-    ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
-    ${resp}=   Get Request     policy  /policy/pdp/engine     headers=${headers}
-    Log    Received response from policy ${resp.text}
-    Should Be Equal As Strings    ${resp.status_code}     200
+    ${resp}=  PeformGetRequest  /policy/pdp/engine  ${DROOLS_IP}  9696  200
     Should Be Equal As Strings    ${resp.json()['alive']}  True
 
 Healthcheck
     [Documentation]    Runs Policy PDP-D Health check
-    ${auth}=    Create List    demo@people.osaaf.org    demo123456!
-    Log    Creating session https://${DROOLS_IP}:6969/healthcheck
-    ${session}=    Create Session      policy  https://${DROOLS_IP}:6969   auth=${auth}
-    ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
-    ${resp}=   Get Request     policy  /healthcheck     headers=${headers}
-    Log    Received response from policy ${resp.text}
-    Should Be Equal As Strings    ${resp.status_code}     200
+    ${resp}=  PeformGetRequest  /healthcheck  ${DROOLS_IP}  6969  200
     Should Be Equal As Strings    ${resp.json()['healthy']}  True
 
 Controller
     [Documentation]    Checks controller is up
-    ${auth}=    Create List    demo@people.osaaf.org    demo123456!
-    Log    Creating session https://${DROOLS_IP}:9696
-    ${session}=    Create Session      policy  https://${DROOLS_IP}:9696   auth=${auth}
-    ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
-    ${resp}=   Get Request     policy  /policy/pdp/engine/controllers/usecases/drools/facts     headers=${headers}
-    Log    Received response from policy ${resp.text}
-    Should Be Equal As Strings    ${resp.status_code}     200
-    Should Be Equal As Strings    ${resp.json()['usecases']}  0
+    ${resp}=  PeformGetRequest  /policy/pdp/engine/controllers/usecases/drools/facts  ${DROOLS_IP}  9696  200
+    Should Be Equal As Strings    ${resp.json()['usecases']}  1
 
 MakeTopics
     [Documentation]    Creates the Policy topics
@@ -49,80 +31,31 @@ MakeTopics
 
 CreateVcpeXacmlPolicy
     [Documentation]    Create VCPE Policy for Xacml
-    ${auth}=    Create List    healthcheck    zb!XztG34
-    ${postyaml}=  Get file  ${DATA}/vCPE.policy.monitoring.input.tosca.yaml
-    Log    Creating session https://${API_IP}:6969
-    ${session}=    Create Session      policy  https://${API_IP}:6969   auth=${auth}
-    ${headers}=  Create Dictionary     Accept=application/yaml    Content-Type=application/yaml
-    ${resp}=   Post Request   policy  /policy/api/v1/policies  data=${postyaml}   headers=${headers}
-    Log    Received response from api ${resp.text}
-    Should Be Equal As Strings    ${resp.status_code}    200
+    PerformPostRequest  /policy/api/v1/policies  null  ${API_IP}  6969  vCPE.policy.monitoring.input.tosca.yaml  ${DATA}  yaml  200
 
 CreateVcpeDroolsPolicy
     [Documentation]    Create VCPE Policy for Drools
-    ${auth}=    Create List    healthcheck    zb!XztG34
-    ${postyaml}=  Get file  ${DATA}/vCPE.policy.operational.input.tosca.yaml
-    Log    Creating session https://${API_IP}:6969
-    ${session}=    Create Session      policy  https://${API_IP}:6969   auth=${auth}
-    ${headers}=  Create Dictionary     Accept=application/yaml    Content-Type=application/yaml
-    ${resp}=   Post Request   policy  /policy/api/v1/policies  data=${postyaml}   headers=${headers}
-    Log    Received response from api ${resp.text}
-    Should Be Equal As Strings    ${resp.status_code}    200
+    PerformPostRequest  /policy/api/v1/policies  null  ${API_IP}  6969  vCPE.policy.operational.input.tosca.yaml  ${DATA}  yaml  200
 
 CreateVdnsXacmlPolicy
     [Documentation]    Create VDNS Policy for Xacml
-    ${auth}=    Create List    healthcheck    zb!XztG34
-    ${postyaml}=  Get file  ${DATA}/vDNS.policy.monitoring.input.tosca.yaml
-    Log    Creating session https://${API_IP}:6969
-    ${session}=    Create Session      policy  https://${API_IP}:6969   auth=${auth}
-    ${headers}=  Create Dictionary     Accept=application/yaml    Content-Type=application/yaml
-    ${resp}=   Post Request   policy  /policy/api/v1/policies  data=${postyaml}   headers=${headers}
-    Log    Received response from api ${resp.text}
-    Should Be Equal As Strings    ${resp.status_code}    200
+    PerformPostRequest  /policy/api/v1/policies  null  ${API_IP}  6969  vDNS.policy.monitoring.input.tosca.yaml  ${DATA}  yaml  200
 
 CreateVdnsDroolsPolicy
     [Documentation]    Create VDNS Policy for Drools
-    ${auth}=    Create List    healthcheck    zb!XztG34
-    ${postjson}=  Get file  ${DATA}/vDNS.policy.operational.input.tosca.json
-    Log    Creating session https://${API_IP}:6969
-    ${session}=    Create Session      policy  https://${API_IP}:6969   auth=${auth}
-    ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
-    ${resp}=   Post Request   policy  /policy/api/v1/policies  data=${postjson}   headers=${headers}
-    Log    Received response from api ${resp.text}
-    Should Be Equal As Strings    ${resp.status_code}    200
+    PerformPostRequest  /policy/api/v1/policies  null  ${API_IP}  6969  vDNS.policy.operational.input.tosca.json  ${DATA}  json  200
 
 CreateVfwXacmlPolicy
     [Documentation]    Create VFW Policy for Xacml
-    ${auth}=    Create List    healthcheck    zb!XztG34
-    ${postyaml}=  Get file  ${DATA}/vFirewall.policy.monitoring.input.tosca.yaml
-    Log    Creating session https://${API_IP}:6969
-    ${session}=    Create Session      policy  https://${API_IP}:6969   auth=${auth}
-    ${headers}=  Create Dictionary     Accept=application/yaml    Content-Type=application/yaml
-    ${resp}=   Post Request   policy  /policy/api/v1/policies  data=${postyaml}   headers=${headers}
-    Log    Received response from api ${resp.text}
-    Should Be Equal As Strings    ${resp.status_code}    200
+    PerformPostRequest  /policy/api/v1/policies  null  ${API_IP}  6969  vFirewall.policy.monitoring.input.tosca.yaml  ${DATA}  yaml  200
 
 CreateVfwDroolsPolicy
     [Documentation]    Create VFW Policy for Drools
-    ${auth}=    Create List    healthcheck    zb!XztG34
-    ${postjson}=  Get file  ${DATA}/vFirewall.policy.operational.input.tosca.json
-    Log    Creating session https://${API_IP}:6969
-    ${session}=    Create Session      policy  https://${API_IP}:6969   auth=${auth}
-    ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
-    ${resp}=   Post Request   policy  /policy/api/v1/policies  data=${postjson}   headers=${headers}
-    Log    Received response from api ${resp.text}
-    Should Be Equal As Strings    ${resp.status_code}    200
+    PerformPostRequest  /policy/api/v1/policies  null  ${API_IP}  6969  vFirewall.policy.operational.input.tosca.json  ${DATA}  json  200
 
 DeployXacmlPolicies
     [Documentation]    Deploys the Policies to Xacml
-    ${auth}=    Create List    healthcheck    zb!XztG34
-    Log    Creating session https://${PAP_IP}:6969
-    ${postjson}=  Get file  ${DATA2}/deploy.xacml.policies.json
-    ${session}=    Create Session      policy  https://${PAP_IP}:6969   auth=${auth}
-    ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
-    ${resp}=   Post Request     policy  /policy/pap/v1/pdps/deployments/batch    data=${postjson}     headers=${headers}
-    Log    Received response from pap ${resp.text}
-    Should Be Equal As Strings    ${resp.status_code}     202
+    PerformPostRequest  /policy/pap/v1/pdps/deployments/batch  null  ${PAP_IP}  6969  deploy.xacml.policies.json  ${DATA2}  json  202
     ${result}=     Run Process        ${SCR2}/wait_topic.sh     POLICY-PDP-PAP
     ...            responseTo    xacml    ACTIVE    restart
     Log    Received status ${result.stdout}
@@ -133,14 +66,7 @@ DeployXacmlPolicies
 
 DeployDroolsPolicies
     [Documentation]    Deploys the Policies to Drools
-    ${auth}=    Create List    healthcheck    zb!XztG34
-    Log    Creating session https://${PAP_IP}:6969
-    ${postjson}=  Get file  ${DATA2}/deploy.drools.policies.json
-    ${session}=    Create Session      policy  https://${PAP_IP}:6969   auth=${auth}
-    ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
-    ${resp}=   Post Request     policy  /policy/pap/v1/pdps/deployments/batch    data=${postjson}     headers=${headers}
-    Log    Received response from pap ${resp.text}
-    Should Be Equal As Strings    ${resp.status_code}     202
+    PerformPostRequest  /policy/pap/v1/pdps/deployments/batch  null  ${PAP_IP}  6969  deploy.drools.policies.json  ${DATA2}  json  202
     ${result}=     Run Process        ${SCR2}/wait_topic.sh     POLICY-PDP-PAP
     ...            responseTo    drools    ACTIVE
     Log    Received status ${result.stdout}
@@ -273,3 +199,26 @@ VfwExecute
     Should Contain    ${result.stdout}    FINAL: SUCCESS
     Should Contain    ${result.stdout}    APPC
     Should Contain    ${result.stdout}    ModifyConfig
+
+*** Keywords ***
+
+PeformGetRequest
+     [Arguments]  ${url}  ${hostname}  ${port}  ${expectedstatus}
+     ${auth}=  Create List  demo@people.osaaf.org  demo123456!
+     Log  Creating session https://${hostname}:${port}
+     ${session}=  Create Session  policy  https://${hostname}:${port}  auth=${auth}
+     ${headers}=  Create Dictionary  Accept=application/json  Content-Type=application/json
+     ${resp}=  GET On Session  policy  ${url}  headers=${headers}  expected_status=${expectedstatus}
+     Log  Received response from policy ${resp.text}
+     [return]  ${resp}
+
+PerformPostRequest
+     [Arguments]  ${url}  ${params}  ${hostname}  ${port}  ${jsonfile}  ${filepath}  ${contenttype}  ${expectedstatus}
+     ${auth}=  Create List  healthcheck  zb!XztG34
+     ${postjson}=  Get file  ${filepath}/${jsonfile}
+     Log  Creating session https://${hostname}:6969
+     ${session}=  Create Session  policy  https://${hostname}:6969  auth=${auth}
+     ${headers}=  Create Dictionary  Accept=application/${contenttype}  Content-Type=application/${contenttype}
+     ${resp}=  POST On Session  policy  ${url}  params=${params}  data=${postjson}  headers=${headers}  expected_status=${expectedstatus}
+     Log  Received response from policy ${resp.text}
+     [return]  ${resp}