Add Robot Tests for VNF Package Management
[integration/csit.git] / tests / so / etsi / etsi_vnf_package_management_tests.robot
1 *** Settings ***
2 Library     Collections
3 Library     RequestsLibrary
4 Library     OperatingSystem
5 Library     json
6 Library     ArchiveLibrary
7
8 *** Variables ***
9 ${VNF_PACKAGE_ID}=    73522444-e8e9-49c1-be29-d355800aa349
10 ${PACKAGE_MANAGEMENT_BASE_URL}=    /so/vnfm-adapter/v1/vnfpkgm/v1
11 ${BASIC_AUTH}=    Basic dm5mbTpwYXNzd29yZDEk
12 ${TEST_DIR}=    CSIT_ETSI_TEMP
13
14 *** Test Cases ***
15 Get VNF Packages
16     Create Session    so_vnfm_adapter_session    http://${REPO_IP}:9092
17     &{headers}=    Create Dictionary    Authorization=${BASIC_AUTH}    Content-Type=application/json    Accept=application/json
18     Log To Console    \nGetting VNF Packages from so-vnfm-adapter
19     ${response}=    Get On Session    so_vnfm_adapter_session    ${PACKAGE_MANAGEMENT_BASE_URL}/vnf_packages    headers=${headers}
20     Log To Console    \nResponse:${response}
21     Run Keyword If    '${response.status_code}' == '200'    Log To Console    \nexecuted with expected result
22     Should Be Equal As Strings    '${response.status_code}'    '200'
23     Log To Console    \nResponse Content:\n${response.content}
24     ${json_response}    Evaluate    json.loads(r"""${response.content}""", strict=False)    json
25     ${vnf_package_id}=    Set Variable    ${json_response}[0][id]
26     Should Be Equal As Strings    '${vnf_package_id}'    '${VNF_PACKAGE_ID}'
27     ${expected}=    Get File    ${CURDIR}${/}data${/}responses${/}expectedVnfPackage.json
28     ${expected}=    Evaluate    json.loads(r"""${expected}""", strict=False)    json
29     Should Be Equal    ${json_response[0]}    ${expected}
30     Log To Console    \nexecuted with expected result
31
32 Get VNF Package By VNF Package Id
33     Create Session    so_vnfm_adapter_session    http://${REPO_IP}:9092
34     &{headers}=    Create Dictionary    Authorization=${BASIC_AUTH}    Content-Type=application/json    Accept=application/json
35     Log To Console    \nGetting VNF Package with id ${VNF_PACKAGE_ID} from so-vnfm-adapter
36     ${response}=    Get On Session    so_vnfm_adapter_session    ${PACKAGE_MANAGEMENT_BASE_URL}/vnf_packages/${VNF_PACKAGE_ID}    headers=${headers}
37     Log To Console    \nResponse:${response}
38     Run Keyword If    '${response.status_code}' == '200'    Log To Console    \nexecuted with expected result
39     Should Be Equal As Strings    '${response.status_code}'    '200'
40     Log To Console    \nResponse:\n${response.content}
41     ${json_response}    Evaluate    json.loads(r"""${response.content}""", strict=False)    json
42     ${vnf_package_id}=    Set Variable    ${json_response}[id]
43     Should Be Equal As Strings    '${vnf_package_id}'    '${VNF_PACKAGE_ID}'
44     ${expected}=    Get File    ${CURDIR}${/}data${/}responses${/}expectedVnfPackage.json
45     ${expected}=    Evaluate    json.loads(r"""${expected}""", strict=False)    json
46     Should Be Equal    ${json_response}    ${expected}
47     Log To Console    \nexecuted with expected result
48
49 Get VNF Package Content
50     Create Session    so_vnfm_adapter_session    http://${REPO_IP}:9092
51     &{headers}=    Create Dictionary    Authorization=${BASIC_AUTH}    Content-Type=application/json    Accept=application/zip
52     Log to Console    \nGetting Vnf Package Content from Vnf Package with id ${vnf_package_id} from so-vnfm-adapter
53     ${response}=    Get On Session    so_vnfm_adapter_session    ${PACKAGE_MANAGEMENT_BASE_URL}/vnf_packages/${vnf_package_id}/package_content    headers=${headers}
54     Log To Console    Response:${response}
55     Run Keyword If    '${response.status_code}' == '200'    Log To Console    \nexecuted with expected result
56     Should Be Equal As Strings    '${response.status_code}'    '200'
57     Create Directory    ${TEMPDIR}${/}${TEST_DIR}
58     Empty Directory    ${TEMPDIR}${/}${TEST_DIR}
59     Create Binary File    ${TEMPDIR}${/}${TEST_DIR}${/}actualVnfPackageContent.csar    ${response.content}
60     Should Be Equal File Size    ${TEMPDIR}${/}${TEST_DIR}${/}actualVnfPackageContent.csar    ${CURDIR}${/}data${/}responses${/}expectedVnfPackageContent.csar
61     Extract Zip File    ${TEMPDIR}${/}${TEST_DIR}${/}actualVnfPackageContent.csar    ${TEMPDIR}${/}${TEST_DIR}/actualContent
62     Extract Zip File    ${CURDIR}${/}data${/}responses${/}expectedVnfPackageContent.csar    ${TEMPDIR}${/}${TEST_DIR}${/}expectedContent
63     Should Contain Same Content    ${TEMPDIR}${/}${TEST_DIR}${/}actualContent    ${TEMPDIR}${/}${TEST_DIR}${/}expectedContent
64     File Should Exist    ${TEMPDIR}${/}${TEST_DIR}${/}actualContent${/}Definitions${/}MainServiceTemplate.yaml
65     File Should Exist    ${TEMPDIR}${/}${TEST_DIR}${/}actualContent${/}Definitions${/}onap_dm.yaml
66     File Should Exist    ${TEMPDIR}${/}${TEST_DIR}${/}actualContent${/}TOSCA-Metadata${/}TOSCA.meta
67     ${expectedMainServiceTemplate}=    Get Binary File    ${TEMPDIR}${/}${TEST_DIR}${/}expectedContent${/}Definitions${/}MainServiceTemplate.yaml
68     ${actualMainServiceTemplate}=    Get Binary File    ${TEMPDIR}${/}${TEST_DIR}${/}actualContent${/}Definitions${/}MainServiceTemplate.yaml
69     Should Be Equal As Strings    ${expectedMainServiceTemplate}    ${actualMainServiceTemplate}
70     ${expectedOnapDm}=    Get Binary File    ${TEMPDIR}${/}${TEST_DIR}${/}expectedContent${/}Definitions${/}onap_dm.yaml
71     ${actualOnapDm}=    Get Binary File    ${TEMPDIR}${/}${TEST_DIR}${/}actualContent${/}Definitions${/}onap_dm.yaml
72     Should Be Equal As Strings    ${expectedOnapDm}    ${actualOnapDm}
73     ${expectedToscaMeta}=    Get Binary File    ${TEMPDIR}${/}${TEST_DIR}${/}expectedContent${/}TOSCA-Metadata${/}TOSCA.meta
74     ${actualToscaMeta}=    Get Binary File    ${TEMPDIR}${/}${TEST_DIR}${/}actualContent${/}TOSCA-Metadata${/}TOSCA.meta
75     Should Be Equal As Strings    ${expectedOnapDm}    ${actualOnapDm}
76     Remove Directory    ${TEMPDIR}${/}${TEST_DIR}    recursive=True
77     Log To Console    \nexecuted with expected result
78
79 Get VNF Package VNFD
80     Create Session    so_vnfm_adapter_session    http://${REPO_IP}:9092
81     &{headers}=    Create Dictionary    Authorization=${BASIC_AUTH}    Content-Type=application/json    Accept=application/zip
82     Log to Console    \nGetting Vnfd from Vnf Package with id ${vnf_package_id} from so-vnfm-adapter
83     ${response}=    Get On Session    so_vnfm_adapter_session    ${PACKAGE_MANAGEMENT_BASE_URL}/vnf_packages/${vnf_package_id}/vnfd    headers=${headers}
84     Log To Console    Response:${response}
85     Run Keyword If    '${response.status_code}' == '200'    Log To Console    \nexecuted with expected result
86     Should Be Equal As Strings    '${response.status_code}'    '200'
87     Create Directory    ${TEMPDIR}${/}${TEST_DIR}
88     Empty Directory    ${TEMPDIR}${/}${TEST_DIR}
89     Create Binary File    ${TEMPDIR}${/}${TEST_DIR}${/}actualVnfd.zip    ${response.content}
90     Extract Zip File    ${TEMPDIR}${/}${TEST_DIR}${/}actualVnfd.zip    ${TEMPDIR}${/}${TEST_DIR}
91     File Should Exist    ${TEMPDIR}${/}${TEST_DIR}${/}MainServiceTemplate.yaml
92     File Should Exist    ${TEMPDIR}${/}${TEST_DIR}${/}onap_dm.yaml
93     ${expectedMainServiceTemplate}=    Get Binary File    ${CURDIR}${/}data${/}responses${/}expectedVnfd${/}MainServiceTemplate.yaml
94     ${actualMainServiceTemplate}=    Get Binary File    ${TEMPDIR}${/}${TEST_DIR}${/}MainServiceTemplate.yaml
95     Should Be Equal As Strings    ${expectedMainServiceTemplate}    ${actualMainServiceTemplate}
96     ${expectedOnapDm}=    Get Binary File    ${CURDIR}${/}data${/}responses${/}expectedVnfd${/}onap_dm.yaml
97     ${actualOnapDm}=    Get Binary File    ${TEMPDIR}${/}${TEST_DIR}${/}onap_dm.yaml
98     Should Be Equal As Strings    ${expectedOnapDm}    ${actualOnapDm}
99     Remove Directory    ${TEMPDIR}${/}${TEST_DIR}    recursive=True
100     Log To Console    \nexecuted with expected result
101
102 *** Keywords ***
103 Should Be Equal File Size
104     [Arguments]    ${file1}    ${file2}
105     Log To Console    \nComparing file sizes between ${file1} and ${file2}
106     ${file1size}=    Get File Size    ${file1}
107     ${file2size}=    Get File Size    ${file2}
108     Should Be Equal    ${file1size}    ${file2size}
109     Log To Console    Files are the same size
110
111 Should Contain Same Content
112     [Arguments]    ${dir1}    ${dir2}
113     Log To Console    \nComparing directory contents between:
114     Log To Console    Directory 1: ${dir1}
115     Log To Console    Directory 2: ${dir2}
116     @{dir1files}=    List Files In Directory    ${dir1}
117     Log To Console    Files in directory 1: @{dir1files}
118     @{dir2files}=    List Files In Directory    ${dir2}
119     Log To Console    Files in directory 2: @{dir2files}
120     Lists Should Be Equal    ${dir1files}    ${dir2files}
121     FOR    ${file}    IN    @{dir1files}
122         Should Be Equal File Size    ${dir1}${/}${file}    ${dir2}${/}${file}
123     END
124     @{dir1directories}=    List Directories In Directory    ${dir1}
125     Log To Console    Directories in directory 1: ${dir1directories}
126     @{dir2directories}=    List Directories In Directory    ${dir2}
127     Log To Console    Directories in directory 2: ${dir2directories}
128     Lists Should Be Equal     ${dir1directories}    ${dir2directories}
129     FOR    ${directory}    IN    @{dir1directories}
130         Should Contain Same Content    ${dir1}${/}${directory}    ${dir2}${/}${directory}
131     END
132     Log To Console    executed with expected result