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