Update Robot Framework format - step 7
[integration/test.git] / csit / suites / groupbasedpolicy / GBP_Basic / 020_gbp_tenant.robot
1 *** Settings ***
2 Documentation       Test suite for GBP Tenants, Operates functions from Restconf APIs.
3
4 Library             SSHLibrary
5 Library             Collections
6 Library             OperatingSystem
7 Library             RequestsLibrary
8 Variables           ../../../variables/Variables.py
9 Resource            ../../../libraries/CompareStream.robot
10 Resource            ../../../libraries/Utils.robot
11
12 Suite Setup         Create Session    session    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS}
13 Suite Teardown      Delete All Sessions
14
15
16 *** Test Cases ***
17 Init Variables
18     [Documentation]    Initialize ODL version specific variables using resource CompareStream.
19     Init Variables Master
20
21 Add Tenants
22     [Documentation]    Add Tenants from JSON file
23     Add Elements To URI From File    ${GBP_TENANTS_API}    ${GBP_TENANTS_FILE}
24     ${body}    OperatingSystem.Get File    ${GBP_TENANTS_FILE}
25     ${jsonbody}    To Json    ${body}
26     ${resp}    RequestsLibrary.Get Request    session    ${GBP_TENANTS_API}
27     Should Be Equal As Strings    ${resp.status_code}    200
28     ${result}    To JSON    ${resp.content}
29     Lists Should be Equal    ${jsonbody}    ${result}
30
31 Delete All Tenants
32     [Documentation]    Delete all Tenants
33     Add Elements To URI From File    ${GBP_TENANTS_API}    ${GBP_TENANTS_FILE}
34     ${body}    OperatingSystem.Get File    ${GBP_TENANTS_FILE}
35     ${jsonbody}    To Json    ${body}
36     ${resp}    RequestsLibrary.Get Request    session    ${GBP_TENANTS_API}
37     Should Be Equal As Strings    ${resp.status_code}    200
38     Remove All Elements At URI    ${GBP_TENANTS_API}
39     ${resp}    RequestsLibrary.Get Request    session    ${GBP_TENANTS_API}
40     Should Be Equal As Strings    ${resp.status_code}    404
41
42 Add one Tenant
43     [Documentation]    Add one Tenant from JSON file
44     Add Elements To URI From File    ${GBP_TENANT1_API}    ${GBP_TENANT1_FILE}
45     ${body}    OperatingSystem.Get File    ${GBP_TENANT1_FILE}
46     ${jsonbody}    To Json    ${body}
47     ${resp}    RequestsLibrary.Get Request    session    ${GBP_TENANT1_API}
48     Should Be Equal As Strings    ${resp.status_code}    200
49     ${result}    To JSON    ${resp.content}
50     Lists Should be Equal    ${result}    ${jsonbody}
51
52 Get A Non-existing Tenant
53     [Documentation]    Get A Non-existing Tenant
54     Remove All Elements At URI    ${GBP_TENANTS_API}
55     ${resp}    RequestsLibrary.Get Request    session    ${GBP_TENANT1_API}
56     Should Be Equal As Strings    ${resp.status_code}    404
57
58 Delete one Tenant
59     [Documentation]    Delete one Tenant
60     Remove All Elements At URI    ${GBP_TENANTS_API}
61     Add Elements To URI From File    ${GBP_TENANT1_API}    ${GBP_TENANT1_FILE}
62     Remove All Elements At URI    ${GBP_TENANT1_API}
63     ${resp}    RequestsLibrary.Get Request    session    ${GBP_TENANTS_API}
64     Should Be Equal As Strings    ${resp.status_code}    200
65     Should Not Contain    ${resp.content}    ${GBP_TENANT_ID}
66
67 Clean Datastore After Tests
68     [Documentation]    Clean All Tenants In Datastore After Tests
69     Remove All Elements At URI    ${GBP_TENANTS_API}
70
71
72 *** Keywords ***
73 Init Variables Master
74     [Documentation]    Sets variables specific to latest(master) version
75     Set Suite Variable    ${GBP_TENANT_ID}    tenant-red
76     Set Suite Variable    ${GBP_TENANT1_API}    /restconf/config/policy:tenants/policy:tenant/${GBP_TENANT_ID}
77     Set Suite Variable    ${GBP_TENANTS_FILE}    ${CURDIR}../../../variables/gbp/master/tenants.json
78     Set Suite Variable    ${GBP_TENANT1_FILE}    ${CURDIR}../../../variables/gbp/master/tenant1.json