From cb926d6494cc4c48307cfc0d530a85a0125e2ff7 Mon Sep 17 00:00:00 2001 From: Vaibhav Bhatnagar Date: Thu, 4 Jun 2015 01:07:39 +0530 Subject: [PATCH] Added a library and test case for capwap project. Change-Id: Ibd1e8cc7a1f6a5366e7aac2fac379851d537d4fd Signed-off-by: Vaibhav Bhatnagar Signed-off-by: Jamo Luhrsen --- test/csit/libraries/CapwapLibrary.py | 36 +++++++++++++++++++ .../suites/capwap/basic/capwap_session.robot | 25 ++++++++++++- 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 test/csit/libraries/CapwapLibrary.py diff --git a/test/csit/libraries/CapwapLibrary.py b/test/csit/libraries/CapwapLibrary.py new file mode 100644 index 0000000000..89a123a9e7 --- /dev/null +++ b/test/csit/libraries/CapwapLibrary.py @@ -0,0 +1,36 @@ +""" +Library for the robot based system test tool of the OpenDaylight project. +Authors: Vaibhav Bhatnagar@Brocade +Updated: 2015-06-01 +""" +import socket + +from robot.libraries.BuiltIn import BuiltIn + + +class CapwapLibrary(object): + """Provide many methods to simulate WTPs and their functions.""" + + def __init__(self): + self.builtin = BuiltIn() + + def send_discover(self, ac_ip, wtp_ip='', ip='ip', port=5246): + """Send Discover CAPWAP Packet from a WTP.""" + data = ''.join(chr(x) for x in [0x00, 0x20, 0x01, 0x02, 0x03, 0x04, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]) + self.builtin.log('Sending Discover Packet to: %s' % ac_ip, 'DEBUG') + session = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) + session.sendto(data, (ac_ip, port)) + self.builtin.log('Packet Sent', 'DEBUG') + + def get_hostip(self): + """Get Host IP Address.""" + ip_addr = socket.gethostbyname(socket.gethostname()) + return ip_addr + + def get_simulated_wtpip(self, controller): + """Get the Simulated WTP ip based on the controller.""" + if controller == '127.0.0.1': + exp_ip = controller + else: + exp_ip = self.get_hostip() + return exp_ip diff --git a/test/csit/suites/capwap/basic/capwap_session.robot b/test/csit/suites/capwap/basic/capwap_session.robot index 6b4057e675..014c8b864c 100644 --- a/test/csit/suites/capwap/basic/capwap_session.robot +++ b/test/csit/suites/capwap/basic/capwap_session.robot @@ -2,13 +2,16 @@ Documentation Test suite for capwap discover functionality Suite Setup Create Session session http://${CONTROLLER}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS_XML} Suite Teardown Delete All Sessions -Library ../../../libraries/RequestsLibrary.py +Library RequestsLibrary Library ../../../libraries/Common.py Variables ../../../variables/Variables.py Resource ../../../libraries/Utils.txt +Library Collections +Library ../../../libraries/CapwapLibrary.py *** Variables *** ${REST_CONTEXT} /restconf/modules +${DISC_WTP_REST} /restconf/operational/capwap-impl:capwap-ac-root/ *** Test Cases *** Get Controller Modules @@ -18,3 +21,23 @@ Get Controller Modules Should Be Equal As Strings ${resp.status_code} 200 Should Contain ${resp.content} ietf-restconf +Get Discovered WTPs + [Documentation] Get the WTP Discoverd + send discover ${CONTROLLER} + Wait Until Keyword Succeeds 10s 5s Run Test Get Discovered WTP + +*** Keywords *** +Run Test Get Discovered WTP + ${resp} RequestsLibrary.Get session ${DISC_WTP_REST} + Log ${resp.content} + Should Be Equal As Strings ${resp.status_code} 200 + ${result} TO JSON ${resp.content} + ${ac_Root} Get From Dictionary ${result} capwap-ac-root + @{wtp_discovered} Get From Dictionary ${ac_Root} discovered-wtps + ${expected_ip_addr} get simulated wtpip ${CONTROLLER} + ${wtp_ip_list} Create List '' + : FOR ${wtp} IN @{wtp_discovered} + \ ${wtp_ip} Get From Dictionary ${wtp} ipv4-addr + \ Append to List ${wtp_ip_list} ${wtp_ip} + Log ${wtp_ip_list} + List Should Contain Value ${wtp_ip_list} ${expected_ip_addr} -- 2.36.6