020ee461566b8ae6c2e289c9cefb8b3f142efd4b
[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://${CONTROLLER}:${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/Utils.robot
11
12 *** Test Cases ***
13 Init Variables
14     [Documentation]    Initialize ODL version specific variables
15     log    ${ODL_VERSION}
16     Run Keyword If    '${ODL_VERSION}' == 'stable-lithium'    Init Variables Lithium
17     ...    ELSE    Init Variables Master
18
19 Add Tenants
20     [Documentation]    Add Tenants from JSON file
21     Add Elements To URI From File    ${GBP_TENANTS_API}    ${GBP_TENANTS_FILE}
22     ${body}    OperatingSystem.Get File    ${GBP_TENANTS_FILE}
23     ${jsonbody}    To Json    ${body}
24     ${resp}    RequestsLibrary.Get    session    ${GBP_TENANTS_API}
25     Should Be Equal As Strings    ${resp.status_code}    200
26     ${result}    To JSON    ${resp.content}
27     Lists Should be Equal    ${jsonbody}    ${result}
28
29 Delete All Tenants
30     [Documentation]    Delete all Tenants
31     Add Elements To URI From File    ${GBP_TENANTS_API}    ${GBP_TENANTS_FILE}
32     ${body}    OperatingSystem.Get File    ${GBP_TENANTS_FILE}
33     ${jsonbody}    To Json    ${body}
34     ${resp}    RequestsLibrary.Get    session    ${GBP_TENANTS_API}
35     Should Be Equal As Strings    ${resp.status_code}    200
36     Remove All Elements At URI    ${GBP_TENANTS_API}
37     ${resp}    RequestsLibrary.Get    session    ${GBP_TENANTS_API}
38     Should Be Equal As Strings    ${resp.status_code}    404
39
40 Add one Tenant
41     [Documentation]    Add one Tenant from JSON file
42     Add Elements To URI From File    ${GBP_TENANT1_API}    ${GBP_TENANT1_FILE}
43     ${body}    OperatingSystem.Get File    ${GBP_TENANT1_FILE}
44     ${jsonbody}    To Json    ${body}
45     ${resp}    RequestsLibrary.Get    session    ${GBP_TENANT1_API}
46     Should Be Equal As Strings    ${resp.status_code}    200
47     ${result}    To JSON    ${resp.content}
48     Lists Should be Equal    ${result}    ${jsonbody}
49
50 Get A Non-existing Tenant
51     [Documentation]    Get A Non-existing Tenant
52     Remove All Elements At URI    ${GBP_TENANTS_API}
53     ${resp}    RequestsLibrary.Get    session    ${GBP_TENANT1_API}
54     Should Be Equal As Strings    ${resp.status_code}    404
55
56 Delete one Tenant
57     [Documentation]    Delete one Tenant
58     Remove All Elements At URI    ${GBP_TENANTS_API}
59     Add Elements To URI From File    ${GBP_TENANT1_API}    ${GBP_TENANT1_FILE}
60     Remove All Elements At URI    ${GBP_TENANT1_API}
61     ${resp}    RequestsLibrary.Get    session    ${GBP_TENANTS_API}
62     Should Be Equal As Strings    ${resp.status_code}    200
63     Should Not Contain    ${resp.content}    ${GBP_TENANT_ID}
64
65 Clean Datastore After Tests
66     [Documentation]    Clean All Tenants In Datastore After Tests
67     Remove All Elements At URI    ${GBP_TENANTS_API}
68
69
70 *** Keywords ***
71 Init Variables Master
72     [Documentation]    Sets variables specific to latest(master) version
73     Set Suite Variable    ${GBP_TENANT_ID}    tenant-red
74     Set Suite Variable    ${GBP_TENANT1_API}    /restconf/config/policy:tenants/policy:tenant/${GBP_TENANT_ID}
75     Set Suite Variable    ${GBP_TENANTS_FILE}    ${CURDIR}../../../variables/gbp/master/tenants.json
76     Set Suite Variable    ${GBP_TENANT1_FILE}    ${CURDIR}../../../variables/gbp/master/tenant1.json
77
78 Init Variables Lithium
79     [Documentation]    Sets variables specific to Lithium version
80     Set Suite Variable    ${GBP_TENANT_ID}    f5c7d344-d1c7-4208-8531-2c2693657e12
81     Set Suite Variable    ${GBP_TENANT1_API}    /restconf/config/policy:tenants/policy:tenant/${GBP_TENANT_ID}
82     Set Suite Variable    ${GBP_TENANTS_FILE}    ${CURDIR}../../../variables/gbp/lithium/tenants.json
83     Set Suite Variable    ${GBP_TENANT1_FILE}    ${CURDIR}../../../variables/gbp/lithium/tenant1.json